Average Error: 0.6 → 0.6
Time: 1.6m
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, \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(\frac{\mathsf{fma}\left(-5, \left(v \cdot v\right), 1\right)}{v \cdot v - 1}\right)
double f(double v) {
        double r100744732 = 1.0;
        double r100744733 = 5.0;
        double r100744734 = v;
        double r100744735 = r100744734 * r100744734;
        double r100744736 = r100744733 * r100744735;
        double r100744737 = r100744732 - r100744736;
        double r100744738 = r100744735 - r100744732;
        double r100744739 = r100744737 / r100744738;
        double r100744740 = acos(r100744739);
        return r100744740;
}

double f(double v) {
        double r100744741 = -5.0;
        double r100744742 = v;
        double r100744743 = r100744742 * r100744742;
        double r100744744 = 1.0;
        double r100744745 = fma(r100744741, r100744743, r100744744);
        double r100744746 = r100744743 - r100744744;
        double r100744747 = r100744745 / r100744746;
        double r100744748 = acos(r100744747);
        return r100744748;
}

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. Final simplification0.6

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

Reproduce

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