Average Error: 0.6 → 0.6
Time: 1.5m
Precision: 64
\[\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]
\[\cos^{-1} \left(\sqrt{\mathsf{fma}\left(-5, \left(v \cdot v\right), 1\right)} \cdot \frac{\sqrt{\mathsf{fma}\left(-5, \left(v \cdot v\right), 1\right)}}{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(\sqrt{\mathsf{fma}\left(-5, \left(v \cdot v\right), 1\right)} \cdot \frac{\sqrt{\mathsf{fma}\left(-5, \left(v \cdot v\right), 1\right)}}{v \cdot v - 1}\right)
double f(double v) {
        double r51252276 = 1.0;
        double r51252277 = 5.0;
        double r51252278 = v;
        double r51252279 = r51252278 * r51252278;
        double r51252280 = r51252277 * r51252279;
        double r51252281 = r51252276 - r51252280;
        double r51252282 = r51252279 - r51252276;
        double r51252283 = r51252281 / r51252282;
        double r51252284 = acos(r51252283);
        return r51252284;
}

double f(double v) {
        double r51252285 = -5.0;
        double r51252286 = v;
        double r51252287 = r51252286 * r51252286;
        double r51252288 = 1.0;
        double r51252289 = fma(r51252285, r51252287, r51252288);
        double r51252290 = sqrt(r51252289);
        double r51252291 = r51252287 - r51252288;
        double r51252292 = r51252290 / r51252291;
        double r51252293 = r51252290 * r51252292;
        double r51252294 = acos(r51252293);
        return r51252294;
}

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)}{v \cdot v - 1}\right)}\]
  3. Using strategy rm
  4. Applied *-un-lft-identity0.6

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

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

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

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

Reproduce

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