d1 \cdot d2 + d1 \cdot d3
\left(d3 + d2\right) \cdot d1
double f(double d1, double d2, double d3) {
double r10638241 = d1;
double r10638242 = d2;
double r10638243 = r10638241 * r10638242;
double r10638244 = d3;
double r10638245 = r10638241 * r10638244;
double r10638246 = r10638243 + r10638245;
return r10638246;
}
double f(double d1, double d2, double d3) {
double r10638247 = d3;
double r10638248 = d2;
double r10638249 = r10638247 + r10638248;
double r10638250 = d1;
double r10638251 = r10638249 * r10638250;
return r10638251;
}




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 2019168 +o rules:numerics
(FPCore (d1 d2 d3)
:name "FastMath dist"
:herbie-target
(* d1 (+ d2 d3))
(+ (* d1 d2) (* d1 d3)))