\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\frac{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 r131564700 = 1.0;
double r131564701 = 3.0;
double r131564702 = r131564700 / r131564701;
double r131564703 = x;
double r131564704 = y;
double r131564705 = 27.0;
double r131564706 = r131564704 * r131564705;
double r131564707 = r131564703 / r131564706;
double r131564708 = r131564701 * r131564707;
double r131564709 = z;
double r131564710 = 2.0;
double r131564711 = r131564709 * r131564710;
double r131564712 = r131564708 / r131564711;
double r131564713 = t;
double r131564714 = sqrt(r131564713);
double r131564715 = r131564712 * r131564714;
double r131564716 = acos(r131564715);
double r131564717 = r131564702 * r131564716;
return r131564717;
}
double f(double x, double y, double z, double t) {
double r131564718 = 1.0;
double r131564719 = 3.0;
double r131564720 = cbrt(r131564719);
double r131564721 = r131564720 * r131564720;
double r131564722 = r131564718 / r131564721;
double r131564723 = 1.0;
double r131564724 = r131564723 / r131564720;
double r131564725 = x;
double r131564726 = y;
double r131564727 = 27.0;
double r131564728 = r131564726 * r131564727;
double r131564729 = r131564725 / r131564728;
double r131564730 = r131564719 * r131564729;
double r131564731 = z;
double r131564732 = 2.0;
double r131564733 = r131564731 * r131564732;
double r131564734 = r131564730 / r131564733;
double r131564735 = t;
double r131564736 = sqrt(r131564735);
double r131564737 = r131564734 * r131564736;
double r131564738 = acos(r131564737);
double r131564739 = r131564724 * r131564738;
double r131564740 = r131564722 * r131564739;
return r131564740;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.3 |
|---|---|
| Target | 1.3 |
| Herbie | 0.4 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied *-un-lft-identity1.3
Applied times-frac0.4
Applied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2019173
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, D"
:herbie-target
(/ (acos (* (/ (/ x 27.0) (* y z)) (/ (sqrt t) (/ 2.0 3.0)))) 3.0)
(* (/ 1.0 3.0) (acos (* (/ (* 3.0 (/ x (* y 27.0))) (* z 2.0)) (sqrt t)))))