Average Error: 0.5 → 0.5
Time: 29.1s
Precision: 64
\[\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]
\[\left(1 + \cos^{-1} \left(\frac{\mathsf{fma}\left(v \cdot -5, v, 1\right)}{\mathsf{fma}\left(v, v, -1\right)}\right)\right) - 1\]
\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)
\left(1 + \cos^{-1} \left(\frac{\mathsf{fma}\left(v \cdot -5, v, 1\right)}{\mathsf{fma}\left(v, v, -1\right)}\right)\right) - 1
double f(double v) {
        double r4405651 = 1.0;
        double r4405652 = 5.0;
        double r4405653 = v;
        double r4405654 = r4405653 * r4405653;
        double r4405655 = r4405652 * r4405654;
        double r4405656 = r4405651 - r4405655;
        double r4405657 = r4405654 - r4405651;
        double r4405658 = r4405656 / r4405657;
        double r4405659 = acos(r4405658);
        return r4405659;
}

double f(double v) {
        double r4405660 = 1.0;
        double r4405661 = v;
        double r4405662 = -5.0;
        double r4405663 = r4405661 * r4405662;
        double r4405664 = fma(r4405663, r4405661, r4405660);
        double r4405665 = -1.0;
        double r4405666 = fma(r4405661, r4405661, r4405665);
        double r4405667 = r4405664 / r4405666;
        double r4405668 = acos(r4405667);
        double r4405669 = r4405660 + r4405668;
        double r4405670 = r4405669 - r4405660;
        return r4405670;
}

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. Using strategy rm
  4. Applied expm1-log1p-u0.5

    \[\leadsto \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\cos^{-1} \left(\frac{\mathsf{fma}\left(-5 \cdot v, v, 1\right)}{\mathsf{fma}\left(v, v, -1\right)}\right)\right)\right)}\]
  5. Using strategy rm
  6. Applied expm1-udef0.5

    \[\leadsto \color{blue}{e^{\mathsf{log1p}\left(\cos^{-1} \left(\frac{\mathsf{fma}\left(-5 \cdot v, v, 1\right)}{\mathsf{fma}\left(v, v, -1\right)}\right)\right)} - 1}\]
  7. Simplified0.5

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

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

Reproduce

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