1 2 3 4 5 6 7 8 9 10 11
#![allow(dead_code)]
pub fn floats_are_same(value: f64, reference: f64, threshold: f64) -> bool {
let absolute_error = (value - reference).abs();
if reference.abs() > threshold {
let relative_error = (absolute_error / reference).abs();
relative_error < threshold
} else {
absolute_error < threshold
}
}