\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(\frac{1}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\frac{3 \cdot x}{\left(z \cdot 2\right) \cdot \left(y \cdot 27\right)} \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r1266486 = 1.0;
double r1266487 = 3.0;
double r1266488 = r1266486 / r1266487;
double r1266489 = x;
double r1266490 = y;
double r1266491 = 27.0;
double r1266492 = r1266490 * r1266491;
double r1266493 = r1266489 / r1266492;
double r1266494 = r1266487 * r1266493;
double r1266495 = z;
double r1266496 = 2.0;
double r1266497 = r1266495 * r1266496;
double r1266498 = r1266494 / r1266497;
double r1266499 = t;
double r1266500 = sqrt(r1266499);
double r1266501 = r1266498 * r1266500;
double r1266502 = acos(r1266501);
double r1266503 = r1266488 * r1266502;
return r1266503;
}
double f(double x, double y, double z, double t) {
double r1266504 = 1.0;
double r1266505 = 3.0;
double r1266506 = cbrt(r1266505);
double r1266507 = r1266506 * r1266506;
double r1266508 = r1266504 / r1266507;
double r1266509 = 1.0;
double r1266510 = r1266509 / r1266506;
double r1266511 = x;
double r1266512 = r1266505 * r1266511;
double r1266513 = z;
double r1266514 = 2.0;
double r1266515 = r1266513 * r1266514;
double r1266516 = y;
double r1266517 = 27.0;
double r1266518 = r1266516 * r1266517;
double r1266519 = r1266515 * r1266518;
double r1266520 = r1266512 / r1266519;
double r1266521 = t;
double r1266522 = sqrt(r1266521);
double r1266523 = r1266520 * r1266522;
double r1266524 = acos(r1266523);
double r1266525 = r1266510 * r1266524;
double r1266526 = r1266508 * r1266525;
return r1266526;
}




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 associate-*r/1.4
Applied associate-/l/1.3
rmApplied add-cube-cbrt1.3
Applied *-un-lft-identity1.3
Applied times-frac0.3
Applied associate-*l*0.3
Final simplification0.3
herbie shell --seed 2019199
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, D"
:herbie-target
(/ (acos (* (/ (/ x 27.0) (* y z)) (/ (sqrt t) (/ 2.0 3.0)))) 3.0)
(* (/ 1.0 3.0) (acos (* (/ (* 3.0 (/ x (* y 27.0))) (* z 2.0)) (sqrt t)))))