\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(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r716879 = 1.0;
double r716880 = 3.0;
double r716881 = r716879 / r716880;
double r716882 = x;
double r716883 = y;
double r716884 = 27.0;
double r716885 = r716883 * r716884;
double r716886 = r716882 / r716885;
double r716887 = r716880 * r716886;
double r716888 = z;
double r716889 = 2.0;
double r716890 = r716888 * r716889;
double r716891 = r716887 / r716890;
double r716892 = t;
double r716893 = sqrt(r716892);
double r716894 = r716891 * r716893;
double r716895 = acos(r716894);
double r716896 = r716881 * r716895;
return r716896;
}
double f(double x, double y, double z, double t) {
double r716897 = 1.0;
double r716898 = sqrt(r716897);
double r716899 = 3.0;
double r716900 = cbrt(r716899);
double r716901 = r716900 * r716900;
double r716902 = r716898 / r716901;
double r716903 = r716898 / r716900;
double r716904 = x;
double r716905 = y;
double r716906 = 27.0;
double r716907 = r716905 * r716906;
double r716908 = r716904 / r716907;
double r716909 = r716899 * r716908;
double r716910 = z;
double r716911 = 2.0;
double r716912 = r716910 * r716911;
double r716913 = r716909 / r716912;
double r716914 = t;
double r716915 = sqrt(r716914);
double r716916 = r716913 * r716915;
double r716917 = acos(r716916);
double r716918 = r716903 * r716917;
double r716919 = r716902 * r716918;
return r716919;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.3 |
|---|---|
| Target | 1.2 |
| Herbie | 0.4 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied add-sqr-sqrt1.3
Applied times-frac0.4
Applied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2020021 +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)))))