\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(\left(\sqrt[3]{\frac{1}{\sqrt[3]{3}}} \cdot \sqrt[3]{\frac{1}{\sqrt[3]{3}}}\right) \cdot \left(\sqrt[3]{\frac{1}{\sqrt[3]{3}}} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\right)\right)double f(double x, double y, double z, double t) {
double r923470 = 1.0;
double r923471 = 3.0;
double r923472 = r923470 / r923471;
double r923473 = x;
double r923474 = y;
double r923475 = 27.0;
double r923476 = r923474 * r923475;
double r923477 = r923473 / r923476;
double r923478 = r923471 * r923477;
double r923479 = z;
double r923480 = 2.0;
double r923481 = r923479 * r923480;
double r923482 = r923478 / r923481;
double r923483 = t;
double r923484 = sqrt(r923483);
double r923485 = r923482 * r923484;
double r923486 = acos(r923485);
double r923487 = r923472 * r923486;
return r923487;
}
double f(double x, double y, double z, double t) {
double r923488 = 1.0;
double r923489 = 3.0;
double r923490 = cbrt(r923489);
double r923491 = r923490 * r923490;
double r923492 = r923488 / r923491;
double r923493 = 1.0;
double r923494 = r923493 / r923490;
double r923495 = cbrt(r923494);
double r923496 = r923495 * r923495;
double r923497 = x;
double r923498 = y;
double r923499 = 27.0;
double r923500 = r923498 * r923499;
double r923501 = r923497 / r923500;
double r923502 = r923489 * r923501;
double r923503 = z;
double r923504 = 2.0;
double r923505 = r923503 * r923504;
double r923506 = r923502 / r923505;
double r923507 = t;
double r923508 = sqrt(r923507);
double r923509 = r923506 * r923508;
double r923510 = acos(r923509);
double r923511 = r923495 * r923510;
double r923512 = r923496 * r923511;
double r923513 = r923492 * r923512;
return r923513;
}




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.4 |
Initial program 1.4
rmApplied add-cube-cbrt1.4
Applied *-un-lft-identity1.4
Applied times-frac0.4
Applied associate-*l*0.4
rmApplied add-cube-cbrt1.4
Applied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2019362
(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)))))