\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 \left(1 \cdot \frac{\cos^{-1} \left(\log \left(e^{0.05555555555555555247160270937456516548991 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)}\right)\right)}{\sqrt[3]{3}}\right)double f(double x, double y, double z, double t) {
double r488717 = 1.0;
double r488718 = 3.0;
double r488719 = r488717 / r488718;
double r488720 = x;
double r488721 = y;
double r488722 = 27.0;
double r488723 = r488721 * r488722;
double r488724 = r488720 / r488723;
double r488725 = r488718 * r488724;
double r488726 = z;
double r488727 = 2.0;
double r488728 = r488726 * r488727;
double r488729 = r488725 / r488728;
double r488730 = t;
double r488731 = sqrt(r488730);
double r488732 = r488729 * r488731;
double r488733 = acos(r488732);
double r488734 = r488719 * r488733;
return r488734;
}
double f(double x, double y, double z, double t) {
double r488735 = 1.0;
double r488736 = 3.0;
double r488737 = cbrt(r488736);
double r488738 = r488737 * r488737;
double r488739 = r488735 / r488738;
double r488740 = 1.0;
double r488741 = 0.05555555555555555;
double r488742 = t;
double r488743 = sqrt(r488742);
double r488744 = x;
double r488745 = z;
double r488746 = y;
double r488747 = r488745 * r488746;
double r488748 = r488744 / r488747;
double r488749 = r488743 * r488748;
double r488750 = r488741 * r488749;
double r488751 = exp(r488750);
double r488752 = log(r488751);
double r488753 = acos(r488752);
double r488754 = r488753 / r488737;
double r488755 = r488740 * r488754;
double r488756 = r488739 * r488755;
return r488756;
}




Bits error versus x




Bits error versus y




Bits error versus z




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