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

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

\end{array}
double f(double a, double k, double m) {
        double r6791763 = a;
        double r6791764 = k;
        double r6791765 = m;
        double r6791766 = pow(r6791764, r6791765);
        double r6791767 = r6791763 * r6791766;
        double r6791768 = 1.0;
        double r6791769 = 10.0;
        double r6791770 = r6791769 * r6791764;
        double r6791771 = r6791768 + r6791770;
        double r6791772 = r6791764 * r6791764;
        double r6791773 = r6791771 + r6791772;
        double r6791774 = r6791767 / r6791773;
        return r6791774;
}

double f(double a, double k, double m) {
        double r6791775 = k;
        double r6791776 = 3.5660217219440296e+143;
        bool r6791777 = r6791775 <= r6791776;
        double r6791778 = a;
        double r6791779 = m;
        double r6791780 = pow(r6791775, r6791779);
        double r6791781 = r6791778 * r6791780;
        double r6791782 = 10.0;
        double r6791783 = r6791775 + r6791782;
        double r6791784 = 1.0;
        double r6791785 = fma(r6791775, r6791783, r6791784);
        double r6791786 = r6791781 / r6791785;
        double r6791787 = 99.0;
        double r6791788 = r6791775 * r6791775;
        double r6791789 = r6791787 / r6791788;
        double r6791790 = r6791782 / r6791775;
        double r6791791 = r6791789 - r6791790;
        double r6791792 = log(r6791775);
        double r6791793 = r6791792 * r6791779;
        double r6791794 = exp(r6791793);
        double r6791795 = r6791778 / r6791775;
        double r6791796 = r6791794 * r6791795;
        double r6791797 = r6791796 / r6791775;
        double r6791798 = r6791791 * r6791797;
        double r6791799 = r6791798 + r6791797;
        double r6791800 = r6791777 ? r6791786 : r6791799;
        return r6791800;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 3.5660217219440296e+143

    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, k + 10, 1\right)}}\]
    3. Using strategy rm
    4. Applied *-commutative0.1

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

    if 3.5660217219440296e+143 < k

    1. Initial program 9.9

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

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

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

Reproduce

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