@@ -281,6 +281,35 @@ fn basic() {
281
281
assert_eq ! ( 34.2f64 . abs( ) , 34.2f64 ) ;
282
282
assert_eq ! ( ( -1.0f128 ) . abs( ) , 1.0f128 ) ;
283
283
assert_eq ! ( 34.2f128 . abs( ) , 34.2f128 ) ;
284
+
285
+ assert_eq ! ( 64_ f16. sqrt( ) , 8_ f16) ;
286
+ assert_eq ! ( 64_f32 . sqrt( ) , 8_f32 ) ;
287
+ assert_eq ! ( 64_f64 . sqrt( ) , 8_f64 ) ;
288
+ assert_eq ! ( 64_ f128. sqrt( ) , 8_ f128) ;
289
+ assert_eq ! ( f16:: INFINITY . sqrt( ) , f16:: INFINITY ) ;
290
+ assert_eq ! ( f32 :: INFINITY . sqrt( ) , f32 :: INFINITY ) ;
291
+ assert_eq ! ( f64 :: INFINITY . sqrt( ) , f64 :: INFINITY ) ;
292
+ assert_eq ! ( f128:: INFINITY . sqrt( ) , f128:: INFINITY ) ;
293
+ assert_eq ! ( 0.0_f16 . sqrt( ) . total_cmp( & 0.0 ) , std:: cmp:: Ordering :: Equal ) ;
294
+ assert_eq ! ( 0.0_f32 . sqrt( ) . total_cmp( & 0.0 ) , std:: cmp:: Ordering :: Equal ) ;
295
+ assert_eq ! ( 0.0_f64 . sqrt( ) . total_cmp( & 0.0 ) , std:: cmp:: Ordering :: Equal ) ;
296
+ assert_eq ! ( 0.0_f128 . sqrt( ) . total_cmp( & 0.0 ) , std:: cmp:: Ordering :: Equal ) ;
297
+ assert_eq ! ( ( -0.0_f16 ) . sqrt( ) . total_cmp( & -0.0 ) , std:: cmp:: Ordering :: Equal ) ;
298
+ assert_eq ! ( ( -0.0_f32 ) . sqrt( ) . total_cmp( & -0.0 ) , std:: cmp:: Ordering :: Equal ) ;
299
+ assert_eq ! ( ( -0.0_f64 ) . sqrt( ) . total_cmp( & -0.0 ) , std:: cmp:: Ordering :: Equal ) ;
300
+ assert_eq ! ( ( -0.0_f128 ) . sqrt( ) . total_cmp( & -0.0 ) , std:: cmp:: Ordering :: Equal ) ;
301
+ assert ! ( ( -5.0_f16 ) . sqrt( ) . is_nan( ) ) ;
302
+ assert ! ( ( -5.0_f32 ) . sqrt( ) . is_nan( ) ) ;
303
+ assert ! ( ( -5.0_f64 ) . sqrt( ) . is_nan( ) ) ;
304
+ assert ! ( ( -5.0_f128 ) . sqrt( ) . is_nan( ) ) ;
305
+ assert ! ( f16:: NEG_INFINITY . sqrt( ) . is_nan( ) ) ;
306
+ assert ! ( f32 :: NEG_INFINITY . sqrt( ) . is_nan( ) ) ;
307
+ assert ! ( f64 :: NEG_INFINITY . sqrt( ) . is_nan( ) ) ;
308
+ assert ! ( f128:: NEG_INFINITY . sqrt( ) . is_nan( ) ) ;
309
+ assert ! ( f16:: NAN . sqrt( ) . is_nan( ) ) ;
310
+ assert ! ( f32 :: NAN . sqrt( ) . is_nan( ) ) ;
311
+ assert ! ( f64 :: NAN . sqrt( ) . is_nan( ) ) ;
312
+ assert ! ( f128:: NAN . sqrt( ) . is_nan( ) ) ;
284
313
}
285
314
286
315
/// Test casts from floats to ints and back
@@ -1012,21 +1041,6 @@ pub fn libm() {
1012
1041
unsafe { ldexp ( a, b) }
1013
1042
}
1014
1043
1015
- assert_eq ! ( 64_f32 . sqrt( ) , 8_f32 ) ;
1016
- assert_eq ! ( 64_f64 . sqrt( ) , 8_f64 ) ;
1017
- assert_eq ! ( f32 :: INFINITY . sqrt( ) , f32 :: INFINITY ) ;
1018
- assert_eq ! ( f64 :: INFINITY . sqrt( ) , f64 :: INFINITY ) ;
1019
- assert_eq ! ( 0.0_f32 . sqrt( ) . total_cmp( & 0.0 ) , std:: cmp:: Ordering :: Equal ) ;
1020
- assert_eq ! ( 0.0_f64 . sqrt( ) . total_cmp( & 0.0 ) , std:: cmp:: Ordering :: Equal ) ;
1021
- assert_eq ! ( ( -0.0_f32 ) . sqrt( ) . total_cmp( & -0.0 ) , std:: cmp:: Ordering :: Equal ) ;
1022
- assert_eq ! ( ( -0.0_f64 ) . sqrt( ) . total_cmp( & -0.0 ) , std:: cmp:: Ordering :: Equal ) ;
1023
- assert ! ( ( -5.0_f32 ) . sqrt( ) . is_nan( ) ) ;
1024
- assert ! ( ( -5.0_f64 ) . sqrt( ) . is_nan( ) ) ;
1025
- assert ! ( f32 :: NEG_INFINITY . sqrt( ) . is_nan( ) ) ;
1026
- assert ! ( f64 :: NEG_INFINITY . sqrt( ) . is_nan( ) ) ;
1027
- assert ! ( f32 :: NAN . sqrt( ) . is_nan( ) ) ;
1028
- assert ! ( f64 :: NAN . sqrt( ) . is_nan( ) ) ;
1029
-
1030
1044
assert_approx_eq ! ( 25f32 . powi( -2 ) , 0.0016f32 ) ;
1031
1045
assert_approx_eq ! ( 23.2f64 . powi( 2 ) , 538.24f64 ) ;
1032
1046
0 commit comments