Average Error: 0.5 → 0.7
Time: 4.9s
Precision: 64
\[\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]
\[e^{\log \left(\cos^{-1} \left(\mathsf{fma}\left(4, \mathsf{fma}\left(v, v, {v}^{4}\right), -1\right)\right)\right)}\]
\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)
e^{\log \left(\cos^{-1} \left(\mathsf{fma}\left(4, \mathsf{fma}\left(v, v, {v}^{4}\right), -1\right)\right)\right)}
double f(double v) {
        double r324099 = 1.0;
        double r324100 = 5.0;
        double r324101 = v;
        double r324102 = r324101 * r324101;
        double r324103 = r324100 * r324102;
        double r324104 = r324099 - r324103;
        double r324105 = r324102 - r324099;
        double r324106 = r324104 / r324105;
        double r324107 = acos(r324106);
        return r324107;
}

double f(double v) {
        double r324108 = 4.0;
        double r324109 = v;
        double r324110 = 4.0;
        double r324111 = pow(r324109, r324110);
        double r324112 = fma(r324109, r324109, r324111);
        double r324113 = 1.0;
        double r324114 = -r324113;
        double r324115 = fma(r324108, r324112, r324114);
        double r324116 = acos(r324115);
        double r324117 = log(r324116);
        double r324118 = exp(r324117);
        return r324118;
}

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. Taylor expanded around 0 0.7

    \[\leadsto \cos^{-1} \color{blue}{\left(\left(4 \cdot {v}^{2} + 4 \cdot {v}^{4}\right) - 1\right)}\]
  3. Simplified0.7

    \[\leadsto \cos^{-1} \color{blue}{\left(\mathsf{fma}\left(4, \mathsf{fma}\left(v, v, {v}^{4}\right), -1\right)\right)}\]
  4. Using strategy rm
  5. Applied add-exp-log0.7

    \[\leadsto \color{blue}{e^{\log \left(\cos^{-1} \left(\mathsf{fma}\left(4, \mathsf{fma}\left(v, v, {v}^{4}\right), -1\right)\right)\right)}}\]
  6. Final simplification0.7

    \[\leadsto e^{\log \left(\cos^{-1} \left(\mathsf{fma}\left(4, \mathsf{fma}\left(v, v, {v}^{4}\right), -1\right)\right)\right)}\]

Reproduce

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