\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\sqrt[3]{{\left(\sqrt[3]{{\left(\sqrt[3]{\cos^{-1} \left(4 \cdot \left({v}^{4} + v \cdot v\right) + -1\right)} \cdot \sqrt[3]{\cos^{-1} \left(4 \cdot \left({v}^{4} + v \cdot v\right) + -1\right)}\right)}^{3}}\right)}^{3} \cdot {\left(\sqrt[3]{{\left(\sqrt[3]{\cos^{-1} \left(4 \cdot \left({v}^{4} + v \cdot v\right) + -1\right)}\right)}^{3}}\right)}^{3}}(FPCore (v) :precision binary64 (acos (/ (- 1.0 (* 5.0 (* v v))) (- (* v v) 1.0))))
(FPCore (v)
:precision binary64
(cbrt
(*
(pow
(cbrt
(pow
(*
(cbrt (acos (+ (* 4.0 (+ (pow v 4.0) (* v v))) -1.0)))
(cbrt (acos (+ (* 4.0 (+ (pow v 4.0) (* v v))) -1.0))))
3.0))
3.0)
(pow
(cbrt (pow (cbrt (acos (+ (* 4.0 (+ (pow v 4.0) (* v v))) -1.0))) 3.0))
3.0))))double code(double v) {
return acos((1.0 - (5.0 * (v * v))) / ((v * v) - 1.0));
}
double code(double v) {
return cbrt(pow(cbrt(pow((cbrt(acos((4.0 * (pow(v, 4.0) + (v * v))) + -1.0)) * cbrt(acos((4.0 * (pow(v, 4.0) + (v * v))) + -1.0))), 3.0)), 3.0) * pow(cbrt(pow(cbrt(acos((4.0 * (pow(v, 4.0) + (v * v))) + -1.0)), 3.0)), 3.0));
}



Bits error versus v
Results
Initial program 0.6
Taylor expanded around 0 0.7
Simplified0.7
rmApplied add-cbrt-cube_binary64_14781.7
Simplified1.7
rmApplied add-cbrt-cube_binary64_14781.7
Simplified1.7
rmApplied add-cube-cbrt_binary64_14772.2
Applied unpow-prod-down_binary64_15212.2
Applied cbrt-prod_binary64_14730.7
Applied unpow-prod-down_binary64_15210.7
Final simplification0.7
herbie shell --seed 2021045
(FPCore (v)
:name "Falkner and Boettcher, Appendix B, 1"
:precision binary64
(acos (/ (- 1.0 (* 5.0 (* v v))) (- (* v v) 1.0))))