\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\left(\frac{\cos^{-1} \left(\left(\frac{x}{y \cdot z} \cdot \sqrt{t}\right) \cdot 0.05555555555555555247160270937456516548991\right)}{\sqrt[3]{3}} \cdot 1\right) \cdot \frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}}double f(double x, double y, double z, double t) {
double r19412696 = 1.0;
double r19412697 = 3.0;
double r19412698 = r19412696 / r19412697;
double r19412699 = x;
double r19412700 = y;
double r19412701 = 27.0;
double r19412702 = r19412700 * r19412701;
double r19412703 = r19412699 / r19412702;
double r19412704 = r19412697 * r19412703;
double r19412705 = z;
double r19412706 = 2.0;
double r19412707 = r19412705 * r19412706;
double r19412708 = r19412704 / r19412707;
double r19412709 = t;
double r19412710 = sqrt(r19412709);
double r19412711 = r19412708 * r19412710;
double r19412712 = acos(r19412711);
double r19412713 = r19412698 * r19412712;
return r19412713;
}
double f(double x, double y, double z, double t) {
double r19412714 = x;
double r19412715 = y;
double r19412716 = z;
double r19412717 = r19412715 * r19412716;
double r19412718 = r19412714 / r19412717;
double r19412719 = t;
double r19412720 = sqrt(r19412719);
double r19412721 = r19412718 * r19412720;
double r19412722 = 0.05555555555555555;
double r19412723 = r19412721 * r19412722;
double r19412724 = acos(r19412723);
double r19412725 = 3.0;
double r19412726 = cbrt(r19412725);
double r19412727 = r19412724 / r19412726;
double r19412728 = 1.0;
double r19412729 = r19412727 * r19412728;
double r19412730 = 1.0;
double r19412731 = r19412726 * r19412726;
double r19412732 = r19412730 / r19412731;
double r19412733 = r19412729 * r19412732;
return r19412733;
}




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 add-cube-cbrt1.4
Applied *-un-lft-identity1.4
Applied times-frac0.4
Applied associate-*l*0.4
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2019200 +o rules:numerics
(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)))))