\left(d1 \cdot 3 + d1 \cdot d2\right) + d1 \cdot d3
d1 \cdot \left(d3 + \left(3 + d2\right)\right)
double f(double d1, double d2, double d3) {
double r214304 = d1;
double r214305 = 3.0;
double r214306 = r214304 * r214305;
double r214307 = d2;
double r214308 = r214304 * r214307;
double r214309 = r214306 + r214308;
double r214310 = d3;
double r214311 = r214304 * r214310;
double r214312 = r214309 + r214311;
return r214312;
}
double f(double d1, double d2, double d3) {
double r214313 = d1;
double r214314 = d3;
double r214315 = 3.0;
double r214316 = d2;
double r214317 = r214315 + r214316;
double r214318 = r214314 + r214317;
double r214319 = r214313 * r214318;
return r214319;
}




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
Final simplification0.1
herbie shell --seed 2020042
(FPCore (d1 d2 d3)
:name "FastMath test3"
:precision binary64
:herbie-target
(* d1 (+ (+ 3 d2) d3))
(+ (+ (* d1 3) (* d1 d2)) (* d1 d3)))