Average Error: 0.6 → 0.6
Time: 23.2s
Precision: 64
\[\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]
\[\cos^{-1} \left(\frac{\mathsf{fma}\left(\left(v \cdot v\right), -5, 1\right)}{\mathsf{fma}\left(v, v, -1\right)}\right)\]
\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)
\cos^{-1} \left(\frac{\mathsf{fma}\left(\left(v \cdot v\right), -5, 1\right)}{\mathsf{fma}\left(v, v, -1\right)}\right)
double f(double v) {
        double r5340488 = 1.0;
        double r5340489 = 5.0;
        double r5340490 = v;
        double r5340491 = r5340490 * r5340490;
        double r5340492 = r5340489 * r5340491;
        double r5340493 = r5340488 - r5340492;
        double r5340494 = r5340491 - r5340488;
        double r5340495 = r5340493 / r5340494;
        double r5340496 = acos(r5340495);
        return r5340496;
}

double f(double v) {
        double r5340497 = v;
        double r5340498 = r5340497 * r5340497;
        double r5340499 = -5.0;
        double r5340500 = 1.0;
        double r5340501 = fma(r5340498, r5340499, r5340500);
        double r5340502 = -1.0;
        double r5340503 = fma(r5340497, r5340497, r5340502);
        double r5340504 = r5340501 / r5340503;
        double r5340505 = acos(r5340504);
        return r5340505;
}

Error

Bits error versus v

Derivation

  1. Initial program 0.6

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

    \[\leadsto \color{blue}{\cos^{-1} \left(\frac{\mathsf{fma}\left(-5, \left(v \cdot v\right), 1\right)}{\mathsf{fma}\left(v, v, -1\right)}\right)}\]
  3. Taylor expanded around inf 0.6

    \[\leadsto \cos^{-1} \left(\frac{\color{blue}{1 - 5 \cdot {v}^{2}}}{\mathsf{fma}\left(v, v, -1\right)}\right)\]
  4. Simplified0.6

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

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

Reproduce

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