\left(\left(x \cdot x + y \cdot y\right) + y \cdot y\right) + y \cdot y
3 \cdot \left(y \cdot y\right) + x \cdot x
double f(double x, double y) {
double r448257 = x;
double r448258 = r448257 * r448257;
double r448259 = y;
double r448260 = r448259 * r448259;
double r448261 = r448258 + r448260;
double r448262 = r448261 + r448260;
double r448263 = r448262 + r448260;
return r448263;
}
double f(double x, double y) {
double r448264 = 3.0;
double r448265 = y;
double r448266 = r448265 * r448265;
double r448267 = r448264 * r448266;
double r448268 = x;
double r448269 = r448268 * r448268;
double r448270 = r448267 + r448269;
return r448270;
}




Bits error versus x




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