\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{\frac{1}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)}{\sqrt[3]{3} \cdot \sqrt[3]{3}}double f(double x, double y, double z, double t) {
double r496723 = 1.0;
double r496724 = 3.0;
double r496725 = r496723 / r496724;
double r496726 = x;
double r496727 = y;
double r496728 = 27.0;
double r496729 = r496727 * r496728;
double r496730 = r496726 / r496729;
double r496731 = r496724 * r496730;
double r496732 = z;
double r496733 = 2.0;
double r496734 = r496732 * r496733;
double r496735 = r496731 / r496734;
double r496736 = t;
double r496737 = sqrt(r496736);
double r496738 = r496735 * r496737;
double r496739 = acos(r496738);
double r496740 = r496725 * r496739;
return r496740;
}
double f(double x, double y, double z, double t) {
double r496741 = 1.0;
double r496742 = 3.0;
double r496743 = cbrt(r496742);
double r496744 = r496741 / r496743;
double r496745 = x;
double r496746 = y;
double r496747 = 27.0;
double r496748 = r496746 * r496747;
double r496749 = r496745 / r496748;
double r496750 = r496742 * r496749;
double r496751 = z;
double r496752 = 2.0;
double r496753 = r496751 * r496752;
double r496754 = r496750 / r496753;
double r496755 = t;
double r496756 = sqrt(r496755);
double r496757 = r496754 * r496756;
double r496758 = acos(r496757);
double r496759 = r496744 * r496758;
double r496760 = r496743 * r496743;
double r496761 = r496759 / r496760;
return r496761;
}




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 *-un-lft-identity1.2
Applied times-frac0.3
Applied associate-*l*0.3
Final simplification0.3
herbie shell --seed 2019298
(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)))))