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

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

\end{array}
double f(double a, double k, double m) {
        double r345657 = a;
        double r345658 = k;
        double r345659 = m;
        double r345660 = pow(r345658, r345659);
        double r345661 = r345657 * r345660;
        double r345662 = 1.0;
        double r345663 = 10.0;
        double r345664 = r345663 * r345658;
        double r345665 = r345662 + r345664;
        double r345666 = r345658 * r345658;
        double r345667 = r345665 + r345666;
        double r345668 = r345661 / r345667;
        return r345668;
}

double f(double a, double k, double m) {
        double r345669 = k;
        double r345670 = 4.152474476509974e+93;
        bool r345671 = r345669 <= r345670;
        double r345672 = a;
        double r345673 = m;
        double r345674 = pow(r345669, r345673);
        double r345675 = r345672 * r345674;
        double r345676 = 10.0;
        double r345677 = 1.0;
        double r345678 = fma(r345669, r345676, r345677);
        double r345679 = fma(r345669, r345669, r345678);
        double r345680 = r345675 / r345679;
        double r345681 = -1.0;
        double r345682 = 1.0;
        double r345683 = r345682 / r345669;
        double r345684 = log(r345683);
        double r345685 = r345673 * r345684;
        double r345686 = r345681 * r345685;
        double r345687 = exp(r345686);
        double r345688 = r345687 / r345669;
        double r345689 = r345672 / r345669;
        double r345690 = 99.0;
        double r345691 = r345672 * r345687;
        double r345692 = 4.0;
        double r345693 = pow(r345669, r345692);
        double r345694 = r345691 / r345693;
        double r345695 = r345690 * r345694;
        double r345696 = 3.0;
        double r345697 = pow(r345669, r345696);
        double r345698 = r345691 / r345697;
        double r345699 = r345676 * r345698;
        double r345700 = r345695 - r345699;
        double r345701 = fma(r345688, r345689, r345700);
        double r345702 = r345671 ? r345680 : r345701;
        return r345702;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 4.152474476509974e+93

    1. Initial program 0.1

      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    2. Taylor expanded around 0 0.1

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

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

    if 4.152474476509974e+93 < k

    1. Initial program 7.5

      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    2. Taylor expanded around inf 7.5

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

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

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

Reproduce

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