\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{\cos^{-1} \left(0.05555555555555555247160270937456516548991 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)\right)}{\sqrt[3]{3}}\right)double f(double x, double y, double z, double t) {
double r570642 = 1.0;
double r570643 = 3.0;
double r570644 = r570642 / r570643;
double r570645 = x;
double r570646 = y;
double r570647 = 27.0;
double r570648 = r570646 * r570647;
double r570649 = r570645 / r570648;
double r570650 = r570643 * r570649;
double r570651 = z;
double r570652 = 2.0;
double r570653 = r570651 * r570652;
double r570654 = r570650 / r570653;
double r570655 = t;
double r570656 = sqrt(r570655);
double r570657 = r570654 * r570656;
double r570658 = acos(r570657);
double r570659 = r570644 * r570658;
return r570659;
}
double f(double x, double y, double z, double t) {
double r570660 = 1.0;
double r570661 = 3.0;
double r570662 = cbrt(r570661);
double r570663 = r570662 * r570662;
double r570664 = r570660 / r570663;
double r570665 = 1.0;
double r570666 = 0.05555555555555555;
double r570667 = t;
double r570668 = sqrt(r570667);
double r570669 = x;
double r570670 = z;
double r570671 = y;
double r570672 = r570670 * r570671;
double r570673 = r570669 / r570672;
double r570674 = r570668 * r570673;
double r570675 = r570666 * r570674;
double r570676 = acos(r570675);
double r570677 = r570676 / r570662;
double r570678 = r570665 * r570677;
double r570679 = r570664 * r570678;
return r570679;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.3 |
|---|---|
| Target | 1.2 |
| Herbie | 0.3 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied *-un-lft-identity1.3
Applied times-frac0.4
Applied associate-*l*0.4
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2019208
(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)))))