Average Error: 0.6 → 0.6
Time: 16.1s
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(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 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(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)
double f(double v) {
        double r192495 = 1.0;
        double r192496 = 5.0;
        double r192497 = v;
        double r192498 = r192497 * r192497;
        double r192499 = r192496 * r192498;
        double r192500 = r192495 - r192499;
        double r192501 = r192498 - r192495;
        double r192502 = r192500 / r192501;
        double r192503 = acos(r192502);
        return r192503;
}

double f(double v) {
        double r192504 = atan2(1.0, 0.0);
        double r192505 = 2.0;
        double r192506 = r192504 / r192505;
        double r192507 = 1.0;
        double r192508 = 5.0;
        double r192509 = v;
        double r192510 = r192509 * r192509;
        double r192511 = r192508 * r192510;
        double r192512 = r192507 - r192511;
        double r192513 = r192510 - r192507;
        double r192514 = r192512 / r192513;
        double r192515 = asin(r192514);
        double r192516 = r192506 - r192515;
        return r192516;
}

Error

Bits error versus v

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.6

    \[\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]
  2. Using strategy rm
  3. Applied acos-asin0.6

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

    \[\leadsto \frac{\pi}{2} - \sin^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]

Reproduce

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