d1 \cdot d2 + d1 \cdot d3
\mathsf{fma}\left(d1, d2, d1 \cdot d3\right)double f(double d1, double d2, double d3) {
double r223879 = d1;
double r223880 = d2;
double r223881 = r223879 * r223880;
double r223882 = d3;
double r223883 = r223879 * r223882;
double r223884 = r223881 + r223883;
return r223884;
}
double f(double d1, double d2, double d3) {
double r223885 = d1;
double r223886 = d2;
double r223887 = d3;
double r223888 = r223885 * r223887;
double r223889 = fma(r223885, r223886, r223888);
return r223889;
}




Bits error versus d1




Bits error versus d2




Bits error versus d3
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.0
rmApplied fma-def0.0
Final simplification0.0
herbie shell --seed 2019174 +o rules:numerics
(FPCore (d1 d2 d3)
:name "FastMath dist"
:herbie-target
(* d1 (+ d2 d3))
(+ (* d1 d2) (* d1 d3)))