\left(\left(x \cdot x + y \cdot y\right) + y \cdot y\right) + y \cdot y
y \cdot y + \left(y \cdot y + \left(x \cdot x + y \cdot y\right)\right)
double f(double x, double y) {
double r406507 = x;
double r406508 = r406507 * r406507;
double r406509 = y;
double r406510 = r406509 * r406509;
double r406511 = r406508 + r406510;
double r406512 = r406511 + r406510;
double r406513 = r406512 + r406510;
return r406513;
}
double f(double x, double y) {
double r406514 = y;
double r406515 = r406514 * r406514;
double r406516 = x;
double r406517 = r406516 * r406516;
double r406518 = r406517 + r406515;
double r406519 = r406515 + r406518;
double r406520 = r406515 + r406519;
return r406520;
}




Bits error versus x




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