\left(\left(x \cdot x + y \cdot y\right) + y \cdot y\right) + y \cdot y
\left(3 \cdot y\right) \cdot y + x \cdot x
double f(double x, double y) {
double r503628 = x;
double r503629 = r503628 * r503628;
double r503630 = y;
double r503631 = r503630 * r503630;
double r503632 = r503629 + r503631;
double r503633 = r503632 + r503631;
double r503634 = r503633 + r503631;
return r503634;
}
double f(double x, double y) {
double r503635 = 3.0;
double r503636 = y;
double r503637 = r503635 * r503636;
double r503638 = r503637 * r503636;
double r503639 = x;
double r503640 = r503639 * r503639;
double r503641 = r503638 + r503640;
return r503641;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.1 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.1
Simplified0.1
rmApplied associate-*r*0.1
Final simplification0.1
herbie shell --seed 2020024
(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)))