Average Error: 0.5 → 0.5
Time: 47.2s
Precision: 64
\[\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]
\[\mathsf{expm1}\left(\left(\mathsf{log1p}\left(\left(\cos^{-1} \left(\frac{\mathsf{fma}\left(-5, \left(v \cdot v\right), 1\right)}{v \cdot v - 1}\right)\right)\right)\right)\right)\]
\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)
\mathsf{expm1}\left(\left(\mathsf{log1p}\left(\left(\cos^{-1} \left(\frac{\mathsf{fma}\left(-5, \left(v \cdot v\right), 1\right)}{v \cdot v - 1}\right)\right)\right)\right)\right)
double f(double v) {
        double r63776917 = 1.0;
        double r63776918 = 5.0;
        double r63776919 = v;
        double r63776920 = r63776919 * r63776919;
        double r63776921 = r63776918 * r63776920;
        double r63776922 = r63776917 - r63776921;
        double r63776923 = r63776920 - r63776917;
        double r63776924 = r63776922 / r63776923;
        double r63776925 = acos(r63776924);
        return r63776925;
}

double f(double v) {
        double r63776926 = -5.0;
        double r63776927 = v;
        double r63776928 = r63776927 * r63776927;
        double r63776929 = 1.0;
        double r63776930 = fma(r63776926, r63776928, r63776929);
        double r63776931 = r63776928 - r63776929;
        double r63776932 = r63776930 / r63776931;
        double r63776933 = acos(r63776932);
        double r63776934 = log1p(r63776933);
        double r63776935 = expm1(r63776934);
        return r63776935;
}

Error

Bits error versus v

Derivation

  1. Initial program 0.5

    \[\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]
  2. Simplified0.5

    \[\leadsto \color{blue}{\cos^{-1} \left(\frac{\mathsf{fma}\left(-5, \left(v \cdot v\right), 1\right)}{v \cdot v - 1}\right)}\]
  3. Using strategy rm
  4. Applied expm1-log1p-u0.5

    \[\leadsto \color{blue}{\mathsf{expm1}\left(\left(\mathsf{log1p}\left(\left(\cos^{-1} \left(\frac{\mathsf{fma}\left(-5, \left(v \cdot v\right), 1\right)}{v \cdot v - 1}\right)\right)\right)\right)\right)}\]
  5. Final simplification0.5

    \[\leadsto \mathsf{expm1}\left(\left(\mathsf{log1p}\left(\left(\cos^{-1} \left(\frac{\mathsf{fma}\left(-5, \left(v \cdot v\right), 1\right)}{v \cdot v - 1}\right)\right)\right)\right)\right)\]

Reproduce

herbie shell --seed 2019107 +o rules:numerics
(FPCore (v)
  :name "Falkner and Boettcher, Appendix B, 1"
  (acos (/ (- 1 (* 5 (* v v))) (- (* v v) 1))))