\left(d1 \cdot 3 + d1 \cdot d2\right) + d1 \cdot d3
\left(d3 + \left(d2 + 3\right)\right) \cdot d1
double f(double d1, double d2, double d3) {
double r7870520 = d1;
double r7870521 = 3.0;
double r7870522 = r7870520 * r7870521;
double r7870523 = d2;
double r7870524 = r7870520 * r7870523;
double r7870525 = r7870522 + r7870524;
double r7870526 = d3;
double r7870527 = r7870520 * r7870526;
double r7870528 = r7870525 + r7870527;
return r7870528;
}
double f(double d1, double d2, double d3) {
double r7870529 = d3;
double r7870530 = d2;
double r7870531 = 3.0;
double r7870532 = r7870530 + r7870531;
double r7870533 = r7870529 + r7870532;
double r7870534 = d1;
double r7870535 = r7870533 * r7870534;
return r7870535;
}




Bits error versus d1




Bits error versus d2




Bits error versus d3
Results
| Original | 0.1 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019137
(FPCore (d1 d2 d3)
:name "FastMath test3"
:herbie-target
(* d1 (+ (+ 3 d2) d3))
(+ (+ (* d1 3) (* d1 d2)) (* d1 d3)))