d1 \cdot d2 + d1 \cdot d3
\mathsf{fma}\left(d1, d2, d1 \cdot d3\right)double f(double d1, double d2, double d3) {
double r239343 = d1;
double r239344 = d2;
double r239345 = r239343 * r239344;
double r239346 = d3;
double r239347 = r239343 * r239346;
double r239348 = r239345 + r239347;
return r239348;
}
double f(double d1, double d2, double d3) {
double r239349 = d1;
double r239350 = d2;
double r239351 = d3;
double r239352 = r239349 * r239351;
double r239353 = fma(r239349, r239350, r239352);
return r239353;
}




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
Simplified0.0
Final simplification0.0
herbie shell --seed 2020046 +o rules:numerics
(FPCore (d1 d2 d3)
:name "FastMath dist"
:precision binary64
:herbie-target
(* d1 (+ d2 d3))
(+ (* d1 d2) (* d1 d3)))