\left(d1 \cdot 3 + d1 \cdot d2\right) + d1 \cdot d3
d2 \cdot d1 + \left(3 + d3\right) \cdot d1
double f(double d1, double d2, double d3) {
double r4263673 = d1;
double r4263674 = 3.0;
double r4263675 = r4263673 * r4263674;
double r4263676 = d2;
double r4263677 = r4263673 * r4263676;
double r4263678 = r4263675 + r4263677;
double r4263679 = d3;
double r4263680 = r4263673 * r4263679;
double r4263681 = r4263678 + r4263680;
return r4263681;
}
double f(double d1, double d2, double d3) {
double r4263682 = d2;
double r4263683 = d1;
double r4263684 = r4263682 * r4263683;
double r4263685 = 3.0;
double r4263686 = d3;
double r4263687 = r4263685 + r4263686;
double r4263688 = r4263687 * r4263683;
double r4263689 = r4263684 + r4263688;
return r4263689;
}




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
Simplified0.1
rmApplied distribute-rgt-in0.1
Final simplification0.1
herbie shell --seed 2019153
(FPCore (d1 d2 d3)
:name "FastMath test3"
:herbie-target
(* d1 (+ (+ 3 d2) d3))
(+ (+ (* d1 3) (* d1 d2)) (* d1 d3)))