\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(0.05555555555555555247160270937456516548991 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)\right) \cdot \sqrt[3]{1}}{\sqrt[3]{3}}double f(double x, double y, double z, double t) {
double r633736 = 1.0;
double r633737 = 3.0;
double r633738 = r633736 / r633737;
double r633739 = x;
double r633740 = y;
double r633741 = 27.0;
double r633742 = r633740 * r633741;
double r633743 = r633739 / r633742;
double r633744 = r633737 * r633743;
double r633745 = z;
double r633746 = 2.0;
double r633747 = r633745 * r633746;
double r633748 = r633744 / r633747;
double r633749 = t;
double r633750 = sqrt(r633749);
double r633751 = r633748 * r633750;
double r633752 = acos(r633751);
double r633753 = r633738 * r633752;
return r633753;
}
double f(double x, double y, double z, double t) {
double r633754 = 1.0;
double r633755 = cbrt(r633754);
double r633756 = r633755 * r633755;
double r633757 = 3.0;
double r633758 = cbrt(r633757);
double r633759 = r633758 * r633758;
double r633760 = r633756 / r633759;
double r633761 = 0.05555555555555555;
double r633762 = t;
double r633763 = sqrt(r633762);
double r633764 = x;
double r633765 = z;
double r633766 = y;
double r633767 = r633765 * r633766;
double r633768 = r633764 / r633767;
double r633769 = r633763 * r633768;
double r633770 = r633761 * r633769;
double r633771 = acos(r633770);
double r633772 = r633771 * r633755;
double r633773 = r633772 / r633758;
double r633774 = r633760 * r633773;
return r633774;
}




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.2 |
Initial program 1.2
rmApplied add-cube-cbrt1.2
Applied add-cube-cbrt1.2
Applied times-frac0.3
Applied associate-*l*0.3
Taylor expanded around 0 0.2
Final simplification0.2
herbie shell --seed 2020001 +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)))))