\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 r372626 = d1;
double r372627 = 3.0;
double r372628 = r372626 * r372627;
double r372629 = d2;
double r372630 = r372626 * r372629;
double r372631 = r372628 + r372630;
double r372632 = d3;
double r372633 = r372626 * r372632;
double r372634 = r372631 + r372633;
return r372634;
}
double f(double d1, double d2, double d3) {
double r372635 = d1;
double r372636 = 3.0;
double r372637 = r372635 * r372636;
double r372638 = d2;
double r372639 = r372635 * r372638;
double r372640 = r372637 + r372639;
double r372641 = d3;
double r372642 = r372635 * r372641;
double r372643 = r372640 + r372642;
return r372643;
}




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 2019350
(FPCore (d1 d2 d3)
:name "FastMath test3"
:precision binary64
:herbie-target
(* d1 (+ (+ 3 d2) d3))
(+ (+ (* d1 3) (* d1 d2)) (* d1 d3)))