\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.055555555555555552 \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 r752050 = 1.0;
double r752051 = 3.0;
double r752052 = r752050 / r752051;
double r752053 = x;
double r752054 = y;
double r752055 = 27.0;
double r752056 = r752054 * r752055;
double r752057 = r752053 / r752056;
double r752058 = r752051 * r752057;
double r752059 = z;
double r752060 = 2.0;
double r752061 = r752059 * r752060;
double r752062 = r752058 / r752061;
double r752063 = t;
double r752064 = sqrt(r752063);
double r752065 = r752062 * r752064;
double r752066 = acos(r752065);
double r752067 = r752052 * r752066;
return r752067;
}
double f(double x, double y, double z, double t) {
double r752068 = 1.0;
double r752069 = 3.0;
double r752070 = cbrt(r752069);
double r752071 = r752070 * r752070;
double r752072 = r752068 / r752071;
double r752073 = 1.0;
double r752074 = 0.05555555555555555;
double r752075 = t;
double r752076 = sqrt(r752075);
double r752077 = x;
double r752078 = z;
double r752079 = y;
double r752080 = r752078 * r752079;
double r752081 = r752077 / r752080;
double r752082 = r752076 * r752081;
double r752083 = r752074 * r752082;
double r752084 = acos(r752083);
double r752085 = r752084 / r752070;
double r752086 = r752073 * r752085;
double r752087 = r752072 * r752086;
return r752087;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.3 |
|---|---|
| Target | 1.1 |
| Herbie | 0.2 |
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.2
Final simplification0.2
herbie shell --seed 2020056 +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)))))