\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(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r805747 = 1.0;
double r805748 = 3.0;
double r805749 = r805747 / r805748;
double r805750 = x;
double r805751 = y;
double r805752 = 27.0;
double r805753 = r805751 * r805752;
double r805754 = r805750 / r805753;
double r805755 = r805748 * r805754;
double r805756 = z;
double r805757 = 2.0;
double r805758 = r805756 * r805757;
double r805759 = r805755 / r805758;
double r805760 = t;
double r805761 = sqrt(r805760);
double r805762 = r805759 * r805761;
double r805763 = acos(r805762);
double r805764 = r805749 * r805763;
return r805764;
}
double f(double x, double y, double z, double t) {
double r805765 = 1.0;
double r805766 = sqrt(r805765);
double r805767 = 3.0;
double r805768 = cbrt(r805767);
double r805769 = r805768 * r805768;
double r805770 = r805766 / r805769;
double r805771 = r805766 / r805768;
double r805772 = x;
double r805773 = y;
double r805774 = 27.0;
double r805775 = r805773 * r805774;
double r805776 = r805772 / r805775;
double r805777 = r805767 * r805776;
double r805778 = z;
double r805779 = 2.0;
double r805780 = r805778 * r805779;
double r805781 = r805777 / r805780;
double r805782 = t;
double r805783 = sqrt(r805782);
double r805784 = r805781 * r805783;
double r805785 = acos(r805784);
double r805786 = r805771 * r805785;
double r805787 = r805770 * r805786;
return r805787;
}




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-sqr-sqrt1.2
Applied times-frac0.3
Applied associate-*l*0.3
Final simplification0.3
herbie shell --seed 2020034
(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)))))