@@ -281,6 +281,35 @@ fn basic() {
281281 assert_eq ! ( 34.2f64 . abs( ) , 34.2f64 ) ;
282282 assert_eq ! ( ( -1.0f128 ) . abs( ) , 1.0f128 ) ;
283283 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( ) ) ;
284313}
285314
286315/// Test casts from floats to ints and back
@@ -1012,21 +1041,6 @@ pub fn libm() {
10121041 unsafe { ldexp ( a, b) }
10131042 }
10141043
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-
10301044 assert_approx_eq ! ( 25f32 . powi( -2 ) , 0.0016f32 ) ;
10311045 assert_approx_eq ! ( 23.2f64 . powi( 2 ) , 538.24f64 ) ;
10321046
0 commit comments