\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\frac{\sqrt[3]{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 r461459 = 1.0;
double r461460 = 3.0;
double r461461 = r461459 / r461460;
double r461462 = x;
double r461463 = y;
double r461464 = 27.0;
double r461465 = r461463 * r461464;
double r461466 = r461462 / r461465;
double r461467 = r461460 * r461466;
double r461468 = z;
double r461469 = 2.0;
double r461470 = r461468 * r461469;
double r461471 = r461467 / r461470;
double r461472 = t;
double r461473 = sqrt(r461472);
double r461474 = r461471 * r461473;
double r461475 = acos(r461474);
double r461476 = r461461 * r461475;
return r461476;
}
double f(double x, double y, double z, double t) {
double r461477 = 1.0;
double r461478 = cbrt(r461477);
double r461479 = r461478 * r461478;
double r461480 = 3.0;
double r461481 = cbrt(r461480);
double r461482 = r461481 * r461481;
double r461483 = r461479 / r461482;
double r461484 = r461478 / r461481;
double r461485 = x;
double r461486 = y;
double r461487 = 27.0;
double r461488 = r461486 * r461487;
double r461489 = r461485 / r461488;
double r461490 = r461480 * r461489;
double r461491 = z;
double r461492 = 2.0;
double r461493 = r461491 * r461492;
double r461494 = r461490 / r461493;
double r461495 = t;
double r461496 = sqrt(r461495);
double r461497 = r461494 * r461496;
double r461498 = acos(r461497);
double r461499 = r461484 * r461498;
double r461500 = r461483 * r461499;
return r461500;
}




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.5 |
Initial program 1.4
rmApplied add-cube-cbrt1.4
Applied add-cube-cbrt1.4
Applied times-frac0.5
Applied associate-*l*0.5
Final simplification0.5
herbie shell --seed 2019212 +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)))))