Average Error: 2.0 → 0.1
Time: 30.9s
Precision: 64
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\begin{array}{l} \mathbf{if}\;k \le 3.8747336102714864 \cdot 10^{+70}:\\ \;\;\;\;\frac{{k}^{m} \cdot a}{\mathsf{fma}\left(k + 10, k, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{99}{k \cdot k}, \frac{e^{m \cdot \log k}}{k} \cdot \frac{a}{k}, \mathsf{fma}\left(\frac{e^{m \cdot \log k}}{k}, \frac{a}{k}, \frac{e^{m \cdot \log k}}{\frac{k \cdot k}{\frac{a}{k}}} \cdot -10\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 3.8747336102714864 \cdot 10^{+70}:\\
\;\;\;\;\frac{{k}^{m} \cdot a}{\mathsf{fma}\left(k + 10, k, 1\right)}\\

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

\end{array}
double f(double a, double k, double m) {
        double r7291974 = a;
        double r7291975 = k;
        double r7291976 = m;
        double r7291977 = pow(r7291975, r7291976);
        double r7291978 = r7291974 * r7291977;
        double r7291979 = 1.0;
        double r7291980 = 10.0;
        double r7291981 = r7291980 * r7291975;
        double r7291982 = r7291979 + r7291981;
        double r7291983 = r7291975 * r7291975;
        double r7291984 = r7291982 + r7291983;
        double r7291985 = r7291978 / r7291984;
        return r7291985;
}

double f(double a, double k, double m) {
        double r7291986 = k;
        double r7291987 = 3.8747336102714864e+70;
        bool r7291988 = r7291986 <= r7291987;
        double r7291989 = m;
        double r7291990 = pow(r7291986, r7291989);
        double r7291991 = a;
        double r7291992 = r7291990 * r7291991;
        double r7291993 = 10.0;
        double r7291994 = r7291986 + r7291993;
        double r7291995 = 1.0;
        double r7291996 = fma(r7291994, r7291986, r7291995);
        double r7291997 = r7291992 / r7291996;
        double r7291998 = 99.0;
        double r7291999 = r7291986 * r7291986;
        double r7292000 = r7291998 / r7291999;
        double r7292001 = log(r7291986);
        double r7292002 = r7291989 * r7292001;
        double r7292003 = exp(r7292002);
        double r7292004 = r7292003 / r7291986;
        double r7292005 = r7291991 / r7291986;
        double r7292006 = r7292004 * r7292005;
        double r7292007 = r7291999 / r7292005;
        double r7292008 = r7292003 / r7292007;
        double r7292009 = -10.0;
        double r7292010 = r7292008 * r7292009;
        double r7292011 = fma(r7292004, r7292005, r7292010);
        double r7292012 = fma(r7292000, r7292006, r7292011);
        double r7292013 = r7291988 ? r7291997 : r7292012;
        return r7292013;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 3.8747336102714864e+70

    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 + 10, k, 1\right)}}\]

    if 3.8747336102714864e+70 < k

    1. Initial program 6.6

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

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

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

Reproduce

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