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 r408360 = a;
        double r408361 = k;
        double r408362 = m;
        double r408363 = pow(r408361, r408362);
        double r408364 = r408360 * r408363;
        double r408365 = 1.0;
        double r408366 = 10.0;
        double r408367 = r408366 * r408361;
        double r408368 = r408365 + r408367;
        double r408369 = r408361 * r408361;
        double r408370 = r408368 + r408369;
        double r408371 = r408364 / r408370;
        return r408371;
}

double f(double a, double k, double m) {
        double r408372 = k;
        double r408373 = 1.3745438843881196e+99;
        bool r408374 = r408372 <= r408373;
        double r408375 = m;
        double r408376 = pow(r408372, r408375);
        double r408377 = 10.0;
        double r408378 = 1.0;
        double r408379 = fma(r408372, r408377, r408378);
        double r408380 = fma(r408372, r408372, r408379);
        double r408381 = a;
        double r408382 = r408380 / r408381;
        double r408383 = r408376 / r408382;
        double r408384 = -1.0;
        double r408385 = 1.0;
        double r408386 = r408385 / r408372;
        double r408387 = log(r408386);
        double r408388 = r408375 * r408387;
        double r408389 = r408384 * r408388;
        double r408390 = exp(r408389);
        double r408391 = r408390 / r408372;
        double r408392 = r408381 / r408372;
        double r408393 = 99.0;
        double r408394 = r408381 * r408390;
        double r408395 = 4.0;
        double r408396 = pow(r408372, r408395);
        double r408397 = r408394 / r408396;
        double r408398 = r408393 * r408397;
        double r408399 = 3.0;
        double r408400 = pow(r408372, r408399);
        double r408401 = r408394 / r408400;
        double r408402 = r408377 * r408401;
        double r408403 = r408398 - r408402;
        double r408404 = fma(r408391, r408392, r408403);
        double r408405 = r408374 ? r408383 : r408404;
        return r408405;
}

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))))