d1 \cdot d2 + d1 \cdot d3
d1 \cdot d2 + d1 \cdot d3
double f(double d1, double d2, double d3) {
double r111575 = d1;
double r111576 = d2;
double r111577 = r111575 * r111576;
double r111578 = d3;
double r111579 = r111575 * r111578;
double r111580 = r111577 + r111579;
return r111580;
}
double f(double d1, double d2, double d3) {
double r111581 = d1;
double r111582 = d2;
double r111583 = r111581 * r111582;
double r111584 = d3;
double r111585 = r111581 * r111584;
double r111586 = r111583 + r111585;
return r111586;
}




Bits error versus d1




Bits error versus d2




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