Average Error: 0.6 → 0.6
Time: 22.3s
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, \left(v \cdot v\right), 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, \left(v \cdot v\right), 1\right)}{\mathsf{fma}\left(v, v, -1\right)}\right)
double f(double v) {
        double r4689632 = 1.0;
        double r4689633 = 5.0;
        double r4689634 = v;
        double r4689635 = r4689634 * r4689634;
        double r4689636 = r4689633 * r4689635;
        double r4689637 = r4689632 - r4689636;
        double r4689638 = r4689635 - r4689632;
        double r4689639 = r4689637 / r4689638;
        double r4689640 = acos(r4689639);
        return r4689640;
}

double f(double v) {
        double r4689641 = -5.0;
        double r4689642 = v;
        double r4689643 = r4689642 * r4689642;
        double r4689644 = 1.0;
        double r4689645 = fma(r4689641, r4689643, r4689644);
        double r4689646 = -1.0;
        double r4689647 = fma(r4689642, r4689642, r4689646);
        double r4689648 = r4689645 / r4689647;
        double r4689649 = acos(r4689648);
        return r4689649;
}

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 0 0.6

    \[\leadsto \color{blue}{\cos^{-1} \left(\frac{\mathsf{fma}\left(-5, \left({v}^{2}\right), 1\right)}{\mathsf{fma}\left(v, v, -1\right)}\right)}\]
  4. 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)}\]
  5. Final simplification0.6

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

Reproduce

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