\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 \frac{\cos^{-1} \left(\log \left(e^{0.05555555555555555247160270937456516548991 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)}\right)\right) \cdot \sqrt[3]{1}}{\sqrt[3]{3}}double f(double x, double y, double z, double t) {
double r809662 = 1.0;
double r809663 = 3.0;
double r809664 = r809662 / r809663;
double r809665 = x;
double r809666 = y;
double r809667 = 27.0;
double r809668 = r809666 * r809667;
double r809669 = r809665 / r809668;
double r809670 = r809663 * r809669;
double r809671 = z;
double r809672 = 2.0;
double r809673 = r809671 * r809672;
double r809674 = r809670 / r809673;
double r809675 = t;
double r809676 = sqrt(r809675);
double r809677 = r809674 * r809676;
double r809678 = acos(r809677);
double r809679 = r809664 * r809678;
return r809679;
}
double f(double x, double y, double z, double t) {
double r809680 = 1.0;
double r809681 = cbrt(r809680);
double r809682 = r809681 * r809681;
double r809683 = 3.0;
double r809684 = cbrt(r809683);
double r809685 = r809684 * r809684;
double r809686 = r809682 / r809685;
double r809687 = 0.05555555555555555;
double r809688 = t;
double r809689 = sqrt(r809688);
double r809690 = x;
double r809691 = z;
double r809692 = y;
double r809693 = r809691 * r809692;
double r809694 = r809690 / r809693;
double r809695 = r809689 * r809694;
double r809696 = r809687 * r809695;
double r809697 = exp(r809696);
double r809698 = log(r809697);
double r809699 = acos(r809698);
double r809700 = r809699 * r809681;
double r809701 = r809700 / r809684;
double r809702 = r809686 * r809701;
return r809702;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.3 |
|---|---|
| Target | 1.2 |
| Herbie | 0.2 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied add-cube-cbrt1.3
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 2019353 +o rules:numerics
(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)))))