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

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

\end{array}
double f(double a, double k, double m) {
        double r3602375 = a;
        double r3602376 = k;
        double r3602377 = m;
        double r3602378 = pow(r3602376, r3602377);
        double r3602379 = r3602375 * r3602378;
        double r3602380 = 1.0;
        double r3602381 = 10.0;
        double r3602382 = r3602381 * r3602376;
        double r3602383 = r3602380 + r3602382;
        double r3602384 = r3602376 * r3602376;
        double r3602385 = r3602383 + r3602384;
        double r3602386 = r3602379 / r3602385;
        return r3602386;
}

double f(double a, double k, double m) {
        double r3602387 = k;
        double r3602388 = 1.308663191510053e+120;
        bool r3602389 = r3602387 <= r3602388;
        double r3602390 = m;
        double r3602391 = pow(r3602387, r3602390);
        double r3602392 = a;
        double r3602393 = r3602391 * r3602392;
        double r3602394 = 10.0;
        double r3602395 = r3602387 + r3602394;
        double r3602396 = 1.0;
        double r3602397 = fma(r3602387, r3602395, r3602396);
        double r3602398 = r3602393 / r3602397;
        double r3602399 = 99.0;
        double r3602400 = r3602387 * r3602387;
        double r3602401 = r3602392 / r3602400;
        double r3602402 = log(r3602387);
        double r3602403 = r3602390 * r3602402;
        double r3602404 = exp(r3602403);
        double r3602405 = r3602404 / r3602400;
        double r3602406 = r3602401 * r3602405;
        double r3602407 = r3602392 / r3602387;
        double r3602408 = r3602404 / r3602387;
        double r3602409 = r3602407 * r3602408;
        double r3602410 = fma(r3602399, r3602406, r3602409);
        double r3602411 = -10.0;
        double r3602412 = r3602407 * r3602405;
        double r3602413 = r3602411 * r3602412;
        double r3602414 = r3602410 + r3602413;
        double r3602415 = r3602389 ? r3602398 : r3602414;
        return r3602415;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 1.308663191510053e+120

    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)}}\]

    if 1.308663191510053e+120 < k

    1. Initial program 8.4

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

      \[\leadsto \color{blue}{\frac{{k}^{m} \cdot a}{\mathsf{fma}\left(k, k + 10, 1\right)}}\]
    3. Using strategy rm
    4. Applied associate-/l*8.5

      \[\leadsto \color{blue}{\frac{{k}^{m}}{\frac{\mathsf{fma}\left(k, k + 10, 1\right)}{a}}}\]
    5. Using strategy rm
    6. Applied *-un-lft-identity8.5

      \[\leadsto \frac{{k}^{m}}{\frac{\mathsf{fma}\left(k, k + 10, 1\right)}{\color{blue}{1 \cdot a}}}\]
    7. Applied add-sqr-sqrt8.5

      \[\leadsto \frac{{k}^{m}}{\frac{\color{blue}{\sqrt{\mathsf{fma}\left(k, k + 10, 1\right)} \cdot \sqrt{\mathsf{fma}\left(k, k + 10, 1\right)}}}{1 \cdot a}}\]
    8. Applied times-frac8.5

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

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

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

      \[\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}}}\]
    12. Simplified0.1

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

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

Reproduce

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