\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(\left(0.055555555555555552 \cdot \frac{x}{z \cdot y}\right) \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r828076 = 1.0;
double r828077 = 3.0;
double r828078 = r828076 / r828077;
double r828079 = x;
double r828080 = y;
double r828081 = 27.0;
double r828082 = r828080 * r828081;
double r828083 = r828079 / r828082;
double r828084 = r828077 * r828083;
double r828085 = z;
double r828086 = 2.0;
double r828087 = r828085 * r828086;
double r828088 = r828084 / r828087;
double r828089 = t;
double r828090 = sqrt(r828089);
double r828091 = r828088 * r828090;
double r828092 = acos(r828091);
double r828093 = r828078 * r828092;
return r828093;
}
double f(double x, double y, double z, double t) {
double r828094 = 1.0;
double r828095 = cbrt(r828094);
double r828096 = r828095 * r828095;
double r828097 = 3.0;
double r828098 = cbrt(r828097);
double r828099 = r828098 * r828098;
double r828100 = r828096 / r828099;
double r828101 = r828095 / r828098;
double r828102 = 0.05555555555555555;
double r828103 = x;
double r828104 = z;
double r828105 = y;
double r828106 = r828104 * r828105;
double r828107 = r828103 / r828106;
double r828108 = r828102 * r828107;
double r828109 = t;
double r828110 = sqrt(r828109);
double r828111 = r828108 * r828110;
double r828112 = acos(r828111);
double r828113 = r828101 * r828112;
double r828114 = r828100 * r828113;
return r828114;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.4 |
|---|---|
| Target | 1.2 |
| Herbie | 0.2 |
Initial program 1.4
Taylor expanded around 0 1.2
rmApplied add-cube-cbrt1.2
Applied add-cube-cbrt1.2
Applied times-frac0.2
Applied associate-*l*0.2
Final simplification0.2
herbie shell --seed 2020025
(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)))))