\left(d1 \cdot 10 + d1 \cdot d2\right) + d1 \cdot 20
d1 \cdot \left(20 + \left(10 + d2\right)\right)
double f(double d1, double d2) {
double r199776 = d1;
double r199777 = 10.0;
double r199778 = r199776 * r199777;
double r199779 = d2;
double r199780 = r199776 * r199779;
double r199781 = r199778 + r199780;
double r199782 = 20.0;
double r199783 = r199776 * r199782;
double r199784 = r199781 + r199783;
return r199784;
}
double f(double d1, double d2) {
double r199785 = d1;
double r199786 = 20.0;
double r199787 = 10.0;
double r199788 = d2;
double r199789 = r199787 + r199788;
double r199790 = r199786 + r199789;
double r199791 = r199785 * r199790;
return r199791;
}




Bits error versus d1




Bits error versus d2
Results
| Original | 0.2 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.2
Simplified0.0
Final simplification0.0
herbie shell --seed 2020042 +o rules:numerics
(FPCore (d1 d2)
:name "FastMath test2"
:precision binary64
:herbie-target
(* d1 (+ 30 d2))
(+ (+ (* d1 10) (* d1 d2)) (* d1 20)))