double code(double v) {
return ((double) acos(((double) (((double) (1.0 - ((double) (5.0 * ((double) (v * v)))))) / ((double) (((double) (v * v)) - 1.0))))));
}
double code(double v) {
return ((double) pow(((double) exp(((double) sqrt(((double) log(((double) acos(((double) (((double) (1.0 - ((double) (5.0 * ((double) (v * v)))))) / ((double) (((double) (v * v)) - 1.0)))))))))))), ((double) sqrt(((double) log(((double) acos(((double) (((double) (1.0 - ((double) (5.0 * ((double) (v * v)))))) / ((double) (((double) (v * v)) - 1.0))))))))))));
}



Bits error versus v
Results
Initial program 0.5
rmApplied add-exp-log0.5
rmApplied add-sqr-sqrt0.5
Applied exp-prod0.5
Final simplification0.5
herbie shell --seed 2020181
(FPCore (v)
:name "Falkner and Boettcher, Appendix B, 1"
:precision binary64
(acos (/ (- 1.0 (* 5.0 (* v v))) (- (* v v) 1.0))))