\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\frac{\sqrt{1}}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r1476421 = 1.0;
double r1476422 = 3.0;
double r1476423 = r1476421 / r1476422;
double r1476424 = x;
double r1476425 = y;
double r1476426 = 27.0;
double r1476427 = r1476425 * r1476426;
double r1476428 = r1476424 / r1476427;
double r1476429 = r1476422 * r1476428;
double r1476430 = z;
double r1476431 = 2.0;
double r1476432 = r1476430 * r1476431;
double r1476433 = r1476429 / r1476432;
double r1476434 = t;
double r1476435 = sqrt(r1476434);
double r1476436 = r1476433 * r1476435;
double r1476437 = acos(r1476436);
double r1476438 = r1476423 * r1476437;
return r1476438;
}
double f(double x, double y, double z, double t) {
double r1476439 = 1.0;
double r1476440 = sqrt(r1476439);
double r1476441 = 3.0;
double r1476442 = cbrt(r1476441);
double r1476443 = r1476442 * r1476442;
double r1476444 = r1476440 / r1476443;
double r1476445 = r1476440 / r1476442;
double r1476446 = x;
double r1476447 = y;
double r1476448 = 27.0;
double r1476449 = r1476447 * r1476448;
double r1476450 = r1476446 / r1476449;
double r1476451 = r1476441 * r1476450;
double r1476452 = z;
double r1476453 = 2.0;
double r1476454 = r1476452 * r1476453;
double r1476455 = r1476451 / r1476454;
double r1476456 = t;
double r1476457 = sqrt(r1476456);
double r1476458 = r1476455 * r1476457;
double r1476459 = acos(r1476458);
double r1476460 = r1476445 * r1476459;
double r1476461 = r1476444 * r1476460;
return r1476461;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.2 |
|---|---|
| Target | 1.2 |
| Herbie | 0.3 |
Initial program 1.2
rmApplied add-cube-cbrt1.2
Applied add-sqr-sqrt1.2
Applied times-frac0.3
Applied associate-*l*0.3
Final simplification0.3
herbie shell --seed 2020034 +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)))))