\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\frac{\sqrt{1}}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\left(0.05555555555555555247160270937456516548991 \cdot \frac{x}{z \cdot y}\right) \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r883764 = 1.0;
double r883765 = 3.0;
double r883766 = r883764 / r883765;
double r883767 = x;
double r883768 = y;
double r883769 = 27.0;
double r883770 = r883768 * r883769;
double r883771 = r883767 / r883770;
double r883772 = r883765 * r883771;
double r883773 = z;
double r883774 = 2.0;
double r883775 = r883773 * r883774;
double r883776 = r883772 / r883775;
double r883777 = t;
double r883778 = sqrt(r883777);
double r883779 = r883776 * r883778;
double r883780 = acos(r883779);
double r883781 = r883766 * r883780;
return r883781;
}
double f(double x, double y, double z, double t) {
double r883782 = 1.0;
double r883783 = sqrt(r883782);
double r883784 = 3.0;
double r883785 = cbrt(r883784);
double r883786 = r883785 * r883785;
double r883787 = r883783 / r883786;
double r883788 = r883783 / r883785;
double r883789 = 0.05555555555555555;
double r883790 = x;
double r883791 = z;
double r883792 = y;
double r883793 = r883791 * r883792;
double r883794 = r883790 / r883793;
double r883795 = r883789 * r883794;
double r883796 = t;
double r883797 = sqrt(r883796);
double r883798 = r883795 * r883797;
double r883799 = acos(r883798);
double r883800 = r883788 * r883799;
double r883801 = r883787 * r883800;
return r883801;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.4 |
|---|---|
| Target | 1.2 |
| Herbie | 0.3 |
Initial program 1.4
rmApplied add-cube-cbrt1.4
Applied add-sqr-sqrt1.4
Applied times-frac0.4
Applied associate-*l*0.4
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2019351 +o rules:numerics
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, D"
:precision binary64
:herbie-target
(/ (acos (* (/ (/ x 27) (* y z)) (/ (sqrt t) (/ 2 3)))) 3)
(* (/ 1 3) (acos (* (/ (* 3 (/ x (* y 27))) (* z 2)) (sqrt t)))))