\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\cos^{-1} \left(\log \left(e^{\frac{2001599834386887}{36028797018963968} \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)}\right)\right) \cdot \frac{1}{3}double f(double x, double y, double z, double t) {
double r436140 = 1.0;
double r436141 = 3.0;
double r436142 = r436140 / r436141;
double r436143 = x;
double r436144 = y;
double r436145 = 27.0;
double r436146 = r436144 * r436145;
double r436147 = r436143 / r436146;
double r436148 = r436141 * r436147;
double r436149 = z;
double r436150 = 2.0;
double r436151 = r436149 * r436150;
double r436152 = r436148 / r436151;
double r436153 = t;
double r436154 = sqrt(r436153);
double r436155 = r436152 * r436154;
double r436156 = acos(r436155);
double r436157 = r436142 * r436156;
return r436157;
}
double f(double x, double y, double z, double t) {
double r436158 = 2001599834386887.0;
double r436159 = 3.602879701896397e+16;
double r436160 = r436158 / r436159;
double r436161 = t;
double r436162 = sqrt(r436161);
double r436163 = x;
double r436164 = z;
double r436165 = y;
double r436166 = r436164 * r436165;
double r436167 = r436163 / r436166;
double r436168 = r436162 * r436167;
double r436169 = r436160 * r436168;
double r436170 = exp(r436169);
double r436171 = log(r436170);
double r436172 = acos(r436171);
double r436173 = 1.0;
double r436174 = 3.0;
double r436175 = r436173 / r436174;
double r436176 = r436172 * r436175;
return r436176;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.2 |
|---|---|
| Target | 1.2 |
| Herbie | 1.2 |
Initial program 1.2
rmApplied add-cube-cbrt1.2
Applied add-sqr-sqrt1.2
Applied times-frac0.3
Applied associate-*l*0.3
Taylor expanded around 0 0.2
Simplified0.2
rmApplied add-log-exp0.2
Final simplification1.2
herbie shell --seed 2019304
(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)))))