\frac{\left(x \cdot x + y \cdot y\right) - z \cdot z}{y \cdot 2}0.5 \cdot \left(\left(y + \frac{x}{\frac{y}{x}}\right) - \frac{{z}^{1}}{\frac{y}{z}}\right)double f(double x, double y, double z) {
double r751669 = x;
double r751670 = r751669 * r751669;
double r751671 = y;
double r751672 = r751671 * r751671;
double r751673 = r751670 + r751672;
double r751674 = z;
double r751675 = r751674 * r751674;
double r751676 = r751673 - r751675;
double r751677 = 2.0;
double r751678 = r751671 * r751677;
double r751679 = r751676 / r751678;
return r751679;
}
double f(double x, double y, double z) {
double r751680 = 0.5;
double r751681 = y;
double r751682 = x;
double r751683 = r751681 / r751682;
double r751684 = r751682 / r751683;
double r751685 = r751681 + r751684;
double r751686 = z;
double r751687 = 1.0;
double r751688 = pow(r751686, r751687);
double r751689 = r751681 / r751686;
double r751690 = r751688 / r751689;
double r751691 = r751685 - r751690;
double r751692 = r751680 * r751691;
return r751692;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 28.8 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 28.8
Taylor expanded around 0 13.0
Simplified13.0
rmApplied unpow213.0
Applied associate-/l*7.2
rmApplied sqr-pow7.2
Applied associate-/l*0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020034
(FPCore (x y z)
:name "Diagrams.TwoD.Apollonian:initialConfig from diagrams-contrib-1.3.0.5, A"
:precision binary64
:herbie-target
(- (* y 0.5) (* (* (/ 0.5 y) (+ z x)) (- z x)))
(/ (- (+ (* x x) (* y y)) (* z z)) (* y 2)))