Average Error: 2.1 → 0.2
Time: 6.6s
Precision: 64
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\begin{array}{l} \mathbf{if}\;k \le 1.374543884388119608632379581766201536409 \cdot 10^{99}:\\ \;\;\;\;\frac{{k}^{m}}{\frac{\mathsf{fma}\left(k, k, \mathsf{fma}\left(k, 10, 1\right)\right)}{a}}\\ \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 1.374543884388119608632379581766201536409 \cdot 10^{99}:\\
\;\;\;\;\frac{{k}^{m}}{\frac{\mathsf{fma}\left(k, k, \mathsf{fma}\left(k, 10, 1\right)\right)}{a}}\\

\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 r408452 = a;
        double r408453 = k;
        double r408454 = m;
        double r408455 = pow(r408453, r408454);
        double r408456 = r408452 * r408455;
        double r408457 = 1.0;
        double r408458 = 10.0;
        double r408459 = r408458 * r408453;
        double r408460 = r408457 + r408459;
        double r408461 = r408453 * r408453;
        double r408462 = r408460 + r408461;
        double r408463 = r408456 / r408462;
        return r408463;
}

double f(double a, double k, double m) {
        double r408464 = k;
        double r408465 = 1.3745438843881196e+99;
        bool r408466 = r408464 <= r408465;
        double r408467 = m;
        double r408468 = pow(r408464, r408467);
        double r408469 = 10.0;
        double r408470 = 1.0;
        double r408471 = fma(r408464, r408469, r408470);
        double r408472 = fma(r408464, r408464, r408471);
        double r408473 = a;
        double r408474 = r408472 / r408473;
        double r408475 = r408468 / r408474;
        double r408476 = -1.0;
        double r408477 = 1.0;
        double r408478 = r408477 / r408464;
        double r408479 = log(r408478);
        double r408480 = r408467 * r408479;
        double r408481 = r408476 * r408480;
        double r408482 = exp(r408481);
        double r408483 = r408482 / r408464;
        double r408484 = r408473 / r408464;
        double r408485 = 99.0;
        double r408486 = r408473 * r408482;
        double r408487 = 4.0;
        double r408488 = pow(r408464, r408487);
        double r408489 = r408486 / r408488;
        double r408490 = r408485 * r408489;
        double r408491 = 3.0;
        double r408492 = pow(r408464, r408491);
        double r408493 = r408486 / r408492;
        double r408494 = r408469 * r408493;
        double r408495 = r408490 - r408494;
        double r408496 = fma(r408483, r408484, r408495);
        double r408497 = r408466 ? r408475 : r408496;
        return r408497;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 1.3745438843881196e+99

    1. Initial program 0.1

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

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

    if 1.3745438843881196e+99 < k

    1. Initial program 7.5

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

      \[\leadsto \color{blue}{\frac{{k}^{m}}{\frac{\mathsf{fma}\left(k, k, \mathsf{fma}\left(k, 10, 1\right)\right)}{a}}}\]
    3. 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}}}\]
    4. Simplified0.2

      \[\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.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;k \le 1.374543884388119608632379581766201536409 \cdot 10^{99}:\\ \;\;\;\;\frac{{k}^{m}}{\frac{\mathsf{fma}\left(k, k, \mathsf{fma}\left(k, 10, 1\right)\right)}{a}}\\ \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 2019353 +o rules:numerics
(FPCore (a k m)
  :name "Falkner and Boettcher, Appendix A"
  :precision binary64
  (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))