\left(d1 \cdot 3 + d1 \cdot d2\right) + d1 \cdot d3
\left(d1 \cdot 3 + d1 \cdot d2\right) + d1 \cdot d3
double f(double d1, double d2, double d3) {
double r252011 = d1;
double r252012 = 3.0;
double r252013 = r252011 * r252012;
double r252014 = d2;
double r252015 = r252011 * r252014;
double r252016 = r252013 + r252015;
double r252017 = d3;
double r252018 = r252011 * r252017;
double r252019 = r252016 + r252018;
return r252019;
}
double f(double d1, double d2, double d3) {
double r252020 = d1;
double r252021 = 3.0;
double r252022 = r252020 * r252021;
double r252023 = d2;
double r252024 = r252020 * r252023;
double r252025 = r252022 + r252024;
double r252026 = d3;
double r252027 = r252020 * r252026;
double r252028 = r252025 + r252027;
return r252028;
}




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
Final simplification0.1
herbie shell --seed 2020047
(FPCore (d1 d2 d3)
:name "FastMath test3"
:precision binary64
:herbie-target
(* d1 (+ (+ 3 d2) d3))
(+ (+ (* d1 3) (* d1 d2)) (* d1 d3)))