\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(1 \cdot \frac{\cos^{-1} \left(0.05555555555555555247160270937456516548991 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)\right)}{\sqrt[3]{3}}\right)double f(double x, double y, double z, double t) {
double r474077 = 1.0;
double r474078 = 3.0;
double r474079 = r474077 / r474078;
double r474080 = x;
double r474081 = y;
double r474082 = 27.0;
double r474083 = r474081 * r474082;
double r474084 = r474080 / r474083;
double r474085 = r474078 * r474084;
double r474086 = z;
double r474087 = 2.0;
double r474088 = r474086 * r474087;
double r474089 = r474085 / r474088;
double r474090 = t;
double r474091 = sqrt(r474090);
double r474092 = r474089 * r474091;
double r474093 = acos(r474092);
double r474094 = r474079 * r474093;
return r474094;
}
double f(double x, double y, double z, double t) {
double r474095 = 1.0;
double r474096 = 3.0;
double r474097 = cbrt(r474096);
double r474098 = r474097 * r474097;
double r474099 = r474095 / r474098;
double r474100 = 1.0;
double r474101 = 0.05555555555555555;
double r474102 = t;
double r474103 = sqrt(r474102);
double r474104 = x;
double r474105 = z;
double r474106 = y;
double r474107 = r474105 * r474106;
double r474108 = r474104 / r474107;
double r474109 = r474103 * r474108;
double r474110 = r474101 * r474109;
double r474111 = acos(r474110);
double r474112 = r474111 / r474097;
double r474113 = r474100 * r474112;
double r474114 = r474099 * r474113;
return r474114;
}




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.2 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied *-un-lft-identity1.3
Applied times-frac0.4
Applied associate-*l*0.4
Taylor expanded around 0 0.2
Final simplification0.2
herbie shell --seed 2019325
(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)))))