\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 \frac{1 \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)}{\sqrt[3]{3}}double f(double x, double y, double z, double t) {
double r834948 = 1.0;
double r834949 = 3.0;
double r834950 = r834948 / r834949;
double r834951 = x;
double r834952 = y;
double r834953 = 27.0;
double r834954 = r834952 * r834953;
double r834955 = r834951 / r834954;
double r834956 = r834949 * r834955;
double r834957 = z;
double r834958 = 2.0;
double r834959 = r834957 * r834958;
double r834960 = r834956 / r834959;
double r834961 = t;
double r834962 = sqrt(r834961);
double r834963 = r834960 * r834962;
double r834964 = acos(r834963);
double r834965 = r834950 * r834964;
return r834965;
}
double f(double x, double y, double z, double t) {
double r834966 = 1.0;
double r834967 = 3.0;
double r834968 = cbrt(r834967);
double r834969 = r834968 * r834968;
double r834970 = r834966 / r834969;
double r834971 = 1.0;
double r834972 = x;
double r834973 = y;
double r834974 = 27.0;
double r834975 = r834973 * r834974;
double r834976 = r834972 / r834975;
double r834977 = r834967 * r834976;
double r834978 = z;
double r834979 = 2.0;
double r834980 = r834978 * r834979;
double r834981 = r834977 / r834980;
double r834982 = t;
double r834983 = sqrt(r834982);
double r834984 = r834981 * r834983;
double r834985 = acos(r834984);
double r834986 = r834971 * r834985;
double r834987 = r834986 / r834968;
double r834988 = r834970 * r834987;
return r834988;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.2 |
|---|---|
| Target | 1.2 |
| Herbie | 0.3 |
Initial program 1.2
rmApplied add-cube-cbrt1.2
Applied *-un-lft-identity1.2
Applied times-frac0.3
Applied associate-*l*0.3
rmApplied associate-*l/0.3
Final simplification0.3
herbie shell --seed 2020018 +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)))))