@@ -32,24 +32,24 @@ pub fn main() {
32
32
assert_approx_eq ! ( 25f32 . powi( -2 ) , 0.0016f32 ) ;
33
33
assert_approx_eq ! ( 23.2f64 . powi( 2 ) , 538.24f64 ) ;
34
34
35
- assert_approx_eq ! ( 0f32 . sin( ) , 0f32 ) ;
36
- assert_approx_eq ! ( ( f64 :: consts:: PI / 2f64 ) . sin( ) , 1f64 ) ;
37
-
38
- assert_approx_eq ! ( 0f32 . cos( ) , 1f32 ) ;
39
- assert_approx_eq ! ( ( f64 :: consts:: PI * 2f64 ) . cos( ) , 1f64 ) ;
40
-
41
35
assert_approx_eq ! ( 25f32 . powf( -2f32 ) , 0.0016f32 ) ;
42
36
assert_approx_eq ! ( 400f64 . powf( 0.5f64 ) , 20f64 ) ;
43
37
44
- assert_approx_eq ! ( ( 1f32 . exp( ) - f32 :: consts:: E ) . abs ( ) , 0f32 ) ;
38
+ assert_approx_eq ! ( 1f32 . exp( ) , f32 :: consts:: E ) ;
45
39
assert_approx_eq ! ( 1f64 . exp( ) , f64 :: consts:: E ) ;
46
40
41
+ assert_approx_eq ! ( 1f32 . exp_m1( ) , f32 :: consts:: E - 1.0 ) ;
42
+ assert_approx_eq ! ( 1f64 . exp_m1( ) , f64 :: consts:: E - 1.0 ) ;
43
+
47
44
assert_approx_eq ! ( 10f32 . exp2( ) , 1024f32 ) ;
48
45
assert_approx_eq ! ( 50f64 . exp2( ) , 1125899906842624f64 ) ;
49
46
50
- assert_approx_eq ! ( ( f32 :: consts:: E . ln( ) - 1f32 ) . abs ( ) , 0f32 ) ;
47
+ assert_approx_eq ! ( f32 :: consts:: E . ln( ) , 1f32 ) ;
51
48
assert_approx_eq ! ( 1f64 . ln( ) , 0f64 ) ;
52
49
50
+ assert_approx_eq ! ( 0f32 . ln_1p( ) , 0f32 ) ;
51
+ assert_approx_eq ! ( 0f64 . ln_1p( ) , 0f64 ) ;
52
+
53
53
assert_approx_eq ! ( 10f32 . log10( ) , 1f32 ) ;
54
54
assert_approx_eq ! ( f64 :: consts:: E . log10( ) , f64 :: consts:: LOG10_E ) ;
55
55
@@ -66,6 +66,12 @@ pub fn main() {
66
66
assert_approx_eq ! ( ( -1.0f32 ) . abs( ) , 1.0f32 ) ;
67
67
assert_approx_eq ! ( 34.2f64 . abs( ) , 34.2f64 ) ;
68
68
69
+ #[ allow( deprecated) ]
70
+ {
71
+ assert_approx_eq ! ( 5.0f32 . abs_sub( 3.0 ) , 2.0 ) ;
72
+ assert_approx_eq ! ( 3.0f64 . abs_sub( 5.0 ) , 0.0 ) ;
73
+ }
74
+
69
75
assert_approx_eq ! ( 3.8f32 . floor( ) , 3.0f32 ) ;
70
76
assert_approx_eq ! ( ( -1.1f64 ) . floor( ) , -2.0f64 ) ;
71
77
@@ -81,31 +87,54 @@ pub fn main() {
81
87
assert_approx_eq ! ( 3.0f32 . hypot( 4.0f32 ) , 5.0f32 ) ;
82
88
assert_approx_eq ! ( 3.0f64 . hypot( 4.0f64 ) , 5.0f64 ) ;
83
89
84
- assert_approx_eq ! ( 1.0f32 . atan2 ( 2.0f32 ) , 0.46364761f32 ) ;
85
- assert_approx_eq ! ( 1.0f32 . atan2 ( 2.0f32 ) , 0.46364761f32 ) ;
90
+ assert_eq ! ( 3.3_f32 . round ( ) , 3.0 ) ;
91
+ assert_eq ! ( 3.3_f64 . round ( ) , 3.0 ) ;
86
92
87
- assert_approx_eq ! ( 1.0f32 . cosh( ) , 1.54308f32 ) ;
88
- assert_approx_eq ! ( 1.0f64 . cosh( ) , 1.54308f64 ) ;
93
+ assert_eq ! ( ldexp( 0.65f64 , 3i32 ) , 5.2f64 ) ;
94
+ assert_eq ! ( ldexp( 1.42 , 0xFFFF ) , f64 :: INFINITY ) ;
95
+ assert_eq ! ( ldexp( 1.42 , -0xFFFF ) , 0f64 ) ;
96
+
97
+ // Trigonometric functions.
98
+
99
+ assert_approx_eq ! ( 0f32 . sin( ) , 0f32 ) ;
100
+ assert_approx_eq ! ( ( f64 :: consts:: PI / 2f64 ) . sin( ) , 1f64 ) ;
101
+ assert_approx_eq ! ( f32 :: consts:: FRAC_PI_6 . sin( ) , 0.5 ) ;
102
+ assert_approx_eq ! ( f64 :: consts:: FRAC_PI_6 . sin( ) , 0.5 ) ;
103
+ assert_approx_eq ! ( f32 :: consts:: FRAC_PI_4 . sin( ) . asin( ) , f32 :: consts:: FRAC_PI_4 ) ;
104
+ assert_approx_eq ! ( f64 :: consts:: FRAC_PI_4 . sin( ) . asin( ) , f64 :: consts:: FRAC_PI_4 ) ;
89
105
90
106
assert_approx_eq ! ( 1.0f32 . sinh( ) , 1.1752012f32 ) ;
91
107
assert_approx_eq ! ( 1.0f64 . sinh( ) , 1.1752012f64 ) ;
108
+ assert_approx_eq ! ( 2.0f32 . asinh( ) , 1.443635475178810342493276740273105f32 ) ;
109
+ assert_approx_eq ! ( ( -2.0f64 ) . asinh( ) , -1.443635475178810342493276740273105f64 ) ;
92
110
93
- assert_approx_eq ! ( 1.0f32 . tan( ) , 1.557408f32 ) ;
94
- assert_approx_eq ! ( 1.0f64 . tan( ) , 1.557408f64 ) ;
95
-
111
+ assert_approx_eq ! ( 0f32 . cos( ) , 1f32 ) ;
112
+ assert_approx_eq ! ( ( f64 :: consts:: PI * 2f64 ) . cos( ) , 1f64 ) ;
113
+ assert_approx_eq ! ( f32 :: consts:: FRAC_PI_3 . cos( ) , 0.5 ) ;
114
+ assert_approx_eq ! ( f64 :: consts:: FRAC_PI_3 . cos( ) , 0.5 ) ;
96
115
assert_approx_eq ! ( f32 :: consts:: FRAC_PI_4 . cos( ) . acos( ) , f32 :: consts:: FRAC_PI_4 ) ;
97
116
assert_approx_eq ! ( f64 :: consts:: FRAC_PI_4 . cos( ) . acos( ) , f64 :: consts:: FRAC_PI_4 ) ;
98
117
99
- assert_approx_eq ! ( f32 :: consts:: FRAC_PI_4 . sin( ) . asin( ) , f32 :: consts:: FRAC_PI_4 ) ;
100
- assert_approx_eq ! ( f64 :: consts:: FRAC_PI_4 . sin( ) . asin( ) , f64 :: consts:: FRAC_PI_4 ) ;
118
+ assert_approx_eq ! ( 1.0f32 . cosh( ) , 1.54308f32 ) ;
119
+ assert_approx_eq ! ( 1.0f64 . cosh( ) , 1.54308f64 ) ;
120
+ assert_approx_eq ! ( 2.0f32 . acosh( ) , 1.31695789692481670862504634730796844f32 ) ;
121
+ assert_approx_eq ! ( 3.0f64 . acosh( ) , 1.76274717403908605046521864995958461f64 ) ;
101
122
123
+ assert_approx_eq ! ( 1.0f32 . tan( ) , 1.557408f32 ) ;
124
+ assert_approx_eq ! ( 1.0f64 . tan( ) , 1.557408f64 ) ;
102
125
assert_approx_eq ! ( 1.0_f32 , 1.0_f32 . tan( ) . atan( ) ) ;
103
126
assert_approx_eq ! ( 1.0_f64 , 1.0_f64 . tan( ) . atan( ) ) ;
127
+ assert_approx_eq ! ( 1.0f32 . atan2( 2.0f32 ) , 0.46364761f32 ) ;
128
+ assert_approx_eq ! ( 1.0f32 . atan2( 2.0f32 ) , 0.46364761f32 ) ;
104
129
105
- assert_eq ! ( 3.3_f32 . round( ) , 3.0 ) ;
106
- assert_eq ! ( 3.3_f64 . round( ) , 3.0 ) ;
107
-
108
- assert_eq ! ( ldexp( 0.65f64 , 3i32 ) , 5.2f64 ) ;
109
- assert_eq ! ( ldexp( 1.42 , 0xFFFF ) , f64 :: INFINITY ) ;
110
- assert_eq ! ( ldexp( 1.42 , -0xFFFF ) , 0f64 ) ;
130
+ assert_approx_eq ! (
131
+ 1.0f32 . tanh( ) ,
132
+ ( 1.0 - f32 :: consts:: E . powi( -2 ) ) / ( 1.0 + f32 :: consts:: E . powi( -2 ) )
133
+ ) ;
134
+ assert_approx_eq ! (
135
+ 1.0f64 . tanh( ) ,
136
+ ( 1.0 - f64 :: consts:: E . powi( -2 ) ) / ( 1.0 + f64 :: consts:: E . powi( -2 ) )
137
+ ) ;
138
+ assert_approx_eq ! ( 0.5f32 . atanh( ) , 0.54930614433405484569762261846126285f32 ) ;
139
+ assert_approx_eq ! ( 0.5f64 . atanh( ) , 0.54930614433405484569762261846126285f64 ) ;
111
140
}
0 commit comments