\left(\left(x \cdot x + y \cdot y\right) + y \cdot y\right) + y \cdot y
x \cdot x + \left(3 \cdot y\right) \cdot y
double f(double x, double y) {
double r363619 = x;
double r363620 = r363619 * r363619;
double r363621 = y;
double r363622 = r363621 * r363621;
double r363623 = r363620 + r363622;
double r363624 = r363623 + r363622;
double r363625 = r363624 + r363622;
return r363625;
}
double f(double x, double y) {
double r363626 = x;
double r363627 = r363626 * r363626;
double r363628 = 3.0;
double r363629 = y;
double r363630 = r363628 * r363629;
double r363631 = r363630 * r363629;
double r363632 = r363627 + r363631;
return r363632;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.2
rmApplied associate-+l+0.1
Simplified0.1
rmApplied associate-+l+0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019291
(FPCore (x y)
:name "Linear.Quaternion:$c/ from linear-1.19.1.3, E"
:precision binary64
:herbie-target
(+ (* x x) (* y (+ y (+ y y))))
(+ (+ (+ (* x x) (* y y)) (* y y)) (* y y)))