\left(d1 \cdot 3 + d1 \cdot d2\right) + d1 \cdot d3
d1 \cdot 3 + d1 \cdot \left(d2 + d3\right)
double f(double d1, double d2, double d3) {
double r296078 = d1;
double r296079 = 3.0;
double r296080 = r296078 * r296079;
double r296081 = d2;
double r296082 = r296078 * r296081;
double r296083 = r296080 + r296082;
double r296084 = d3;
double r296085 = r296078 * r296084;
double r296086 = r296083 + r296085;
return r296086;
}
double f(double d1, double d2, double d3) {
double r296087 = d1;
double r296088 = 3.0;
double r296089 = r296087 * r296088;
double r296090 = d2;
double r296091 = d3;
double r296092 = r296090 + r296091;
double r296093 = r296087 * r296092;
double r296094 = r296089 + r296093;
return r296094;
}




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