\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 r738570 = 1.0;
double r738571 = 3.0;
double r738572 = r738570 / r738571;
double r738573 = x;
double r738574 = y;
double r738575 = 27.0;
double r738576 = r738574 * r738575;
double r738577 = r738573 / r738576;
double r738578 = r738571 * r738577;
double r738579 = z;
double r738580 = 2.0;
double r738581 = r738579 * r738580;
double r738582 = r738578 / r738581;
double r738583 = t;
double r738584 = sqrt(r738583);
double r738585 = r738582 * r738584;
double r738586 = acos(r738585);
double r738587 = r738572 * r738586;
return r738587;
}
double f(double x, double y, double z, double t) {
double r738588 = 1.0;
double r738589 = 3.0;
double r738590 = cbrt(r738589);
double r738591 = r738590 * r738590;
double r738592 = r738588 / r738591;
double r738593 = 1.0;
double r738594 = r738593 / r738590;
double r738595 = x;
double r738596 = r738589 * r738595;
double r738597 = z;
double r738598 = 2.0;
double r738599 = r738597 * r738598;
double r738600 = y;
double r738601 = 27.0;
double r738602 = r738600 * r738601;
double r738603 = r738599 * r738602;
double r738604 = r738596 / r738603;
double r738605 = t;
double r738606 = sqrt(r738605);
double r738607 = r738604 * r738606;
double r738608 = acos(r738607);
double r738609 = r738594 * r738608;
double r738610 = r738592 * r738609;
return r738610;
}




Bits error versus x




Bits error versus y




Bits error versus z




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