Fused multiply-add. Computes
(self * a) + b with only one rounding
error, yielding a more accurate result than an unfused multiply-add.
mul_add can be more performant than an unfused multiply-add if
the target architecture has a dedicated
fma CPU instruction.
Self by default, but this is not mandatory.
use std::f32; let m = 10.0_f32; let x = 4.0_f32; let b = 60.0_f32; // 100.0 let abs_difference = (m.mul_add(x, b) - (m*x + b)).abs(); assert!(abs_difference <= f32::EPSILON);
The resulting type after applying the fused multiply-add.