\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \frac{\cos^{-1} \left(0.05555555555555555247160270937456516548991 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)\right) \cdot \sqrt[3]{1}}{\sqrt[3]{3}}double f(double x, double y, double z, double t) {
double r508807 = 1.0;
double r508808 = 3.0;
double r508809 = r508807 / r508808;
double r508810 = x;
double r508811 = y;
double r508812 = 27.0;
double r508813 = r508811 * r508812;
double r508814 = r508810 / r508813;
double r508815 = r508808 * r508814;
double r508816 = z;
double r508817 = 2.0;
double r508818 = r508816 * r508817;
double r508819 = r508815 / r508818;
double r508820 = t;
double r508821 = sqrt(r508820);
double r508822 = r508819 * r508821;
double r508823 = acos(r508822);
double r508824 = r508809 * r508823;
return r508824;
}
double f(double x, double y, double z, double t) {
double r508825 = 1.0;
double r508826 = cbrt(r508825);
double r508827 = r508826 * r508826;
double r508828 = 3.0;
double r508829 = cbrt(r508828);
double r508830 = r508829 * r508829;
double r508831 = r508827 / r508830;
double r508832 = 0.05555555555555555;
double r508833 = t;
double r508834 = sqrt(r508833);
double r508835 = x;
double r508836 = z;
double r508837 = y;
double r508838 = r508836 * r508837;
double r508839 = r508835 / r508838;
double r508840 = r508834 * r508839;
double r508841 = r508832 * r508840;
double r508842 = acos(r508841);
double r508843 = r508842 * r508826;
double r508844 = r508843 / r508829;
double r508845 = r508831 * r508844;
return r508845;
}




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.2 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied add-cube-cbrt1.3
Applied times-frac0.4
Applied associate-*l*0.4
Taylor expanded around 0 0.2
Final simplification0.2
herbie shell --seed 2019325 +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)))))