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

\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 r262326 = a;
        double r262327 = k;
        double r262328 = m;
        double r262329 = pow(r262327, r262328);
        double r262330 = r262326 * r262329;
        double r262331 = 1.0;
        double r262332 = 10.0;
        double r262333 = r262332 * r262327;
        double r262334 = r262331 + r262333;
        double r262335 = r262327 * r262327;
        double r262336 = r262334 + r262335;
        double r262337 = r262330 / r262336;
        return r262337;
}

double f(double a, double k, double m) {
        double r262338 = k;
        double r262339 = 5.517677918177175e+56;
        bool r262340 = r262338 <= r262339;
        double r262341 = a;
        double r262342 = m;
        double r262343 = pow(r262338, r262342);
        double r262344 = r262341 * r262343;
        double r262345 = 10.0;
        double r262346 = 1.0;
        double r262347 = fma(r262338, r262345, r262346);
        double r262348 = fma(r262338, r262338, r262347);
        double r262349 = r262344 / r262348;
        double r262350 = -1.0;
        double r262351 = 1.0;
        double r262352 = r262351 / r262338;
        double r262353 = log(r262352);
        double r262354 = r262342 * r262353;
        double r262355 = r262350 * r262354;
        double r262356 = exp(r262355);
        double r262357 = r262356 / r262338;
        double r262358 = r262341 / r262338;
        double r262359 = 99.0;
        double r262360 = r262341 * r262356;
        double r262361 = 4.0;
        double r262362 = pow(r262338, r262361);
        double r262363 = r262360 / r262362;
        double r262364 = r262359 * r262363;
        double r262365 = 3.0;
        double r262366 = pow(r262338, r262365);
        double r262367 = r262360 / r262366;
        double r262368 = r262345 * r262367;
        double r262369 = r262364 - r262368;
        double r262370 = fma(r262357, r262358, r262369);
        double r262371 = r262340 ? r262349 : r262370;
        return r262371;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 5.517677918177175e+56

    1. Initial program 0.1

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

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

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

    if 5.517677918177175e+56 < k

    1. Initial program 7.2

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

      \[\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)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.1

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