\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{{\left(\sqrt[3]{1}\right)}^{3} \cdot \frac{\cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)}{\sqrt[3]{3}}}{\sqrt[3]{3} \cdot \sqrt[3]{3}}double f(double x, double y, double z, double t) {
double r537991 = 1.0;
double r537992 = 3.0;
double r537993 = r537991 / r537992;
double r537994 = x;
double r537995 = y;
double r537996 = 27.0;
double r537997 = r537995 * r537996;
double r537998 = r537994 / r537997;
double r537999 = r537992 * r537998;
double r538000 = z;
double r538001 = 2.0;
double r538002 = r538000 * r538001;
double r538003 = r537999 / r538002;
double r538004 = t;
double r538005 = sqrt(r538004);
double r538006 = r538003 * r538005;
double r538007 = acos(r538006);
double r538008 = r537993 * r538007;
return r538008;
}
double f(double x, double y, double z, double t) {
double r538009 = 1.0;
double r538010 = cbrt(r538009);
double r538011 = 3.0;
double r538012 = pow(r538010, r538011);
double r538013 = 3.0;
double r538014 = x;
double r538015 = y;
double r538016 = 27.0;
double r538017 = r538015 * r538016;
double r538018 = r538014 / r538017;
double r538019 = r538013 * r538018;
double r538020 = z;
double r538021 = 2.0;
double r538022 = r538020 * r538021;
double r538023 = r538019 / r538022;
double r538024 = t;
double r538025 = sqrt(r538024);
double r538026 = r538023 * r538025;
double r538027 = acos(r538026);
double r538028 = cbrt(r538013);
double r538029 = r538027 / r538028;
double r538030 = r538012 * r538029;
double r538031 = r538028 * r538028;
double r538032 = r538030 / r538031;
return r538032;
}




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.4 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied add-cube-cbrt1.3
Applied times-frac0.4
Applied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2019294
(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)))))