\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 r196285 = d1;
double r196286 = 3.0;
double r196287 = r196285 * r196286;
double r196288 = d2;
double r196289 = r196285 * r196288;
double r196290 = r196287 + r196289;
double r196291 = d3;
double r196292 = r196285 * r196291;
double r196293 = r196290 + r196292;
return r196293;
}
double f(double d1, double d2, double d3) {
double r196294 = d1;
double r196295 = 3.0;
double r196296 = d2;
double r196297 = r196295 + r196296;
double r196298 = d3;
double r196299 = r196297 + r196298;
double r196300 = r196294 * r196299;
return r196300;
}




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