\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 \left(\frac{\sqrt[3]{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 r814882 = 1.0;
double r814883 = 3.0;
double r814884 = r814882 / r814883;
double r814885 = x;
double r814886 = y;
double r814887 = 27.0;
double r814888 = r814886 * r814887;
double r814889 = r814885 / r814888;
double r814890 = r814883 * r814889;
double r814891 = z;
double r814892 = 2.0;
double r814893 = r814891 * r814892;
double r814894 = r814890 / r814893;
double r814895 = t;
double r814896 = sqrt(r814895);
double r814897 = r814894 * r814896;
double r814898 = acos(r814897);
double r814899 = r814884 * r814898;
return r814899;
}
double f(double x, double y, double z, double t) {
double r814900 = 1.0;
double r814901 = cbrt(r814900);
double r814902 = r814901 * r814901;
double r814903 = 3.0;
double r814904 = cbrt(r814903);
double r814905 = r814904 * r814904;
double r814906 = r814902 / r814905;
double r814907 = r814901 / r814904;
double r814908 = x;
double r814909 = y;
double r814910 = 27.0;
double r814911 = r814909 * r814910;
double r814912 = r814908 / r814911;
double r814913 = r814903 * r814912;
double r814914 = z;
double r814915 = 2.0;
double r814916 = r814914 * r814915;
double r814917 = r814913 / r814916;
double r814918 = t;
double r814919 = sqrt(r814918);
double r814920 = r814917 * r814919;
double r814921 = acos(r814920);
double r814922 = r814907 * r814921;
double r814923 = r814906 * r814922;
return r814923;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.3 |
|---|---|
| Target | 1.3 |
| Herbie | 0.3 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied add-cube-cbrt1.3
Applied times-frac0.3
Applied associate-*l*0.3
Final simplification0.3
herbie shell --seed 2020042
(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)))))