\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\left(\sqrt[3]{\frac{1}{\sqrt[3]{3}}} \cdot \sqrt[3]{\frac{1}{\sqrt[3]{3}}}\right) \cdot \left(\sqrt[3]{\frac{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 r1033904 = 1.0;
double r1033905 = 3.0;
double r1033906 = r1033904 / r1033905;
double r1033907 = x;
double r1033908 = y;
double r1033909 = 27.0;
double r1033910 = r1033908 * r1033909;
double r1033911 = r1033907 / r1033910;
double r1033912 = r1033905 * r1033911;
double r1033913 = z;
double r1033914 = 2.0;
double r1033915 = r1033913 * r1033914;
double r1033916 = r1033912 / r1033915;
double r1033917 = t;
double r1033918 = sqrt(r1033917);
double r1033919 = r1033916 * r1033918;
double r1033920 = acos(r1033919);
double r1033921 = r1033906 * r1033920;
return r1033921;
}
double f(double x, double y, double z, double t) {
double r1033922 = 1.0;
double r1033923 = 3.0;
double r1033924 = cbrt(r1033923);
double r1033925 = r1033924 * r1033924;
double r1033926 = r1033922 / r1033925;
double r1033927 = 1.0;
double r1033928 = r1033927 / r1033924;
double r1033929 = cbrt(r1033928);
double r1033930 = r1033929 * r1033929;
double r1033931 = x;
double r1033932 = y;
double r1033933 = 27.0;
double r1033934 = r1033932 * r1033933;
double r1033935 = r1033931 / r1033934;
double r1033936 = r1033923 * r1033935;
double r1033937 = z;
double r1033938 = 2.0;
double r1033939 = r1033937 * r1033938;
double r1033940 = r1033936 / r1033939;
double r1033941 = t;
double r1033942 = sqrt(r1033941);
double r1033943 = r1033940 * r1033942;
double r1033944 = acos(r1033943);
double r1033945 = r1033929 * r1033944;
double r1033946 = r1033930 * r1033945;
double r1033947 = r1033926 * r1033946;
return r1033947;
}




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.4 |
Initial program 1.4
rmApplied add-cube-cbrt1.4
Applied *-un-lft-identity1.4
Applied times-frac0.4
Applied associate-*l*0.4
rmApplied add-cube-cbrt1.4
Applied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2019362 +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)))))