\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.055555555555555552 \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 r727693 = 1.0;
double r727694 = 3.0;
double r727695 = r727693 / r727694;
double r727696 = x;
double r727697 = y;
double r727698 = 27.0;
double r727699 = r727697 * r727698;
double r727700 = r727696 / r727699;
double r727701 = r727694 * r727700;
double r727702 = z;
double r727703 = 2.0;
double r727704 = r727702 * r727703;
double r727705 = r727701 / r727704;
double r727706 = t;
double r727707 = sqrt(r727706);
double r727708 = r727705 * r727707;
double r727709 = acos(r727708);
double r727710 = r727695 * r727709;
return r727710;
}
double f(double x, double y, double z, double t) {
double r727711 = 1.0;
double r727712 = cbrt(r727711);
double r727713 = r727712 * r727712;
double r727714 = 3.0;
double r727715 = cbrt(r727714);
double r727716 = r727715 * r727715;
double r727717 = r727713 / r727716;
double r727718 = 0.05555555555555555;
double r727719 = t;
double r727720 = sqrt(r727719);
double r727721 = x;
double r727722 = z;
double r727723 = y;
double r727724 = r727722 * r727723;
double r727725 = r727721 / r727724;
double r727726 = r727720 * r727725;
double r727727 = r727718 * r727726;
double r727728 = exp(r727727);
double r727729 = log(r727728);
double r727730 = acos(r727729);
double r727731 = r727730 * r727712;
double r727732 = r727731 / r727715;
double r727733 = r727717 * r727732;
return r727733;
}




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.3
rmApplied add-log-exp0.2
Final simplification0.2
herbie shell --seed 2020081 +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)))))