Average Error: 0.6 → 0.6
Time: 19.4s
Precision: 64
\[\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]
\[\cos^{-1} \left(\frac{1}{\frac{\mathsf{fma}\left(v, v, -1\right)}{\mathsf{fma}\left(v \cdot -5, 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{1}{\frac{\mathsf{fma}\left(v, v, -1\right)}{\mathsf{fma}\left(v \cdot -5, v, 1\right)}}\right)
double f(double v) {
        double r2366580 = 1.0;
        double r2366581 = 5.0;
        double r2366582 = v;
        double r2366583 = r2366582 * r2366582;
        double r2366584 = r2366581 * r2366583;
        double r2366585 = r2366580 - r2366584;
        double r2366586 = r2366583 - r2366580;
        double r2366587 = r2366585 / r2366586;
        double r2366588 = acos(r2366587);
        return r2366588;
}

double f(double v) {
        double r2366589 = 1.0;
        double r2366590 = v;
        double r2366591 = -1.0;
        double r2366592 = fma(r2366590, r2366590, r2366591);
        double r2366593 = -5.0;
        double r2366594 = r2366590 * r2366593;
        double r2366595 = fma(r2366594, r2366590, r2366589);
        double r2366596 = r2366592 / r2366595;
        double r2366597 = r2366589 / r2366596;
        double r2366598 = acos(r2366597);
        return r2366598;
}

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 \cdot v, v, 1\right)}{\mathsf{fma}\left(v, v, -1\right)}\right)}\]
  3. Using strategy rm
  4. Applied clear-num0.6

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

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

Reproduce

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