Average Error: 0.6 → 0.8
Time: 11.7s
Precision: 64
\[\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]
\[\frac{\pi}{2} - \sin^{-1} \left(4 \cdot \mathsf{fma}\left(v, v, {v}^{4}\right) - 1\right)\]
\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)
\frac{\pi}{2} - \sin^{-1} \left(4 \cdot \mathsf{fma}\left(v, v, {v}^{4}\right) - 1\right)
double f(double v) {
        double r241530 = 1.0;
        double r241531 = 5.0;
        double r241532 = v;
        double r241533 = r241532 * r241532;
        double r241534 = r241531 * r241533;
        double r241535 = r241530 - r241534;
        double r241536 = r241533 - r241530;
        double r241537 = r241535 / r241536;
        double r241538 = acos(r241537);
        return r241538;
}

double f(double v) {
        double r241539 = atan2(1.0, 0.0);
        double r241540 = 2.0;
        double r241541 = r241539 / r241540;
        double r241542 = 4.0;
        double r241543 = v;
        double r241544 = 4.0;
        double r241545 = pow(r241543, r241544);
        double r241546 = fma(r241543, r241543, r241545);
        double r241547 = r241542 * r241546;
        double r241548 = 1.0;
        double r241549 = r241547 - r241548;
        double r241550 = asin(r241549);
        double r241551 = r241541 - r241550;
        return r241551;
}

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

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

    \[\leadsto \cos^{-1} \color{blue}{\left(4 \cdot \mathsf{fma}\left(v, v, {v}^{4}\right) - 1\right)}\]
  4. Using strategy rm
  5. Applied acos-asin0.8

    \[\leadsto \color{blue}{\frac{\pi}{2} - \sin^{-1} \left(4 \cdot \mathsf{fma}\left(v, v, {v}^{4}\right) - 1\right)}\]
  6. Final simplification0.8

    \[\leadsto \frac{\pi}{2} - \sin^{-1} \left(4 \cdot \mathsf{fma}\left(v, v, {v}^{4}\right) - 1\right)\]

Reproduce

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