\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(\sqrt{\frac{\sqrt{1}}{\sqrt[3]{3}}} \cdot \left(\sqrt{\frac{\sqrt{1}}{\sqrt[3]{3}}} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\right)\right)double f(double x, double y, double z, double t) {
double r493841 = 1.0;
double r493842 = 3.0;
double r493843 = r493841 / r493842;
double r493844 = x;
double r493845 = y;
double r493846 = 27.0;
double r493847 = r493845 * r493846;
double r493848 = r493844 / r493847;
double r493849 = r493842 * r493848;
double r493850 = z;
double r493851 = 2.0;
double r493852 = r493850 * r493851;
double r493853 = r493849 / r493852;
double r493854 = t;
double r493855 = sqrt(r493854);
double r493856 = r493853 * r493855;
double r493857 = acos(r493856);
double r493858 = r493843 * r493857;
return r493858;
}
double f(double x, double y, double z, double t) {
double r493859 = 1.0;
double r493860 = sqrt(r493859);
double r493861 = 3.0;
double r493862 = cbrt(r493861);
double r493863 = r493862 * r493862;
double r493864 = r493860 / r493863;
double r493865 = r493860 / r493862;
double r493866 = sqrt(r493865);
double r493867 = x;
double r493868 = y;
double r493869 = 27.0;
double r493870 = r493868 * r493869;
double r493871 = r493867 / r493870;
double r493872 = r493861 * r493871;
double r493873 = z;
double r493874 = 2.0;
double r493875 = r493873 * r493874;
double r493876 = r493872 / r493875;
double r493877 = t;
double r493878 = sqrt(r493877);
double r493879 = r493876 * r493878;
double r493880 = acos(r493879);
double r493881 = r493866 * r493880;
double r493882 = r493866 * r493881;
double r493883 = r493864 * r493882;
return r493883;
}




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.5 |
Initial program 1.4
rmApplied add-cube-cbrt1.4
Applied add-sqr-sqrt1.4
Applied times-frac0.5
Applied associate-*l*0.4
rmApplied add-sqr-sqrt1.4
Applied associate-*l*0.5
Final simplification0.5
herbie shell --seed 2019323 +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)))))