Average Error: 2.0 → 0.1
Time: 16.5s
Precision: 64
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\begin{array}{l} \mathbf{if}\;k \le 8.121126551289328 \cdot 10^{+56}:\\ \;\;\;\;\frac{{k}^{m} \cdot a}{\mathsf{fma}\left(k + 10, k, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(-10, \frac{e^{\log k \cdot m}}{k \cdot k} \cdot \frac{a}{k}, \mathsf{fma}\left(\frac{a \cdot e^{\log k \cdot m}}{\left(k \cdot k\right) \cdot \left(k \cdot k\right)}, 99, \frac{\frac{a \cdot e^{\log k \cdot m}}{k}}{k}\right)\right)\\ \end{array}\]
\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}
\begin{array}{l}
\mathbf{if}\;k \le 8.121126551289328 \cdot 10^{+56}:\\
\;\;\;\;\frac{{k}^{m} \cdot a}{\mathsf{fma}\left(k + 10, k, 1\right)}\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(-10, \frac{e^{\log k \cdot m}}{k \cdot k} \cdot \frac{a}{k}, \mathsf{fma}\left(\frac{a \cdot e^{\log k \cdot m}}{\left(k \cdot k\right) \cdot \left(k \cdot k\right)}, 99, \frac{\frac{a \cdot e^{\log k \cdot m}}{k}}{k}\right)\right)\\

\end{array}
double f(double a, double k, double m) {
        double r3515632 = a;
        double r3515633 = k;
        double r3515634 = m;
        double r3515635 = pow(r3515633, r3515634);
        double r3515636 = r3515632 * r3515635;
        double r3515637 = 1.0;
        double r3515638 = 10.0;
        double r3515639 = r3515638 * r3515633;
        double r3515640 = r3515637 + r3515639;
        double r3515641 = r3515633 * r3515633;
        double r3515642 = r3515640 + r3515641;
        double r3515643 = r3515636 / r3515642;
        return r3515643;
}

double f(double a, double k, double m) {
        double r3515644 = k;
        double r3515645 = 8.121126551289328e+56;
        bool r3515646 = r3515644 <= r3515645;
        double r3515647 = m;
        double r3515648 = pow(r3515644, r3515647);
        double r3515649 = a;
        double r3515650 = r3515648 * r3515649;
        double r3515651 = 10.0;
        double r3515652 = r3515644 + r3515651;
        double r3515653 = 1.0;
        double r3515654 = fma(r3515652, r3515644, r3515653);
        double r3515655 = r3515650 / r3515654;
        double r3515656 = -10.0;
        double r3515657 = log(r3515644);
        double r3515658 = r3515657 * r3515647;
        double r3515659 = exp(r3515658);
        double r3515660 = r3515644 * r3515644;
        double r3515661 = r3515659 / r3515660;
        double r3515662 = r3515649 / r3515644;
        double r3515663 = r3515661 * r3515662;
        double r3515664 = r3515649 * r3515659;
        double r3515665 = r3515660 * r3515660;
        double r3515666 = r3515664 / r3515665;
        double r3515667 = 99.0;
        double r3515668 = r3515664 / r3515644;
        double r3515669 = r3515668 / r3515644;
        double r3515670 = fma(r3515666, r3515667, r3515669);
        double r3515671 = fma(r3515656, r3515663, r3515670);
        double r3515672 = r3515646 ? r3515655 : r3515671;
        return r3515672;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 8.121126551289328e+56

    1. Initial program 0.1

      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    2. Simplified0.1

      \[\leadsto \color{blue}{\frac{{k}^{m} \cdot a}{\mathsf{fma}\left(k + 10, k, 1\right)}}\]

    if 8.121126551289328e+56 < k

    1. Initial program 6.3

      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    2. Simplified6.3

      \[\leadsto \color{blue}{\frac{{k}^{m} \cdot a}{\mathsf{fma}\left(k + 10, k, 1\right)}}\]
    3. Taylor expanded around -inf 63.0

      \[\leadsto \color{blue}{\left(99 \cdot \frac{a \cdot e^{m \cdot \left(\log -1 - \log \left(\frac{-1}{k}\right)\right)}}{{k}^{4}} + \frac{a \cdot e^{m \cdot \left(\log -1 - \log \left(\frac{-1}{k}\right)\right)}}{{k}^{2}}\right) - 10 \cdot \frac{a \cdot e^{m \cdot \left(\log -1 - \log \left(\frac{-1}{k}\right)\right)}}{{k}^{3}}}\]
    4. Simplified0.1

      \[\leadsto \color{blue}{\mathsf{fma}\left(-10, \frac{e^{m \cdot \left(0 + \log k\right)}}{k \cdot k} \cdot \frac{a}{k}, \mathsf{fma}\left(\frac{a \cdot e^{m \cdot \left(0 + \log k\right)}}{\left(k \cdot k\right) \cdot \left(k \cdot k\right)}, 99, \frac{\frac{a \cdot e^{m \cdot \left(0 + \log k\right)}}{k}}{k}\right)\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;k \le 8.121126551289328 \cdot 10^{+56}:\\ \;\;\;\;\frac{{k}^{m} \cdot a}{\mathsf{fma}\left(k + 10, k, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(-10, \frac{e^{\log k \cdot m}}{k \cdot k} \cdot \frac{a}{k}, \mathsf{fma}\left(\frac{a \cdot e^{\log k \cdot m}}{\left(k \cdot k\right) \cdot \left(k \cdot k\right)}, 99, \frac{\frac{a \cdot e^{\log k \cdot m}}{k}}{k}\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019154 +o rules:numerics
(FPCore (a k m)
  :name "Falkner and Boettcher, Appendix A"
  (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))