Average Error: 1.9 → 0.1
Time: 6.8s
Precision: 64
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\begin{array}{l} \mathbf{if}\;k \le 16862378543.897914886474609375:\\ \;\;\;\;\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\\ \mathbf{else}:\\ \;\;\;\;\frac{a}{k} \cdot \frac{{\left({\left(\frac{1}{k}\right)}^{m}\right)}^{-1}}{k} + \left(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 16862378543.897914886474609375:\\
\;\;\;\;\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\\

\mathbf{else}:\\
\;\;\;\;\frac{a}{k} \cdot \frac{{\left({\left(\frac{1}{k}\right)}^{m}\right)}^{-1}}{k} + \left(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 r321376 = a;
        double r321377 = k;
        double r321378 = m;
        double r321379 = pow(r321377, r321378);
        double r321380 = r321376 * r321379;
        double r321381 = 1.0;
        double r321382 = 10.0;
        double r321383 = r321382 * r321377;
        double r321384 = r321381 + r321383;
        double r321385 = r321377 * r321377;
        double r321386 = r321384 + r321385;
        double r321387 = r321380 / r321386;
        return r321387;
}

double f(double a, double k, double m) {
        double r321388 = k;
        double r321389 = 16862378543.897915;
        bool r321390 = r321388 <= r321389;
        double r321391 = a;
        double r321392 = m;
        double r321393 = pow(r321388, r321392);
        double r321394 = r321391 * r321393;
        double r321395 = 1.0;
        double r321396 = 10.0;
        double r321397 = r321396 * r321388;
        double r321398 = r321395 + r321397;
        double r321399 = r321388 * r321388;
        double r321400 = r321398 + r321399;
        double r321401 = r321394 / r321400;
        double r321402 = r321391 / r321388;
        double r321403 = 1.0;
        double r321404 = r321403 / r321388;
        double r321405 = pow(r321404, r321392);
        double r321406 = -1.0;
        double r321407 = pow(r321405, r321406);
        double r321408 = r321407 / r321388;
        double r321409 = r321402 * r321408;
        double r321410 = 99.0;
        double r321411 = log(r321404);
        double r321412 = r321392 * r321411;
        double r321413 = r321406 * r321412;
        double r321414 = exp(r321413);
        double r321415 = r321391 * r321414;
        double r321416 = 4.0;
        double r321417 = pow(r321388, r321416);
        double r321418 = r321415 / r321417;
        double r321419 = r321410 * r321418;
        double r321420 = 3.0;
        double r321421 = pow(r321388, r321420);
        double r321422 = r321415 / r321421;
        double r321423 = r321396 * r321422;
        double r321424 = r321419 - r321423;
        double r321425 = r321409 + r321424;
        double r321426 = r321390 ? r321401 : r321425;
        return r321426;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if k < 16862378543.897915

    1. Initial program 0.1

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

    if 16862378543.897915 < k

    1. Initial program 5.1

      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    2. Taylor expanded around inf 5.1

      \[\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}}}\]
    3. 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)}\]
    4. Using strategy rm
    5. Applied fma-udef0.2

      \[\leadsto \color{blue}{\frac{e^{-1 \cdot \left(m \cdot \log \left(\frac{1}{k}\right)\right)}}{k} \cdot \frac{a}{k} + \left(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)}\]
    6. Simplified0.1

      \[\leadsto \color{blue}{\frac{a}{k} \cdot \frac{{\left({\left(\frac{1}{k}\right)}^{m}\right)}^{-1}}{k}} + \left(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.1

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