\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{\cos^{-1} \left(0.05555555555555555247160270937456516548991 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)\right) \cdot 1}{3}double f(double x, double y, double z, double t) {
double r477195 = 1.0;
double r477196 = 3.0;
double r477197 = r477195 / r477196;
double r477198 = x;
double r477199 = y;
double r477200 = 27.0;
double r477201 = r477199 * r477200;
double r477202 = r477198 / r477201;
double r477203 = r477196 * r477202;
double r477204 = z;
double r477205 = 2.0;
double r477206 = r477204 * r477205;
double r477207 = r477203 / r477206;
double r477208 = t;
double r477209 = sqrt(r477208);
double r477210 = r477207 * r477209;
double r477211 = acos(r477210);
double r477212 = r477197 * r477211;
return r477212;
}
double f(double x, double y, double z, double t) {
double r477213 = 0.05555555555555555;
double r477214 = t;
double r477215 = sqrt(r477214);
double r477216 = x;
double r477217 = z;
double r477218 = y;
double r477219 = r477217 * r477218;
double r477220 = r477216 / r477219;
double r477221 = r477215 * r477220;
double r477222 = r477213 * r477221;
double r477223 = acos(r477222);
double r477224 = 1.0;
double r477225 = r477223 * r477224;
double r477226 = 3.0;
double r477227 = r477225 / r477226;
return r477227;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.3 |
|---|---|
| Target | 1.2 |
| Herbie | 1.2 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied *-un-lft-identity1.3
Applied times-frac0.3
Applied associate-*l*0.3
Taylor expanded around 0 0.3
Final simplification1.2
herbie shell --seed 1978988140
(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)))))