\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]{3}}}}{\sqrt[3]{\sqrt[3]{3}}}\right)double f(double x, double y, double z, double t) {
double r740457 = 1.0;
double r740458 = 3.0;
double r740459 = r740457 / r740458;
double r740460 = x;
double r740461 = y;
double r740462 = 27.0;
double r740463 = r740461 * r740462;
double r740464 = r740460 / r740463;
double r740465 = r740458 * r740464;
double r740466 = z;
double r740467 = 2.0;
double r740468 = r740466 * r740467;
double r740469 = r740465 / r740468;
double r740470 = t;
double r740471 = sqrt(r740470);
double r740472 = r740469 * r740471;
double r740473 = acos(r740472);
double r740474 = r740459 * r740473;
return r740474;
}
double f(double x, double y, double z, double t) {
double r740475 = 1.0;
double r740476 = 3.0;
double r740477 = cbrt(r740476);
double r740478 = r740477 * r740477;
double r740479 = r740475 / r740478;
double r740480 = 1.0;
double r740481 = 0.05555555555555555;
double r740482 = t;
double r740483 = sqrt(r740482);
double r740484 = x;
double r740485 = z;
double r740486 = y;
double r740487 = r740485 * r740486;
double r740488 = r740484 / r740487;
double r740489 = r740483 * r740488;
double r740490 = r740481 * r740489;
double r740491 = acos(r740490);
double r740492 = cbrt(r740478);
double r740493 = r740491 / r740492;
double r740494 = cbrt(r740477);
double r740495 = r740493 / r740494;
double r740496 = r740480 * r740495;
double r740497 = r740479 * r740496;
return r740497;
}




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 cbrt-prod0.3
Applied associate-/r*0.3
Final simplification0.3
herbie shell --seed 2020039
(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)))))