Average Error: 0.5 → 0.5
Time: 20.8s
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 r2679277 = 1.0;
        double r2679278 = 5.0;
        double r2679279 = v;
        double r2679280 = r2679279 * r2679279;
        double r2679281 = r2679278 * r2679280;
        double r2679282 = r2679277 - r2679281;
        double r2679283 = r2679280 - r2679277;
        double r2679284 = r2679282 / r2679283;
        double r2679285 = acos(r2679284);
        return r2679285;
}

double f(double v) {
        double r2679286 = -5.0;
        double r2679287 = v;
        double r2679288 = r2679286 * r2679287;
        double r2679289 = 1.0;
        double r2679290 = fma(r2679288, r2679287, r2679289);
        double r2679291 = -1.0;
        double r2679292 = fma(r2679287, r2679287, r2679291);
        double r2679293 = r2679290 / r2679292;
        double r2679294 = acos(r2679293);
        return r2679294;
}

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))))