\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 \frac{1 \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)}{\sqrt[3]{3}}double f(double x, double y, double z, double t) {
double r774057 = 1.0;
double r774058 = 3.0;
double r774059 = r774057 / r774058;
double r774060 = x;
double r774061 = y;
double r774062 = 27.0;
double r774063 = r774061 * r774062;
double r774064 = r774060 / r774063;
double r774065 = r774058 * r774064;
double r774066 = z;
double r774067 = 2.0;
double r774068 = r774066 * r774067;
double r774069 = r774065 / r774068;
double r774070 = t;
double r774071 = sqrt(r774070);
double r774072 = r774069 * r774071;
double r774073 = acos(r774072);
double r774074 = r774059 * r774073;
return r774074;
}
double f(double x, double y, double z, double t) {
double r774075 = 1.0;
double r774076 = 3.0;
double r774077 = cbrt(r774076);
double r774078 = r774077 * r774077;
double r774079 = r774075 / r774078;
double r774080 = 1.0;
double r774081 = x;
double r774082 = y;
double r774083 = 27.0;
double r774084 = r774082 * r774083;
double r774085 = r774081 / r774084;
double r774086 = r774076 * r774085;
double r774087 = z;
double r774088 = 2.0;
double r774089 = r774087 * r774088;
double r774090 = r774086 / r774089;
double r774091 = t;
double r774092 = sqrt(r774091);
double r774093 = r774090 * r774092;
double r774094 = acos(r774093);
double r774095 = r774080 * r774094;
double r774096 = r774095 / r774077;
double r774097 = r774079 * r774096;
return r774097;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.3 |
|---|---|
| Target | 1.1 |
| Herbie | 0.3 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied *-un-lft-identity1.3
Applied times-frac0.3
Applied associate-*l*0.3
rmApplied associate-*l/0.3
Final simplification0.3
herbie shell --seed 2020064
(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)))))