\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \frac{\cos^{-1} \left(0.05555555555555555247160270937456516548991 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)\right) \cdot \sqrt{1}}{\sqrt[3]{3}}double f(double x, double y, double z, double t) {
double r529091 = 1.0;
double r529092 = 3.0;
double r529093 = r529091 / r529092;
double r529094 = x;
double r529095 = y;
double r529096 = 27.0;
double r529097 = r529095 * r529096;
double r529098 = r529094 / r529097;
double r529099 = r529092 * r529098;
double r529100 = z;
double r529101 = 2.0;
double r529102 = r529100 * r529101;
double r529103 = r529099 / r529102;
double r529104 = t;
double r529105 = sqrt(r529104);
double r529106 = r529103 * r529105;
double r529107 = acos(r529106);
double r529108 = r529093 * r529107;
return r529108;
}
double f(double x, double y, double z, double t) {
double r529109 = 1.0;
double r529110 = sqrt(r529109);
double r529111 = 3.0;
double r529112 = cbrt(r529111);
double r529113 = r529112 * r529112;
double r529114 = r529110 / r529113;
double r529115 = 0.05555555555555555;
double r529116 = t;
double r529117 = sqrt(r529116);
double r529118 = x;
double r529119 = z;
double r529120 = y;
double r529121 = r529119 * r529120;
double r529122 = r529118 / r529121;
double r529123 = r529117 * r529122;
double r529124 = r529115 * r529123;
double r529125 = acos(r529124);
double r529126 = r529125 * r529110;
double r529127 = r529126 / r529112;
double r529128 = r529114 * r529127;
return r529128;
}




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 add-sqr-sqrt1.3
Applied times-frac0.4
Applied associate-*l*0.4
Taylor expanded around 0 0.2
Final simplification0.2
herbie shell --seed 2019325
(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)))))