\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(\frac{1}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\left(\frac{x}{z \cdot y} \cdot 0.05555555555555555247160270937456516548991\right) \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r40159904 = 1.0;
double r40159905 = 3.0;
double r40159906 = r40159904 / r40159905;
double r40159907 = x;
double r40159908 = y;
double r40159909 = 27.0;
double r40159910 = r40159908 * r40159909;
double r40159911 = r40159907 / r40159910;
double r40159912 = r40159905 * r40159911;
double r40159913 = z;
double r40159914 = 2.0;
double r40159915 = r40159913 * r40159914;
double r40159916 = r40159912 / r40159915;
double r40159917 = t;
double r40159918 = sqrt(r40159917);
double r40159919 = r40159916 * r40159918;
double r40159920 = acos(r40159919);
double r40159921 = r40159906 * r40159920;
return r40159921;
}
double f(double x, double y, double z, double t) {
double r40159922 = 1.0;
double r40159923 = 3.0;
double r40159924 = cbrt(r40159923);
double r40159925 = r40159924 * r40159924;
double r40159926 = r40159922 / r40159925;
double r40159927 = 1.0;
double r40159928 = r40159927 / r40159924;
double r40159929 = x;
double r40159930 = z;
double r40159931 = y;
double r40159932 = r40159930 * r40159931;
double r40159933 = r40159929 / r40159932;
double r40159934 = 0.05555555555555555;
double r40159935 = r40159933 * r40159934;
double r40159936 = t;
double r40159937 = sqrt(r40159936);
double r40159938 = r40159935 * r40159937;
double r40159939 = acos(r40159938);
double r40159940 = r40159928 * r40159939;
double r40159941 = r40159926 * r40159940;
return r40159941;
}




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 *-un-lft-identity1.3
Applied times-frac0.3
Applied associate-*l*0.3
Taylor expanded around 0 0.2
Final simplification0.2
herbie shell --seed 2019171
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, D"
:herbie-target
(/ (acos (* (/ (/ x 27.0) (* y z)) (/ (sqrt t) (/ 2.0 3.0)))) 3.0)
(* (/ 1.0 3.0) (acos (* (/ (* 3.0 (/ x (* y 27.0))) (* z 2.0)) (sqrt t)))))