\left(d1 \cdot d2 + \left(d3 + 5\right) \cdot d1\right) + d1 \cdot 32
d1 \cdot \left(32 + \left(d2 + \left(d3 + 5\right)\right)\right)
double f(double d1, double d2, double d3) {
double r275996 = d1;
double r275997 = d2;
double r275998 = r275996 * r275997;
double r275999 = d3;
double r276000 = 5.0;
double r276001 = r275999 + r276000;
double r276002 = r276001 * r275996;
double r276003 = r275998 + r276002;
double r276004 = 32.0;
double r276005 = r275996 * r276004;
double r276006 = r276003 + r276005;
return r276006;
}
double f(double d1, double d2, double d3) {
double r276007 = d1;
double r276008 = 32.0;
double r276009 = d2;
double r276010 = d3;
double r276011 = 5.0;
double r276012 = r276010 + r276011;
double r276013 = r276009 + r276012;
double r276014 = r276008 + r276013;
double r276015 = r276007 * r276014;
return r276015;
}




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
Final simplification0.0
herbie shell --seed 2020042 +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)))