d1 \cdot d2 + d1 \cdot d3
\left(d3 + d2\right) \cdot d1
double f(double d1, double d2, double d3) {
double r53173194 = d1;
double r53173195 = d2;
double r53173196 = r53173194 * r53173195;
double r53173197 = d3;
double r53173198 = r53173194 * r53173197;
double r53173199 = r53173196 + r53173198;
return r53173199;
}
double f(double d1, double d2, double d3) {
double r53173200 = d3;
double r53173201 = d2;
double r53173202 = r53173200 + r53173201;
double r53173203 = d1;
double r53173204 = r53173202 * r53173203;
return r53173204;
}




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