\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 r436778 = x;
double r436779 = r436778 * r436778;
double r436780 = y;
double r436781 = r436780 * r436780;
double r436782 = r436779 + r436781;
double r436783 = r436782 + r436781;
double r436784 = r436783 + r436781;
return r436784;
}
double f(double x, double y) {
double r436785 = x;
double r436786 = r436785 * r436785;
double r436787 = 3.0;
double r436788 = y;
double r436789 = r436787 * r436788;
double r436790 = r436789 * r436788;
double r436791 = r436786 + r436790;
return r436791;
}




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 2019212
(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)))