\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\mathsf{expm1}\left(\left(\sqrt{\mathsf{log1p}\left(\left(\cos^{-1} \left(\mathsf{fma}\left(4, \left(\mathsf{fma}\left(\left(v \cdot v\right), \left(v \cdot v\right), \left(v \cdot v\right)\right)\right), -1\right)\right)\right)\right)} \cdot \sqrt{\mathsf{log1p}\left(\left(\cos^{-1} \left(\mathsf{fma}\left(4, \left(\mathsf{fma}\left(\left(v \cdot v\right), \left(v \cdot v\right), \left(v \cdot v\right)\right)\right), -1\right)\right)\right)\right)}\right)\right)double f(double v) {
double r4586298 = 1.0;
double r4586299 = 5.0;
double r4586300 = v;
double r4586301 = r4586300 * r4586300;
double r4586302 = r4586299 * r4586301;
double r4586303 = r4586298 - r4586302;
double r4586304 = r4586301 - r4586298;
double r4586305 = r4586303 / r4586304;
double r4586306 = acos(r4586305);
return r4586306;
}
double f(double v) {
double r4586307 = 4.0;
double r4586308 = v;
double r4586309 = r4586308 * r4586308;
double r4586310 = fma(r4586309, r4586309, r4586309);
double r4586311 = -1.0;
double r4586312 = fma(r4586307, r4586310, r4586311);
double r4586313 = acos(r4586312);
double r4586314 = log1p(r4586313);
double r4586315 = sqrt(r4586314);
double r4586316 = r4586315 * r4586315;
double r4586317 = expm1(r4586316);
return r4586317;
}



Bits error versus v
Initial program 0.5
Simplified0.5
Taylor expanded around 0 0.7
Simplified0.7
rmApplied expm1-log1p-u0.7
rmApplied add-sqr-sqrt0.7
Final simplification0.7
herbie shell --seed 2019133 +o rules:numerics
(FPCore (v)
:name "Falkner and Boettcher, Appendix B, 1"
(acos (/ (- 1 (* 5 (* v v))) (- (* v v) 1))))