\left(d1 \cdot 3 + d1 \cdot d2\right) + d1 \cdot d3
d1 \cdot \left(\left(3 + d2\right) + d3\right)
double f(double d1, double d2, double d3) {
double r259911 = d1;
double r259912 = 3.0;
double r259913 = r259911 * r259912;
double r259914 = d2;
double r259915 = r259911 * r259914;
double r259916 = r259913 + r259915;
double r259917 = d3;
double r259918 = r259911 * r259917;
double r259919 = r259916 + r259918;
return r259919;
}
double f(double d1, double d2, double d3) {
double r259920 = d1;
double r259921 = 3.0;
double r259922 = d2;
double r259923 = r259921 + r259922;
double r259924 = d3;
double r259925 = r259923 + r259924;
double r259926 = r259920 * r259925;
return r259926;
}




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 2020021
(FPCore (d1 d2 d3)
:name "FastMath test3"
:precision binary64
:herbie-target
(* d1 (+ (+ 3 d2) d3))
(+ (+ (* d1 3) (* d1 d2)) (* d1 d3)))