\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 r516742 = 1.0;
double r516743 = 3.0;
double r516744 = r516742 / r516743;
double r516745 = x;
double r516746 = y;
double r516747 = 27.0;
double r516748 = r516746 * r516747;
double r516749 = r516745 / r516748;
double r516750 = r516743 * r516749;
double r516751 = z;
double r516752 = 2.0;
double r516753 = r516751 * r516752;
double r516754 = r516750 / r516753;
double r516755 = t;
double r516756 = sqrt(r516755);
double r516757 = r516754 * r516756;
double r516758 = acos(r516757);
double r516759 = r516744 * r516758;
return r516759;
}
double f(double x, double y, double z, double t) {
double r516760 = 1.0;
double r516761 = cbrt(r516760);
double r516762 = r516761 * r516761;
double r516763 = 3.0;
double r516764 = cbrt(r516763);
double r516765 = r516764 * r516764;
double r516766 = r516762 / r516765;
double r516767 = 0.05555555555555555;
double r516768 = t;
double r516769 = sqrt(r516768);
double r516770 = x;
double r516771 = z;
double r516772 = y;
double r516773 = r516771 * r516772;
double r516774 = r516770 / r516773;
double r516775 = r516769 * r516774;
double r516776 = r516767 * r516775;
double r516777 = acos(r516776);
double r516778 = r516777 * r516761;
double r516779 = r516778 / r516764;
double r516780 = r516766 * r516779;
return r516780;
}




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