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

\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 r506509 = a;
        double r506510 = k;
        double r506511 = m;
        double r506512 = pow(r506510, r506511);
        double r506513 = r506509 * r506512;
        double r506514 = 1.0;
        double r506515 = 10.0;
        double r506516 = r506515 * r506510;
        double r506517 = r506514 + r506516;
        double r506518 = r506510 * r506510;
        double r506519 = r506517 + r506518;
        double r506520 = r506513 / r506519;
        return r506520;
}

double f(double a, double k, double m) {
        double r506521 = k;
        double r506522 = 8.509642321498123e+117;
        bool r506523 = r506521 <= r506522;
        double r506524 = a;
        double r506525 = m;
        double r506526 = 2.0;
        double r506527 = r506525 / r506526;
        double r506528 = pow(r506521, r506527);
        double r506529 = r506524 * r506528;
        double r506530 = r506529 * r506528;
        double r506531 = 1.0;
        double r506532 = 10.0;
        double r506533 = r506532 * r506521;
        double r506534 = r506531 + r506533;
        double r506535 = r506521 * r506521;
        double r506536 = r506534 + r506535;
        double r506537 = r506530 / r506536;
        double r506538 = -1.0;
        double r506539 = 1.0;
        double r506540 = r506539 / r506521;
        double r506541 = log(r506540);
        double r506542 = r506525 * r506541;
        double r506543 = r506538 * r506542;
        double r506544 = exp(r506543);
        double r506545 = r506544 / r506521;
        double r506546 = r506524 / r506521;
        double r506547 = 99.0;
        double r506548 = r506524 * r506544;
        double r506549 = 4.0;
        double r506550 = pow(r506521, r506549);
        double r506551 = r506548 / r506550;
        double r506552 = r506547 * r506551;
        double r506553 = 3.0;
        double r506554 = pow(r506521, r506553);
        double r506555 = r506548 / r506554;
        double r506556 = r506532 * r506555;
        double r506557 = r506552 - r506556;
        double r506558 = fma(r506545, r506546, r506557);
        double r506559 = r506523 ? r506537 : r506558;
        return r506559;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 8.509642321498123e+117

    1. Initial program 0.1

      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    2. Using strategy rm
    3. Applied sqr-pow0.2

      \[\leadsto \frac{a \cdot \color{blue}{\left({k}^{\left(\frac{m}{2}\right)} \cdot {k}^{\left(\frac{m}{2}\right)}\right)}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    4. Applied associate-*r*0.2

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

    if 8.509642321498123e+117 < k

    1. Initial program 8.4

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

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

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

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