\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 \frac{\frac{\cos^{-1} \left(0.055555555555555552 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)\right) \cdot \sqrt{1}}{\sqrt[3]{\sqrt[3]{3} \cdot \sqrt[3]{3}}}}{\sqrt[3]{\sqrt[3]{3}}}double code(double x, double y, double z, double t) {
return ((1.0 / 3.0) * acos((((3.0 * (x / (y * 27.0))) / (z * 2.0)) * sqrt(t))));
}
double code(double x, double y, double z, double t) {
return ((sqrt(1.0) / (cbrt(3.0) * cbrt(3.0))) * (((acos((0.05555555555555555 * (sqrt(t) * (x / (z * y))))) * sqrt(1.0)) / cbrt((cbrt(3.0) * cbrt(3.0)))) / cbrt(cbrt(3.0))));
}




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.2 |
Initial program 1.4
rmApplied add-cube-cbrt1.4
Applied add-sqr-sqrt1.4
Applied times-frac0.4
Applied associate-*l*0.4
Taylor expanded around 0 0.2
rmApplied add-cube-cbrt0.2
Applied cbrt-prod0.2
Applied associate-/r*0.2
Final simplification0.2
herbie shell --seed 2020057 +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)))))