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

\end{array}
double f(double a, double k, double m) {
        double r169361 = a;
        double r169362 = k;
        double r169363 = m;
        double r169364 = pow(r169362, r169363);
        double r169365 = r169361 * r169364;
        double r169366 = 1.0;
        double r169367 = 10.0;
        double r169368 = r169367 * r169362;
        double r169369 = r169366 + r169368;
        double r169370 = r169362 * r169362;
        double r169371 = r169369 + r169370;
        double r169372 = r169365 / r169371;
        return r169372;
}

double f(double a, double k, double m) {
        double r169373 = k;
        double r169374 = 510508.1455585844;
        bool r169375 = r169373 <= r169374;
        double r169376 = a;
        double r169377 = m;
        double r169378 = 2.0;
        double r169379 = r169377 / r169378;
        double r169380 = pow(r169373, r169379);
        double r169381 = r169376 * r169380;
        double r169382 = r169381 * r169380;
        double r169383 = 1.0;
        double r169384 = 10.0;
        double r169385 = r169384 * r169373;
        double r169386 = r169383 + r169385;
        double r169387 = r169373 * r169373;
        double r169388 = r169386 + r169387;
        double r169389 = r169382 / r169388;
        double r169390 = 3.0;
        double r169391 = pow(r169373, r169390);
        double r169392 = r169376 / r169391;
        double r169393 = 1.0;
        double r169394 = r169393 / r169373;
        double r169395 = pow(r169394, r169377);
        double r169396 = -0.5;
        double r169397 = pow(r169395, r169396);
        double r169398 = pow(r169397, r169378);
        double r169399 = r169392 * r169398;
        double r169400 = -r169384;
        double r169401 = 4.0;
        double r169402 = pow(r169373, r169401);
        double r169403 = r169376 / r169402;
        double r169404 = r169403 * r169398;
        double r169405 = 99.0;
        double r169406 = r169376 * r169398;
        double r169407 = r169406 / r169373;
        double r169408 = r169407 / r169373;
        double r169409 = fma(r169404, r169405, r169408);
        double r169410 = fma(r169399, r169400, r169409);
        double r169411 = r169375 ? r169389 : r169410;
        return r169411;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

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

    1. Initial program 0.0

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

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

      \[\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 510508.1455585844 < k

    1. Initial program 5.6

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

      \[\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*5.6

      \[\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}\]
    5. Taylor expanded around inf 5.6

      \[\leadsto \color{blue}{\left(99 \cdot \frac{a \cdot {\left(e^{\frac{-1}{2} \cdot \left(m \cdot \log \left(\frac{1}{k}\right)\right)}\right)}^{2}}{{k}^{4}} + \frac{a \cdot {\left(e^{\frac{-1}{2} \cdot \left(m \cdot \log \left(\frac{1}{k}\right)\right)}\right)}^{2}}{{k}^{2}}\right) - 10 \cdot \frac{a \cdot {\left(e^{\frac{-1}{2} \cdot \left(m \cdot \log \left(\frac{1}{k}\right)\right)}\right)}^{2}}{{k}^{3}}}\]
    6. Simplified0.1

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{a}{{k}^{3}} \cdot {\left({\left({\left(\frac{1}{k}\right)}^{m}\right)}^{\frac{-1}{2}}\right)}^{2}, -10, \mathsf{fma}\left(\frac{a}{{k}^{4}} \cdot {\left({\left({\left(\frac{1}{k}\right)}^{m}\right)}^{\frac{-1}{2}}\right)}^{2}, 99, \frac{\frac{a \cdot {\left({\left({\left(\frac{1}{k}\right)}^{m}\right)}^{\frac{-1}{2}}\right)}^{2}}{k}}{k}\right)\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;k \le 510508.1455585844232700765132904052734375:\\ \;\;\;\;\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{a}{{k}^{3}} \cdot {\left({\left({\left(\frac{1}{k}\right)}^{m}\right)}^{\frac{-1}{2}}\right)}^{2}, -10, \mathsf{fma}\left(\frac{a}{{k}^{4}} \cdot {\left({\left({\left(\frac{1}{k}\right)}^{m}\right)}^{\frac{-1}{2}}\right)}^{2}, 99, \frac{\frac{a \cdot {\left({\left({\left(\frac{1}{k}\right)}^{m}\right)}^{\frac{-1}{2}}\right)}^{2}}{k}}{k}\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019235 +o rules:numerics
(FPCore (a k m)
  :name "Falkner and Boettcher, Appendix A"
  :precision binary64
  (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))