\left(\left(x \cdot y + z \cdot z\right) + z \cdot z\right) + z \cdot z
\left(\left(x \cdot y + z \cdot z\right) + z \cdot z\right) + z \cdot z
double f(double x, double y, double z) {
double r26269805 = x;
double r26269806 = y;
double r26269807 = r26269805 * r26269806;
double r26269808 = z;
double r26269809 = r26269808 * r26269808;
double r26269810 = r26269807 + r26269809;
double r26269811 = r26269810 + r26269809;
double r26269812 = r26269811 + r26269809;
return r26269812;
}
double f(double x, double y, double z) {
double r26269813 = x;
double r26269814 = y;
double r26269815 = r26269813 * r26269814;
double r26269816 = z;
double r26269817 = r26269816 * r26269816;
double r26269818 = r26269815 + r26269817;
double r26269819 = r26269818 + r26269817;
double r26269820 = r26269819 + r26269817;
return r26269820;
}




Bits error versus x




Bits error versus y




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