\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\mathsf{expm1}\left(\mathsf{log1p}\left(\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\right)\right)double f(double v) {
double r305329 = 1.0;
double r305330 = 5.0;
double r305331 = v;
double r305332 = r305331 * r305331;
double r305333 = r305330 * r305332;
double r305334 = r305329 - r305333;
double r305335 = r305332 - r305329;
double r305336 = r305334 / r305335;
double r305337 = acos(r305336);
return r305337;
}
double f(double v) {
double r305338 = 1.0;
double r305339 = 5.0;
double r305340 = v;
double r305341 = r305340 * r305340;
double r305342 = r305339 * r305341;
double r305343 = r305338 - r305342;
double r305344 = r305341 - r305338;
double r305345 = r305343 / r305344;
double r305346 = acos(r305345);
double r305347 = log1p(r305346);
double r305348 = expm1(r305347);
return r305348;
}



Bits error versus v
Results
Initial program 0.6
rmApplied expm1-log1p-u0.6
Final simplification0.6
herbie shell --seed 2020056 +o rules:numerics
(FPCore (v)
:name "Falkner and Boettcher, Appendix B, 1"
:precision binary64
(acos (/ (- 1 (* 5 (* v v))) (- (* v v) 1))))