Average Error: 0.5 → 0.5
Time: 1.4m
Precision: 64
\[\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]
\[{e}^{\left(\log \left(\cos^{-1} \left(\frac{\sqrt{\mathsf{fma}\left(-5, \left(v \cdot v\right), 1\right)}}{v \cdot v - 1} \cdot \sqrt{\mathsf{fma}\left(-5, \left(v \cdot v\right), 1\right)}\right)\right)\right)}\]
\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)
{e}^{\left(\log \left(\cos^{-1} \left(\frac{\sqrt{\mathsf{fma}\left(-5, \left(v \cdot v\right), 1\right)}}{v \cdot v - 1} \cdot \sqrt{\mathsf{fma}\left(-5, \left(v \cdot v\right), 1\right)}\right)\right)\right)}
double f(double v) {
        double r54784272 = 1.0;
        double r54784273 = 5.0;
        double r54784274 = v;
        double r54784275 = r54784274 * r54784274;
        double r54784276 = r54784273 * r54784275;
        double r54784277 = r54784272 - r54784276;
        double r54784278 = r54784275 - r54784272;
        double r54784279 = r54784277 / r54784278;
        double r54784280 = acos(r54784279);
        return r54784280;
}

double f(double v) {
        double r54784281 = exp(1.0);
        double r54784282 = -5.0;
        double r54784283 = v;
        double r54784284 = r54784283 * r54784283;
        double r54784285 = 1.0;
        double r54784286 = fma(r54784282, r54784284, r54784285);
        double r54784287 = sqrt(r54784286);
        double r54784288 = r54784284 - r54784285;
        double r54784289 = r54784287 / r54784288;
        double r54784290 = r54784289 * r54784287;
        double r54784291 = acos(r54784290);
        double r54784292 = log(r54784291);
        double r54784293 = pow(r54784281, r54784292);
        return r54784293;
}

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

    \[\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.5

    \[\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.5

    \[\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. Using strategy rm
  8. Applied add-exp-log0.5

    \[\leadsto \color{blue}{e^{\log \left(\cos^{-1} \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)\right)}}\]
  9. Using strategy rm
  10. Applied *-un-lft-identity0.5

    \[\leadsto e^{\color{blue}{1 \cdot \log \left(\cos^{-1} \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)\right)}}\]
  11. Applied exp-prod0.5

    \[\leadsto \color{blue}{{\left(e^{1}\right)}^{\left(\log \left(\cos^{-1} \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)\right)\right)}}\]
  12. Simplified0.5

    \[\leadsto {\color{blue}{e}}^{\left(\log \left(\cos^{-1} \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)\right)\right)}\]
  13. Final simplification0.5

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

Reproduce

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