d1 \cdot d2 + d1 \cdot d3
d1 \cdot \left(d2 + d3\right)
double f(double d1, double d2, double d3) {
double r382290 = d1;
double r382291 = d2;
double r382292 = r382290 * r382291;
double r382293 = d3;
double r382294 = r382290 * r382293;
double r382295 = r382292 + r382294;
return r382295;
}
double f(double d1, double d2, double d3) {
double r382296 = d1;
double r382297 = d2;
double r382298 = d3;
double r382299 = r382297 + r382298;
double r382300 = r382296 * r382299;
return r382300;
}




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