1//! Fused multiply-add. Computes `(self * a) + b`
2
3use super::F32;
4
5impl F32 {
6 /// Computes `(self * a) + b`.
7 pub fn mul_add(self, a: Self, b: Self) -> Self {
8 self * a + b
9 }
10}
11
12#[cfg(test)]
13mod tests {
14 use super::F32;
15
16 #[test]
17 fn sanity_check() {
18 assert_eq!(F32(0.0).mul_add(F32(0.0), F32(1.0)), F32(1.0));
19 assert_eq!(F32(1.0).mul_add(F32(2.0), F32(3.5)), F32(5.5));
20 assert_eq!(F32(1.0).mul_add(F32(-1.0), F32(0.0)), F32(-1.0));
21 }
22}
23