\left(d1 \cdot 3 + d1 \cdot d2\right) + d1 \cdot d3
\left(d2 + \left(d3 + 3\right)\right) \cdot d1
double f(double d1, double d2, double d3) {
double r11436140 = d1;
double r11436141 = 3.0;
double r11436142 = r11436140 * r11436141;
double r11436143 = d2;
double r11436144 = r11436140 * r11436143;
double r11436145 = r11436142 + r11436144;
double r11436146 = d3;
double r11436147 = r11436140 * r11436146;
double r11436148 = r11436145 + r11436147;
return r11436148;
}
double f(double d1, double d2, double d3) {
double r11436149 = d2;
double r11436150 = d3;
double r11436151 = 3.0;
double r11436152 = r11436150 + r11436151;
double r11436153 = r11436149 + r11436152;
double r11436154 = d1;
double r11436155 = r11436153 * r11436154;
return r11436155;
}




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 2019169
(FPCore (d1 d2 d3)
:name "FastMath test3"
:herbie-target
(* d1 (+ (+ 3.0 d2) d3))
(+ (+ (* d1 3.0) (* d1 d2)) (* d1 d3)))