ff0d44e45a
Add lint to detect floating point operations that can be computed more accurately at the cost of performance. `cbrt`, `ln_1p` and `exp_m1` library functions call their equivalent cmath implementations which is slower but more accurate so moving checks for these under this new lint.
19 lines
439 B
Rust
19 lines
439 B
Rust
// run-rustfix
|
|
#![warn(clippy::imprecise_flops)]
|
|
|
|
fn main() {
|
|
let x = 2f32;
|
|
let _ = x.exp() - 1.0;
|
|
let _ = x.exp() - 1.0 + 2.0;
|
|
// Cases where the lint shouldn't be applied
|
|
let _ = x.exp() - 2.0;
|
|
let _ = x.exp() - 1.0 * 2.0;
|
|
|
|
let x = 2f64;
|
|
let _ = x.exp() - 1.0;
|
|
let _ = x.exp() - 1.0 + 2.0;
|
|
// Cases where the lint shouldn't be applied
|
|
let _ = x.exp() - 2.0;
|
|
let _ = x.exp() - 1.0 * 2.0;
|
|
}
|