\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 r321162 = x;
double r321163 = r321162 * r321162;
double r321164 = y;
double r321165 = r321164 * r321164;
double r321166 = r321163 + r321165;
double r321167 = r321166 + r321165;
double r321168 = r321167 + r321165;
return r321168;
}
double f(double x, double y) {
double r321169 = 3.0;
double r321170 = y;
double r321171 = r321170 * r321170;
double r321172 = r321169 * r321171;
double r321173 = x;
double r321174 = r321173 * r321173;
double r321175 = r321172 + r321174;
return r321175;
}




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