\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{\sqrt{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{1}}{\sqrt[3]{3}}double f(double x, double y, double z, double t) {
double r967667 = 1.0;
double r967668 = 3.0;
double r967669 = r967667 / r967668;
double r967670 = x;
double r967671 = y;
double r967672 = 27.0;
double r967673 = r967671 * r967672;
double r967674 = r967670 / r967673;
double r967675 = r967668 * r967674;
double r967676 = z;
double r967677 = 2.0;
double r967678 = r967676 * r967677;
double r967679 = r967675 / r967678;
double r967680 = t;
double r967681 = sqrt(r967680);
double r967682 = r967679 * r967681;
double r967683 = acos(r967682);
double r967684 = r967669 * r967683;
return r967684;
}
double f(double x, double y, double z, double t) {
double r967685 = 1.0;
double r967686 = sqrt(r967685);
double r967687 = 3.0;
double r967688 = cbrt(r967687);
double r967689 = r967688 * r967688;
double r967690 = r967686 / r967689;
double r967691 = 0.05555555555555555;
double r967692 = t;
double r967693 = sqrt(r967692);
double r967694 = x;
double r967695 = z;
double r967696 = y;
double r967697 = r967695 * r967696;
double r967698 = r967694 / r967697;
double r967699 = r967693 * r967698;
double r967700 = r967691 * r967699;
double r967701 = exp(r967700);
double r967702 = log(r967701);
double r967703 = acos(r967702);
double r967704 = r967703 * r967686;
double r967705 = r967704 / r967688;
double r967706 = r967690 * r967705;
return r967706;
}




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-sqr-sqrt1.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
(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)))))