Average Error: 0.5 → 0.7
Time: 23.5s
Precision: 64
\[\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]
\[\mathsf{expm1}\left(\left(\sqrt{\mathsf{log1p}\left(\left(\cos^{-1} \left(\mathsf{fma}\left(4, \left(\mathsf{fma}\left(\left(v \cdot v\right), \left(v \cdot v\right), \left(v \cdot v\right)\right)\right), -1\right)\right)\right)\right)} \cdot \sqrt{\mathsf{log1p}\left(\left(\cos^{-1} \left(\mathsf{fma}\left(4, \left(\mathsf{fma}\left(\left(v \cdot v\right), \left(v \cdot v\right), \left(v \cdot v\right)\right)\right), -1\right)\right)\right)\right)}\right)\right)\]
\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)
\mathsf{expm1}\left(\left(\sqrt{\mathsf{log1p}\left(\left(\cos^{-1} \left(\mathsf{fma}\left(4, \left(\mathsf{fma}\left(\left(v \cdot v\right), \left(v \cdot v\right), \left(v \cdot v\right)\right)\right), -1\right)\right)\right)\right)} \cdot \sqrt{\mathsf{log1p}\left(\left(\cos^{-1} \left(\mathsf{fma}\left(4, \left(\mathsf{fma}\left(\left(v \cdot v\right), \left(v \cdot v\right), \left(v \cdot v\right)\right)\right), -1\right)\right)\right)\right)}\right)\right)
double f(double v) {
        double r4586298 = 1.0;
        double r4586299 = 5.0;
        double r4586300 = v;
        double r4586301 = r4586300 * r4586300;
        double r4586302 = r4586299 * r4586301;
        double r4586303 = r4586298 - r4586302;
        double r4586304 = r4586301 - r4586298;
        double r4586305 = r4586303 / r4586304;
        double r4586306 = acos(r4586305);
        return r4586306;
}

double f(double v) {
        double r4586307 = 4.0;
        double r4586308 = v;
        double r4586309 = r4586308 * r4586308;
        double r4586310 = fma(r4586309, r4586309, r4586309);
        double r4586311 = -1.0;
        double r4586312 = fma(r4586307, r4586310, r4586311);
        double r4586313 = acos(r4586312);
        double r4586314 = log1p(r4586313);
        double r4586315 = sqrt(r4586314);
        double r4586316 = r4586315 * r4586315;
        double r4586317 = expm1(r4586316);
        return r4586317;
}

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, \left(v \cdot v\right), 1\right)}{\mathsf{fma}\left(v, v, -1\right)}\right)}\]
  3. Taylor expanded around 0 0.7

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

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

    \[\leadsto \color{blue}{\mathsf{expm1}\left(\left(\mathsf{log1p}\left(\left(\cos^{-1} \left(\mathsf{fma}\left(4, \left(\mathsf{fma}\left(\left(v \cdot v\right), \left(v \cdot v\right), \left(v \cdot v\right)\right)\right), -1\right)\right)\right)\right)\right)\right)}\]
  7. Using strategy rm
  8. Applied add-sqr-sqrt0.7

    \[\leadsto \mathsf{expm1}\left(\color{blue}{\left(\sqrt{\mathsf{log1p}\left(\left(\cos^{-1} \left(\mathsf{fma}\left(4, \left(\mathsf{fma}\left(\left(v \cdot v\right), \left(v \cdot v\right), \left(v \cdot v\right)\right)\right), -1\right)\right)\right)\right)} \cdot \sqrt{\mathsf{log1p}\left(\left(\cos^{-1} \left(\mathsf{fma}\left(4, \left(\mathsf{fma}\left(\left(v \cdot v\right), \left(v \cdot v\right), \left(v \cdot v\right)\right)\right), -1\right)\right)\right)\right)}\right)}\right)\]
  9. Final simplification0.7

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

Reproduce

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