\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{1 \cdot \cos^{-1} \left(\log \left(e^{\frac{\frac{x}{y \cdot 27} \cdot 3}{2 \cdot z} \cdot \sqrt{t}}\right)\right)}{\sqrt[3]{3}} \cdot \frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}}double f(double x, double y, double z, double t) {
double r35138874 = 1.0;
double r35138875 = 3.0;
double r35138876 = r35138874 / r35138875;
double r35138877 = x;
double r35138878 = y;
double r35138879 = 27.0;
double r35138880 = r35138878 * r35138879;
double r35138881 = r35138877 / r35138880;
double r35138882 = r35138875 * r35138881;
double r35138883 = z;
double r35138884 = 2.0;
double r35138885 = r35138883 * r35138884;
double r35138886 = r35138882 / r35138885;
double r35138887 = t;
double r35138888 = sqrt(r35138887);
double r35138889 = r35138886 * r35138888;
double r35138890 = acos(r35138889);
double r35138891 = r35138876 * r35138890;
return r35138891;
}
double f(double x, double y, double z, double t) {
double r35138892 = 1.0;
double r35138893 = x;
double r35138894 = y;
double r35138895 = 27.0;
double r35138896 = r35138894 * r35138895;
double r35138897 = r35138893 / r35138896;
double r35138898 = 3.0;
double r35138899 = r35138897 * r35138898;
double r35138900 = 2.0;
double r35138901 = z;
double r35138902 = r35138900 * r35138901;
double r35138903 = r35138899 / r35138902;
double r35138904 = t;
double r35138905 = sqrt(r35138904);
double r35138906 = r35138903 * r35138905;
double r35138907 = exp(r35138906);
double r35138908 = log(r35138907);
double r35138909 = acos(r35138908);
double r35138910 = r35138892 * r35138909;
double r35138911 = cbrt(r35138898);
double r35138912 = r35138910 / r35138911;
double r35138913 = 1.0;
double r35138914 = r35138911 * r35138911;
double r35138915 = r35138913 / r35138914;
double r35138916 = r35138912 * r35138915;
return r35138916;
}




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 *-un-lft-identity1.3
Applied times-frac0.3
Applied associate-*l*0.3
rmApplied associate-*l/0.3
rmApplied add-log-exp0.3
Final simplification0.3
herbie shell --seed 2019172
(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)))))