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

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

\end{array}
double f(double a, double k, double m) {
        double r240343 = a;
        double r240344 = k;
        double r240345 = m;
        double r240346 = pow(r240344, r240345);
        double r240347 = r240343 * r240346;
        double r240348 = 1.0;
        double r240349 = 10.0;
        double r240350 = r240349 * r240344;
        double r240351 = r240348 + r240350;
        double r240352 = r240344 * r240344;
        double r240353 = r240351 + r240352;
        double r240354 = r240347 / r240353;
        return r240354;
}

double f(double a, double k, double m) {
        double r240355 = k;
        double r240356 = 1.0194990514889945e+135;
        bool r240357 = r240355 <= r240356;
        double r240358 = a;
        double r240359 = 10.0;
        double r240360 = r240359 + r240355;
        double r240361 = 1.0;
        double r240362 = fma(r240355, r240360, r240361);
        double r240363 = m;
        double r240364 = pow(r240355, r240363);
        double r240365 = r240362 / r240364;
        double r240366 = r240358 / r240365;
        double r240367 = 1.0;
        double r240368 = r240355 / r240358;
        double r240369 = r240367 / r240355;
        double r240370 = -r240363;
        double r240371 = pow(r240369, r240370);
        double r240372 = r240355 / r240371;
        double r240373 = pow(r240355, r240370);
        double r240374 = r240373 / r240358;
        double r240375 = r240359 / r240358;
        double r240376 = r240375 * r240372;
        double r240377 = fma(r240361, r240374, r240376);
        double r240378 = fma(r240368, r240372, r240377);
        double r240379 = r240367 / r240378;
        double r240380 = r240357 ? r240366 : r240379;
        return r240380;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 1.0194990514889945e+135

    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}}}}\]

    if 1.0194990514889945e+135 < k

    1. Initial program 9.5

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

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

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

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

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

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

Reproduce

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