\frac{1.0}{3.0} \cdot \cos^{-1} \left(\frac{3.0 \cdot \frac{x}{y \cdot 27.0}}{z \cdot 2.0} \cdot \sqrt{t}\right)\frac{1}{\sqrt[3]{3.0} \cdot \sqrt[3]{3.0}} \cdot \left(1.0 \cdot \frac{\cos^{-1} \left(\frac{\left(0.05555555555555555 \cdot \sqrt{t}\right) \cdot \frac{x}{z}}{y}\right)}{\sqrt[3]{3.0}}\right)double f(double x, double y, double z, double t) {
double r36252987 = 1.0;
double r36252988 = 3.0;
double r36252989 = r36252987 / r36252988;
double r36252990 = x;
double r36252991 = y;
double r36252992 = 27.0;
double r36252993 = r36252991 * r36252992;
double r36252994 = r36252990 / r36252993;
double r36252995 = r36252988 * r36252994;
double r36252996 = z;
double r36252997 = 2.0;
double r36252998 = r36252996 * r36252997;
double r36252999 = r36252995 / r36252998;
double r36253000 = t;
double r36253001 = sqrt(r36253000);
double r36253002 = r36252999 * r36253001;
double r36253003 = acos(r36253002);
double r36253004 = r36252989 * r36253003;
return r36253004;
}
double f(double x, double y, double z, double t) {
double r36253005 = 1.0;
double r36253006 = 3.0;
double r36253007 = cbrt(r36253006);
double r36253008 = r36253007 * r36253007;
double r36253009 = r36253005 / r36253008;
double r36253010 = 1.0;
double r36253011 = 0.05555555555555555;
double r36253012 = t;
double r36253013 = sqrt(r36253012);
double r36253014 = r36253011 * r36253013;
double r36253015 = x;
double r36253016 = z;
double r36253017 = r36253015 / r36253016;
double r36253018 = r36253014 * r36253017;
double r36253019 = y;
double r36253020 = r36253018 / r36253019;
double r36253021 = acos(r36253020);
double r36253022 = r36253021 / r36253007;
double r36253023 = r36253010 * r36253022;
double r36253024 = r36253009 * r36253023;
return r36253024;
}




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.3 |
Initial program 1.4
rmApplied add-cube-cbrt1.4
Applied *-un-lft-identity1.4
Applied times-frac0.4
Applied associate-*l*0.4
Taylor expanded around 0 0.2
rmApplied div-inv0.2
Applied associate-*l*0.2
Simplified0.3
Final simplification0.3
herbie shell --seed 2019164
(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)))))