Average Error: 0.5 → 0.5
Time: 27.4s
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(-5 \cdot v, v, 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(-5 \cdot v, v, 1\right)}{\mathsf{fma}\left(v, v, -1\right)}\right)
double f(double v) {
        double r5281778 = 1.0;
        double r5281779 = 5.0;
        double r5281780 = v;
        double r5281781 = r5281780 * r5281780;
        double r5281782 = r5281779 * r5281781;
        double r5281783 = r5281778 - r5281782;
        double r5281784 = r5281781 - r5281778;
        double r5281785 = r5281783 / r5281784;
        double r5281786 = acos(r5281785);
        return r5281786;
}

double f(double v) {
        double r5281787 = -5.0;
        double r5281788 = v;
        double r5281789 = r5281787 * r5281788;
        double r5281790 = 1.0;
        double r5281791 = fma(r5281789, r5281788, r5281790);
        double r5281792 = -1.0;
        double r5281793 = fma(r5281788, r5281788, r5281792);
        double r5281794 = r5281791 / r5281793;
        double r5281795 = acos(r5281794);
        return r5281795;
}

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 \cdot v, v, 1\right)}{\mathsf{fma}\left(v, v, -1\right)}\right)}\]
  3. Final simplification0.5

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

Reproduce

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