\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 \left(\sqrt{\frac{\sqrt{1}}{\sqrt[3]{3}}} \cdot \left(\sqrt{\frac{\sqrt{1}}{\sqrt[3]{3}}} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\right)\right)double f(double x, double y, double z, double t) {
double r493736 = 1.0;
double r493737 = 3.0;
double r493738 = r493736 / r493737;
double r493739 = x;
double r493740 = y;
double r493741 = 27.0;
double r493742 = r493740 * r493741;
double r493743 = r493739 / r493742;
double r493744 = r493737 * r493743;
double r493745 = z;
double r493746 = 2.0;
double r493747 = r493745 * r493746;
double r493748 = r493744 / r493747;
double r493749 = t;
double r493750 = sqrt(r493749);
double r493751 = r493748 * r493750;
double r493752 = acos(r493751);
double r493753 = r493738 * r493752;
return r493753;
}
double f(double x, double y, double z, double t) {
double r493754 = 1.0;
double r493755 = sqrt(r493754);
double r493756 = 3.0;
double r493757 = cbrt(r493756);
double r493758 = r493757 * r493757;
double r493759 = r493755 / r493758;
double r493760 = r493755 / r493757;
double r493761 = sqrt(r493760);
double r493762 = x;
double r493763 = y;
double r493764 = 27.0;
double r493765 = r493763 * r493764;
double r493766 = r493762 / r493765;
double r493767 = r493756 * r493766;
double r493768 = z;
double r493769 = 2.0;
double r493770 = r493768 * r493769;
double r493771 = r493767 / r493770;
double r493772 = t;
double r493773 = sqrt(r493772);
double r493774 = r493771 * r493773;
double r493775 = acos(r493774);
double r493776 = r493761 * r493775;
double r493777 = r493761 * r493776;
double r493778 = r493759 * r493777;
return r493778;
}




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.5 |
Initial program 1.4
rmApplied add-cube-cbrt1.4
Applied add-sqr-sqrt1.4
Applied times-frac0.5
Applied associate-*l*0.4
rmApplied add-sqr-sqrt1.4
Applied associate-*l*0.5
Final simplification0.5
herbie shell --seed 2019323 +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)))))