\left(d1 \cdot d2 + \left(d3 + 5\right) \cdot d1\right) + d1 \cdot 32
\left(\left(d3 + 5\right) + 32\right) \cdot d1 + d2 \cdot d1
double f(double d1, double d2, double d3) {
double r381180 = d1;
double r381181 = d2;
double r381182 = r381180 * r381181;
double r381183 = d3;
double r381184 = 5.0;
double r381185 = r381183 + r381184;
double r381186 = r381185 * r381180;
double r381187 = r381182 + r381186;
double r381188 = 32.0;
double r381189 = r381180 * r381188;
double r381190 = r381187 + r381189;
return r381190;
}
double f(double d1, double d2, double d3) {
double r381191 = d3;
double r381192 = 5.0;
double r381193 = r381191 + r381192;
double r381194 = 32.0;
double r381195 = r381193 + r381194;
double r381196 = d1;
double r381197 = r381195 * r381196;
double r381198 = d2;
double r381199 = r381198 * r381196;
double r381200 = r381197 + r381199;
return r381200;
}




Bits error versus d1




Bits error versus d2




Bits error versus d3
Results
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.0
Simplified0.0
rmApplied distribute-lft-in0.0
Simplified0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019350 +o rules:numerics
(FPCore (d1 d2 d3)
:name "FastMath dist3"
:precision binary64
:herbie-target
(* d1 (+ (+ 37 d3) d2))
(+ (+ (* d1 d2) (* (+ d3 5) d1)) (* d1 32)))