\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 x}{\left(z \cdot 2\right) \cdot \left(y \cdot 27\right)} \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r899892 = 1.0;
double r899893 = 3.0;
double r899894 = r899892 / r899893;
double r899895 = x;
double r899896 = y;
double r899897 = 27.0;
double r899898 = r899896 * r899897;
double r899899 = r899895 / r899898;
double r899900 = r899893 * r899899;
double r899901 = z;
double r899902 = 2.0;
double r899903 = r899901 * r899902;
double r899904 = r899900 / r899903;
double r899905 = t;
double r899906 = sqrt(r899905);
double r899907 = r899904 * r899906;
double r899908 = acos(r899907);
double r899909 = r899894 * r899908;
return r899909;
}
double f(double x, double y, double z, double t) {
double r899910 = 1.0;
double r899911 = cbrt(r899910);
double r899912 = r899911 * r899911;
double r899913 = 3.0;
double r899914 = cbrt(r899913);
double r899915 = r899914 * r899914;
double r899916 = r899912 / r899915;
double r899917 = r899911 / r899914;
double r899918 = x;
double r899919 = r899913 * r899918;
double r899920 = z;
double r899921 = 2.0;
double r899922 = r899920 * r899921;
double r899923 = y;
double r899924 = 27.0;
double r899925 = r899923 * r899924;
double r899926 = r899922 * r899925;
double r899927 = r899919 / r899926;
double r899928 = t;
double r899929 = sqrt(r899928);
double r899930 = r899927 * r899929;
double r899931 = acos(r899930);
double r899932 = r899917 * r899931;
double r899933 = r899916 * r899932;
return r899933;
}




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 add-cube-cbrt1.3
Applied times-frac0.3
Applied associate-*l*0.3
rmApplied associate-*r/0.3
Applied associate-/l/0.3
Final simplification0.3
herbie shell --seed 2019354 +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)))))