\left(d1 \cdot 3 + d1 \cdot d2\right) + d1 \cdot d3
\left(d1 \cdot 3 + d1 \cdot d2\right) + d1 \cdot d3
double f(double d1, double d2, double d3) {
double r436577 = d1;
double r436578 = 3.0;
double r436579 = r436577 * r436578;
double r436580 = d2;
double r436581 = r436577 * r436580;
double r436582 = r436579 + r436581;
double r436583 = d3;
double r436584 = r436577 * r436583;
double r436585 = r436582 + r436584;
return r436585;
}
double f(double d1, double d2, double d3) {
double r436586 = d1;
double r436587 = 3.0;
double r436588 = r436586 * r436587;
double r436589 = d2;
double r436590 = r436586 * r436589;
double r436591 = r436588 + r436590;
double r436592 = d3;
double r436593 = r436586 * r436592;
double r436594 = r436591 + r436593;
return r436594;
}




Bits error versus d1




Bits error versus d2




Bits error versus d3
Results
| Original | 0.1 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.1
Final simplification0.1
herbie shell --seed 2020047
(FPCore (d1 d2 d3)
:name "FastMath test3"
:precision binary64
:herbie-target
(* d1 (+ (+ 3 d2) d3))
(+ (+ (* d1 3) (* d1 d2)) (* d1 d3)))