\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{0.1111111111111111 \cdot \frac{\left|{t}^{\frac{1}{3}}\right| \cdot x}{y}}{z \cdot 2} \cdot \sqrt{\sqrt[3]{t}}\right)\right)double f(double x, double y, double z, double t) {
double r688588 = 1.0;
double r688589 = 3.0;
double r688590 = r688588 / r688589;
double r688591 = x;
double r688592 = y;
double r688593 = 27.0;
double r688594 = r688592 * r688593;
double r688595 = r688591 / r688594;
double r688596 = r688589 * r688595;
double r688597 = z;
double r688598 = 2.0;
double r688599 = r688597 * r688598;
double r688600 = r688596 / r688599;
double r688601 = t;
double r688602 = sqrt(r688601);
double r688603 = r688600 * r688602;
double r688604 = acos(r688603);
double r688605 = r688590 * r688604;
return r688605;
}
double f(double x, double y, double z, double t) {
double r688606 = 1.0;
double r688607 = 3.0;
double r688608 = cbrt(r688607);
double r688609 = r688608 * r688608;
double r688610 = r688606 / r688609;
double r688611 = 1.0;
double r688612 = r688611 / r688608;
double r688613 = 0.1111111111111111;
double r688614 = t;
double r688615 = 0.3333333333333333;
double r688616 = pow(r688614, r688615);
double r688617 = fabs(r688616);
double r688618 = x;
double r688619 = r688617 * r688618;
double r688620 = y;
double r688621 = r688619 / r688620;
double r688622 = r688613 * r688621;
double r688623 = z;
double r688624 = 2.0;
double r688625 = r688623 * r688624;
double r688626 = r688622 / r688625;
double r688627 = cbrt(r688614);
double r688628 = sqrt(r688627);
double r688629 = r688626 * r688628;
double r688630 = acos(r688629);
double r688631 = r688612 * r688630;
double r688632 = r688610 * r688631;
return r688632;
}




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.4 |
Initial program 1.2
rmApplied add-cube-cbrt1.2
Applied *-un-lft-identity1.2
Applied times-frac0.3
Applied associate-*l*0.3
rmApplied add-cube-cbrt0.3
Applied sqrt-prod0.3
Applied associate-*r*0.3
Simplified0.3
Taylor expanded around 0 0.4
Final simplification0.4
herbie shell --seed 2020100 +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)))))