2 #![feature(const_fn_floating_point_arithmetic)]
3 #![warn(clippy::suboptimal_flops)]
5 /// Allow suboptimal_ops in constant context
6 pub const fn in_const_context() {
16 let a: f64 = 1234.567;
17 let b: f64 = 45.67834;
21 let _ = a.mul_add(b, c);
22 let _ = a.mul_add(b, c);
23 let _ = 2.0f64.mul_add(4.0, a);
24 let _ = 2.0f64.mul_add(4., a);
26 let _ = a.mul_add(b, c);
27 let _ = a.mul_add(b, c);
28 let _ = (a * b).mul_add(c, d);
30 let _ = a.mul_add(b, c).mul_add(a.mul_add(b, c), a.mul_add(b, c)) + c;
31 let _ = 1234.567_f64.mul_add(45.67834_f64, 0.0004_f64);
33 let _ = a.mul_add(a, b).sqrt();
35 // Cases where the lint shouldn't be applied
36 let _ = (a * a + b * b).sqrt();