\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 r654476 = d1;
double r654477 = d2;
double r654478 = r654476 * r654477;
double r654479 = d3;
double r654480 = 5.0;
double r654481 = r654479 + r654480;
double r654482 = r654481 * r654476;
double r654483 = r654478 + r654482;
double r654484 = 32.0;
double r654485 = r654476 * r654484;
double r654486 = r654483 + r654485;
return r654486;
}
double f(double d1, double d2, double d3) {
double r654487 = d1;
double r654488 = 32.0;
double r654489 = d2;
double r654490 = d3;
double r654491 = 5.0;
double r654492 = r654490 + r654491;
double r654493 = r654489 + r654492;
double r654494 = r654488 + r654493;
double r654495 = r654487 * r654494;
return r654495;
}




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 2020043 +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)))