Average Error: 0.5 → 0.5
Time: 35.4s
Precision: 64
\[\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]
\[\cos^{-1} \left(\frac{(-5 \cdot \left(v \cdot v\right) + 1)_*}{v \cdot v - 1}\right)\]
\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)
\cos^{-1} \left(\frac{(-5 \cdot \left(v \cdot v\right) + 1)_*}{v \cdot v - 1}\right)
double f(double v) {
        double r64599762 = 1.0;
        double r64599763 = 5.0;
        double r64599764 = v;
        double r64599765 = r64599764 * r64599764;
        double r64599766 = r64599763 * r64599765;
        double r64599767 = r64599762 - r64599766;
        double r64599768 = r64599765 - r64599762;
        double r64599769 = r64599767 / r64599768;
        double r64599770 = acos(r64599769);
        return r64599770;
}

double f(double v) {
        double r64599771 = -5.0;
        double r64599772 = v;
        double r64599773 = r64599772 * r64599772;
        double r64599774 = 1.0;
        double r64599775 = fma(r64599771, r64599773, r64599774);
        double r64599776 = r64599773 - r64599774;
        double r64599777 = r64599775 / r64599776;
        double r64599778 = acos(r64599777);
        return r64599778;
}

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

    \[\leadsto \cos^{-1} \left(\frac{(-5 \cdot \left(v \cdot v\right) + 1)_*}{v \cdot v - 1}\right)\]

Reproduce

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