\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\frac{\sqrt{1}}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r438927 = 1.0;
double r438928 = 3.0;
double r438929 = r438927 / r438928;
double r438930 = x;
double r438931 = y;
double r438932 = 27.0;
double r438933 = r438931 * r438932;
double r438934 = r438930 / r438933;
double r438935 = r438928 * r438934;
double r438936 = z;
double r438937 = 2.0;
double r438938 = r438936 * r438937;
double r438939 = r438935 / r438938;
double r438940 = t;
double r438941 = sqrt(r438940);
double r438942 = r438939 * r438941;
double r438943 = acos(r438942);
double r438944 = r438929 * r438943;
return r438944;
}
double f(double x, double y, double z, double t) {
double r438945 = 1.0;
double r438946 = sqrt(r438945);
double r438947 = 3.0;
double r438948 = cbrt(r438947);
double r438949 = r438948 * r438948;
double r438950 = r438946 / r438949;
double r438951 = r438946 / r438948;
double r438952 = x;
double r438953 = y;
double r438954 = 27.0;
double r438955 = r438953 * r438954;
double r438956 = r438952 / r438955;
double r438957 = r438947 * r438956;
double r438958 = z;
double r438959 = 2.0;
double r438960 = r438958 * r438959;
double r438961 = r438957 / r438960;
double r438962 = t;
double r438963 = sqrt(r438962);
double r438964 = r438961 * r438963;
double r438965 = acos(r438964);
double r438966 = r438951 * r438965;
double r438967 = r438950 * r438966;
return r438967;
}




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 add-sqr-sqrt1.3
Applied times-frac0.3
Applied associate-*l*0.3
Final simplification0.3
herbie shell --seed 2019326 +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)))))