\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 \frac{1 \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)}{\sqrt[3]{3}}double f(double x, double y, double z, double t) {
double r732521 = 1.0;
double r732522 = 3.0;
double r732523 = r732521 / r732522;
double r732524 = x;
double r732525 = y;
double r732526 = 27.0;
double r732527 = r732525 * r732526;
double r732528 = r732524 / r732527;
double r732529 = r732522 * r732528;
double r732530 = z;
double r732531 = 2.0;
double r732532 = r732530 * r732531;
double r732533 = r732529 / r732532;
double r732534 = t;
double r732535 = sqrt(r732534);
double r732536 = r732533 * r732535;
double r732537 = acos(r732536);
double r732538 = r732523 * r732537;
return r732538;
}
double f(double x, double y, double z, double t) {
double r732539 = 1.0;
double r732540 = 3.0;
double r732541 = cbrt(r732540);
double r732542 = r732541 * r732541;
double r732543 = r732539 / r732542;
double r732544 = 1.0;
double r732545 = x;
double r732546 = y;
double r732547 = 27.0;
double r732548 = r732546 * r732547;
double r732549 = r732545 / r732548;
double r732550 = r732540 * r732549;
double r732551 = z;
double r732552 = 2.0;
double r732553 = r732551 * r732552;
double r732554 = r732550 / r732553;
double r732555 = t;
double r732556 = sqrt(r732555);
double r732557 = r732554 * r732556;
double r732558 = acos(r732557);
double r732559 = r732544 * r732558;
double r732560 = r732559 / r732541;
double r732561 = r732543 * r732560;
return r732561;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.3 |
|---|---|
| Target | 1.1 |
| Herbie | 0.3 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied *-un-lft-identity1.3
Applied times-frac0.3
Applied associate-*l*0.3
rmApplied associate-*l/0.3
Final simplification0.3
herbie shell --seed 2020064 +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)))))