File tree 1 file changed +17
-4
lines changed
1 file changed +17
-4
lines changed Original file line number Diff line number Diff line change @@ -65,11 +65,11 @@ pub fn sincosf(x: f32) -> (f32, f32) {
65
65
/* -sin(x+c) is not correct if x+c could be 0: -0 vs +0 */
66
66
else {
67
67
if sign {
68
- s = k_sinf ( ( x + S2PIO2 ) as f64 ) ;
69
- c = k_cosf ( ( x + S2PIO2 ) as f64 ) ;
68
+ s = - k_sinf ( ( x + S2PIO2 ) as f64 ) ;
69
+ c = - k_cosf ( ( x + S2PIO2 ) as f64 ) ;
70
70
} else {
71
- s = k_sinf ( ( x - S2PIO2 ) as f64 ) ;
72
- c = k_cosf ( ( x - S2PIO2 ) as f64 ) ;
71
+ s = - k_sinf ( ( x - S2PIO2 ) as f64 ) ;
72
+ c = - k_cosf ( ( x - S2PIO2 ) as f64 ) ;
73
73
}
74
74
}
75
75
@@ -121,3 +121,16 @@ pub fn sincosf(x: f32) -> (f32, f32) {
121
121
_ => ( 0.0 , 1.0 ) ,
122
122
}
123
123
}
124
+
125
+ #[ cfg( test) ]
126
+ mod tests {
127
+ use super :: sincosf;
128
+ use crate :: _eqf;
129
+
130
+ #[ test]
131
+ fn with_pi ( ) {
132
+ let ( s, c) = sincosf ( core:: f32:: consts:: PI ) ;
133
+ _eqf ( s. abs ( ) , 0.0 ) . unwrap ( ) ;
134
+ _eqf ( c, -1.0 ) . unwrap ( ) ;
135
+ }
136
+ }
You can’t perform that action at this time.
0 commit comments