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

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

\end{array}
double f(double a, double k, double m) {
        double r5292834 = a;
        double r5292835 = k;
        double r5292836 = m;
        double r5292837 = pow(r5292835, r5292836);
        double r5292838 = r5292834 * r5292837;
        double r5292839 = 1.0;
        double r5292840 = 10.0;
        double r5292841 = r5292840 * r5292835;
        double r5292842 = r5292839 + r5292841;
        double r5292843 = r5292835 * r5292835;
        double r5292844 = r5292842 + r5292843;
        double r5292845 = r5292838 / r5292844;
        return r5292845;
}

double f(double a, double k, double m) {
        double r5292846 = k;
        double r5292847 = 1.0815742449266312e+130;
        bool r5292848 = r5292846 <= r5292847;
        double r5292849 = m;
        double r5292850 = pow(r5292846, r5292849);
        double r5292851 = a;
        double r5292852 = r5292850 * r5292851;
        double r5292853 = 10.0;
        double r5292854 = r5292846 + r5292853;
        double r5292855 = 1.0;
        double r5292856 = fma(r5292846, r5292854, r5292855);
        double r5292857 = r5292852 / r5292856;
        double r5292858 = r5292851 / r5292846;
        double r5292859 = log(r5292846);
        double r5292860 = r5292859 * r5292849;
        double r5292861 = exp(r5292860);
        double r5292862 = r5292858 * r5292861;
        double r5292863 = r5292862 / r5292846;
        double r5292864 = 99.0;
        double r5292865 = r5292846 * r5292846;
        double r5292866 = r5292864 / r5292865;
        double r5292867 = r5292853 / r5292846;
        double r5292868 = r5292866 - r5292867;
        double r5292869 = r5292863 * r5292868;
        double r5292870 = r5292863 + r5292869;
        double r5292871 = r5292848 ? r5292857 : r5292870;
        return r5292871;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 1.0815742449266312e+130

    1. Initial program 0.1

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

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

    if 1.0815742449266312e+130 < k

    1. Initial program 8.9

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

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

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

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

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

Reproduce

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