d1 \cdot d2 + d1 \cdot d3
\mathsf{fma}\left(d1, d2, d1 \cdot d3\right)double f(double d1, double d2, double d3) {
double r24978053 = d1;
double r24978054 = d2;
double r24978055 = r24978053 * r24978054;
double r24978056 = d3;
double r24978057 = r24978053 * r24978056;
double r24978058 = r24978055 + r24978057;
return r24978058;
}
double f(double d1, double d2, double d3) {
double r24978059 = d1;
double r24978060 = d2;
double r24978061 = d3;
double r24978062 = r24978059 * r24978061;
double r24978063 = fma(r24978059, r24978060, r24978062);
return r24978063;
}




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 2019173 +o rules:numerics
(FPCore (d1 d2 d3)
:name "FastMath dist"
:herbie-target
(* d1 (+ d2 d3))
(+ (* d1 d2) (* d1 d3)))