\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 \left(\left(\sqrt{\frac{\sqrt[3]{1}}{\sqrt[3]{3}}} \cdot \sqrt{\cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)}\right) \cdot \left(\sqrt{\frac{\sqrt[3]{1}}{\sqrt[3]{3}}} \cdot \sqrt{\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 r736759 = 1.0;
double r736760 = 3.0;
double r736761 = r736759 / r736760;
double r736762 = x;
double r736763 = y;
double r736764 = 27.0;
double r736765 = r736763 * r736764;
double r736766 = r736762 / r736765;
double r736767 = r736760 * r736766;
double r736768 = z;
double r736769 = 2.0;
double r736770 = r736768 * r736769;
double r736771 = r736767 / r736770;
double r736772 = t;
double r736773 = sqrt(r736772);
double r736774 = r736771 * r736773;
double r736775 = acos(r736774);
double r736776 = r736761 * r736775;
return r736776;
}
double f(double x, double y, double z, double t) {
double r736777 = 1.0;
double r736778 = cbrt(r736777);
double r736779 = r736778 * r736778;
double r736780 = 3.0;
double r736781 = cbrt(r736780);
double r736782 = r736781 * r736781;
double r736783 = r736779 / r736782;
double r736784 = r736778 / r736781;
double r736785 = sqrt(r736784);
double r736786 = x;
double r736787 = y;
double r736788 = 27.0;
double r736789 = r736787 * r736788;
double r736790 = r736786 / r736789;
double r736791 = r736780 * r736790;
double r736792 = z;
double r736793 = 2.0;
double r736794 = r736792 * r736793;
double r736795 = r736791 / r736794;
double r736796 = t;
double r736797 = sqrt(r736796);
double r736798 = r736795 * r736797;
double r736799 = acos(r736798);
double r736800 = sqrt(r736799);
double r736801 = r736785 * r736800;
double r736802 = r736801 * r736801;
double r736803 = r736783 * r736802;
return r736803;
}




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.3 |
Initial program 1.2
rmApplied add-cube-cbrt1.2
Applied add-cube-cbrt1.2
Applied times-frac0.3
Applied associate-*l*0.3
rmApplied add-sqr-sqrt1.2
Applied add-sqr-sqrt0.3
Applied unswap-sqr0.3
Final simplification0.3
herbie shell --seed 2020018
(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)))))