\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(\frac{\sqrt{1}}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\left(0.055555555555555552 \cdot \frac{x}{z \cdot y}\right) \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r599742 = 1.0;
double r599743 = 3.0;
double r599744 = r599742 / r599743;
double r599745 = x;
double r599746 = y;
double r599747 = 27.0;
double r599748 = r599746 * r599747;
double r599749 = r599745 / r599748;
double r599750 = r599743 * r599749;
double r599751 = z;
double r599752 = 2.0;
double r599753 = r599751 * r599752;
double r599754 = r599750 / r599753;
double r599755 = t;
double r599756 = sqrt(r599755);
double r599757 = r599754 * r599756;
double r599758 = acos(r599757);
double r599759 = r599744 * r599758;
return r599759;
}
double f(double x, double y, double z, double t) {
double r599760 = 1.0;
double r599761 = sqrt(r599760);
double r599762 = 3.0;
double r599763 = cbrt(r599762);
double r599764 = r599763 * r599763;
double r599765 = r599761 / r599764;
double r599766 = r599761 / r599763;
double r599767 = 0.05555555555555555;
double r599768 = x;
double r599769 = z;
double r599770 = y;
double r599771 = r599769 * r599770;
double r599772 = r599768 / r599771;
double r599773 = r599767 * r599772;
double r599774 = t;
double r599775 = sqrt(r599774);
double r599776 = r599773 * r599775;
double r599777 = acos(r599776);
double r599778 = r599766 * r599777;
double r599779 = r599765 * r599778;
return r599779;
}




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-sqr-sqrt1.3
Applied times-frac0.4
Applied associate-*l*0.3
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2020046
(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)))))