\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 r36161099 = 1.0;
double r36161100 = 3.0;
double r36161101 = r36161099 / r36161100;
double r36161102 = x;
double r36161103 = y;
double r36161104 = 27.0;
double r36161105 = r36161103 * r36161104;
double r36161106 = r36161102 / r36161105;
double r36161107 = r36161100 * r36161106;
double r36161108 = z;
double r36161109 = 2.0;
double r36161110 = r36161108 * r36161109;
double r36161111 = r36161107 / r36161110;
double r36161112 = t;
double r36161113 = sqrt(r36161112);
double r36161114 = r36161111 * r36161113;
double r36161115 = acos(r36161114);
double r36161116 = r36161101 * r36161115;
return r36161116;
}
double f(double x, double y, double z, double t) {
double r36161117 = 1.0;
double r36161118 = 3.0;
double r36161119 = cbrt(r36161118);
double r36161120 = r36161119 * r36161119;
double r36161121 = r36161117 / r36161120;
double r36161122 = 1.0;
double r36161123 = r36161122 / r36161119;
double r36161124 = x;
double r36161125 = z;
double r36161126 = y;
double r36161127 = r36161125 * r36161126;
double r36161128 = r36161124 / r36161127;
double r36161129 = 0.05555555555555555;
double r36161130 = r36161128 * r36161129;
double r36161131 = t;
double r36161132 = sqrt(r36161131);
double r36161133 = r36161130 * r36161132;
double r36161134 = acos(r36161133);
double r36161135 = r36161123 * r36161134;
double r36161136 = r36161121 * r36161135;
return r36161136;
}




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)))))