\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{\frac{\cos^{-1} \left(0.055555555555555552 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)\right)}{\sqrt[3]{\sqrt[3]{3}} \cdot \sqrt[3]{\sqrt[3]{3}}}}{\sqrt[3]{\sqrt[3]{3}}}\right)double f(double x, double y, double z, double t) {
double r679262 = 1.0;
double r679263 = 3.0;
double r679264 = r679262 / r679263;
double r679265 = x;
double r679266 = y;
double r679267 = 27.0;
double r679268 = r679266 * r679267;
double r679269 = r679265 / r679268;
double r679270 = r679263 * r679269;
double r679271 = z;
double r679272 = 2.0;
double r679273 = r679271 * r679272;
double r679274 = r679270 / r679273;
double r679275 = t;
double r679276 = sqrt(r679275);
double r679277 = r679274 * r679276;
double r679278 = acos(r679277);
double r679279 = r679264 * r679278;
return r679279;
}
double f(double x, double y, double z, double t) {
double r679280 = 1.0;
double r679281 = 3.0;
double r679282 = cbrt(r679281);
double r679283 = r679282 * r679282;
double r679284 = r679280 / r679283;
double r679285 = 1.0;
double r679286 = 0.05555555555555555;
double r679287 = t;
double r679288 = sqrt(r679287);
double r679289 = x;
double r679290 = z;
double r679291 = y;
double r679292 = r679290 * r679291;
double r679293 = r679289 / r679292;
double r679294 = r679288 * r679293;
double r679295 = r679286 * r679294;
double r679296 = acos(r679295);
double r679297 = cbrt(r679282);
double r679298 = r679297 * r679297;
double r679299 = r679296 / r679298;
double r679300 = r679299 / r679297;
double r679301 = r679285 * r679300;
double r679302 = r679284 * r679301;
return r679302;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.4 |
|---|---|
| Target | 1.2 |
| Herbie | 0.3 |
Initial program 1.4
rmApplied add-cube-cbrt1.4
Applied *-un-lft-identity1.4
Applied times-frac0.5
Applied associate-*l*0.4
Taylor expanded around 0 0.3
rmApplied add-cube-cbrt0.3
Applied associate-/r*0.3
Final simplification0.3
herbie shell --seed 2020039 +o rules:numerics
(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)))))