\left(d1 \cdot 3 + d1 \cdot d2\right) + d1 \cdot d3
d3 \cdot d1 + \left(3 + d2\right) \cdot d1
double f(double d1, double d2, double d3) {
double r6883701 = d1;
double r6883702 = 3.0;
double r6883703 = r6883701 * r6883702;
double r6883704 = d2;
double r6883705 = r6883701 * r6883704;
double r6883706 = r6883703 + r6883705;
double r6883707 = d3;
double r6883708 = r6883701 * r6883707;
double r6883709 = r6883706 + r6883708;
return r6883709;
}
double f(double d1, double d2, double d3) {
double r6883710 = d3;
double r6883711 = d1;
double r6883712 = r6883710 * r6883711;
double r6883713 = 3.0;
double r6883714 = d2;
double r6883715 = r6883713 + r6883714;
double r6883716 = r6883715 * r6883711;
double r6883717 = r6883712 + r6883716;
return r6883717;
}




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
Taylor expanded around 0 0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019142
(FPCore (d1 d2 d3)
:name "FastMath test3"
:herbie-target
(* d1 (+ (+ 3 d2) d3))
(+ (+ (* d1 3) (* d1 d2)) (* d1 d3)))