\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(\sqrt{\cos^{-1} \left(\left(\sqrt{t} \cdot \frac{3}{2}\right) \cdot \frac{\frac{x}{z}}{y \cdot 27}\right) \cdot \frac{\sqrt[3]{1}}{\sqrt[3]{3}}} \cdot \sqrt{\cos^{-1} \left(\left(\sqrt{t} \cdot \frac{3}{2}\right) \cdot \frac{\frac{x}{z}}{y \cdot 27}\right) \cdot \frac{\sqrt[3]{1}}{\sqrt[3]{3}}}\right)double f(double x, double y, double z, double t) {
double r681833 = 1.0;
double r681834 = 3.0;
double r681835 = r681833 / r681834;
double r681836 = x;
double r681837 = y;
double r681838 = 27.0;
double r681839 = r681837 * r681838;
double r681840 = r681836 / r681839;
double r681841 = r681834 * r681840;
double r681842 = z;
double r681843 = 2.0;
double r681844 = r681842 * r681843;
double r681845 = r681841 / r681844;
double r681846 = t;
double r681847 = sqrt(r681846);
double r681848 = r681845 * r681847;
double r681849 = acos(r681848);
double r681850 = r681835 * r681849;
return r681850;
}
double f(double x, double y, double z, double t) {
double r681851 = 1.0;
double r681852 = cbrt(r681851);
double r681853 = r681852 * r681852;
double r681854 = 3.0;
double r681855 = cbrt(r681854);
double r681856 = r681855 * r681855;
double r681857 = r681853 / r681856;
double r681858 = t;
double r681859 = sqrt(r681858);
double r681860 = 2.0;
double r681861 = r681854 / r681860;
double r681862 = r681859 * r681861;
double r681863 = x;
double r681864 = z;
double r681865 = r681863 / r681864;
double r681866 = y;
double r681867 = 27.0;
double r681868 = r681866 * r681867;
double r681869 = r681865 / r681868;
double r681870 = r681862 * r681869;
double r681871 = acos(r681870);
double r681872 = r681852 / r681855;
double r681873 = r681871 * r681872;
double r681874 = sqrt(r681873);
double r681875 = r681874 * r681874;
double r681876 = r681857 * r681875;
return r681876;
}




Bits error versus x




Bits error versus y




Bits error versus z




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