\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 \sqrt[3]{\frac{{1}^{3}}{\frac{3}{{\left(\cos^{-1} \left(0.055555555555555552 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)\right)\right)}^{3}}}}double f(double x, double y, double z, double t) {
double r789969 = 1.0;
double r789970 = 3.0;
double r789971 = r789969 / r789970;
double r789972 = x;
double r789973 = y;
double r789974 = 27.0;
double r789975 = r789973 * r789974;
double r789976 = r789972 / r789975;
double r789977 = r789970 * r789976;
double r789978 = z;
double r789979 = 2.0;
double r789980 = r789978 * r789979;
double r789981 = r789977 / r789980;
double r789982 = t;
double r789983 = sqrt(r789982);
double r789984 = r789981 * r789983;
double r789985 = acos(r789984);
double r789986 = r789971 * r789985;
return r789986;
}
double f(double x, double y, double z, double t) {
double r789987 = 1.0;
double r789988 = 3.0;
double r789989 = cbrt(r789988);
double r789990 = r789989 * r789989;
double r789991 = r789987 / r789990;
double r789992 = 1.0;
double r789993 = 3.0;
double r789994 = pow(r789992, r789993);
double r789995 = 0.05555555555555555;
double r789996 = t;
double r789997 = sqrt(r789996);
double r789998 = x;
double r789999 = z;
double r790000 = y;
double r790001 = r789999 * r790000;
double r790002 = r789998 / r790001;
double r790003 = r789997 * r790002;
double r790004 = r789995 * r790003;
double r790005 = acos(r790004);
double r790006 = pow(r790005, r789993);
double r790007 = r789988 / r790006;
double r790008 = r789994 / r790007;
double r790009 = cbrt(r790008);
double r790010 = r789991 * r790009;
return r790010;
}




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.3 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied *-un-lft-identity1.3
Applied times-frac0.4
Applied associate-*l*0.3
Taylor expanded around 0 0.3
rmApplied add-cbrt-cube1.3
Applied add-cbrt-cube1.3
Applied cbrt-undiv0.3
Applied cbrt-unprod0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2020047
(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)))))