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

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{a \cdot {\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}}{k}, \frac{{\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m}}{k}, \frac{{\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m} \cdot \left(a \cdot {\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}\right)}{k \cdot k} \cdot \left(\frac{99}{k \cdot k} - \frac{10}{k}\right)\right)\\

\end{array}
double f(double a, double k, double m) {
        double r253371 = a;
        double r253372 = k;
        double r253373 = m;
        double r253374 = pow(r253372, r253373);
        double r253375 = r253371 * r253374;
        double r253376 = 1.0;
        double r253377 = 10.0;
        double r253378 = r253377 * r253372;
        double r253379 = r253376 + r253378;
        double r253380 = r253372 * r253372;
        double r253381 = r253379 + r253380;
        double r253382 = r253375 / r253381;
        return r253382;
}

double f(double a, double k, double m) {
        double r253383 = k;
        double r253384 = 5685825.471149627;
        bool r253385 = r253383 <= r253384;
        double r253386 = a;
        double r253387 = m;
        double r253388 = pow(r253383, r253387);
        double r253389 = 10.0;
        double r253390 = r253389 + r253383;
        double r253391 = 1.0;
        double r253392 = fma(r253383, r253390, r253391);
        double r253393 = r253388 / r253392;
        double r253394 = r253386 * r253393;
        double r253395 = 1.0;
        double r253396 = r253395 / r253383;
        double r253397 = -0.3333333333333333;
        double r253398 = pow(r253396, r253397);
        double r253399 = pow(r253398, r253387);
        double r253400 = r253386 * r253399;
        double r253401 = r253400 / r253383;
        double r253402 = -0.6666666666666666;
        double r253403 = pow(r253396, r253402);
        double r253404 = pow(r253403, r253387);
        double r253405 = r253404 / r253383;
        double r253406 = r253404 * r253400;
        double r253407 = r253383 * r253383;
        double r253408 = r253406 / r253407;
        double r253409 = 99.0;
        double r253410 = r253409 / r253407;
        double r253411 = r253389 / r253383;
        double r253412 = r253410 - r253411;
        double r253413 = r253408 * r253412;
        double r253414 = fma(r253401, r253405, r253413);
        double r253415 = r253385 ? r253394 : r253414;
        return r253415;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

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

    1. Initial program 0.1

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

      \[\leadsto \color{blue}{\frac{a}{\frac{\mathsf{fma}\left(k, 10 + k, 1\right)}{{k}^{m}}}}\]
    3. Using strategy rm
    4. Applied div-inv0.0

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

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

    if 5685825.471149627 < k

    1. Initial program 5.5

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

      \[\leadsto \color{blue}{\frac{a}{\frac{\mathsf{fma}\left(k, 10 + k, 1\right)}{{k}^{m}}}}\]
    3. Using strategy rm
    4. Applied div-inv5.5

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

      \[\leadsto a \cdot \color{blue}{\frac{{k}^{m}}{\mathsf{fma}\left(k, 10 + k, 1\right)}}\]
    6. Using strategy rm
    7. Applied add-sqr-sqrt5.5

      \[\leadsto a \cdot \frac{{k}^{m}}{\color{blue}{\sqrt{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot \sqrt{\mathsf{fma}\left(k, 10 + k, 1\right)}}}\]
    8. Applied add-cube-cbrt5.5

      \[\leadsto a \cdot \frac{{\color{blue}{\left(\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right) \cdot \sqrt[3]{k}\right)}}^{m}}{\sqrt{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot \sqrt{\mathsf{fma}\left(k, 10 + k, 1\right)}}\]
    9. Applied unpow-prod-down5.5

      \[\leadsto a \cdot \frac{\color{blue}{{\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)}^{m} \cdot {\left(\sqrt[3]{k}\right)}^{m}}}{\sqrt{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot \sqrt{\mathsf{fma}\left(k, 10 + k, 1\right)}}\]
    10. Applied times-frac5.6

      \[\leadsto a \cdot \color{blue}{\left(\frac{{\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)}^{m}}{\sqrt{\mathsf{fma}\left(k, 10 + k, 1\right)}} \cdot \frac{{\left(\sqrt[3]{k}\right)}^{m}}{\sqrt{\mathsf{fma}\left(k, 10 + k, 1\right)}}\right)}\]
    11. Taylor expanded around inf 5.5

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;k \le 5685825.4711496271193027496337890625:\\ \;\;\;\;a \cdot \frac{{k}^{m}}{\mathsf{fma}\left(k, 10 + k, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{a \cdot {\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}}{k}, \frac{{\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m}}{k}, \frac{{\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m} \cdot \left(a \cdot {\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}\right)}{k \cdot k} \cdot \left(\frac{99}{k \cdot k} - \frac{10}{k}\right)\right)\\ \end{array}\]

Reproduce

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