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

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

\end{array}
double f(double a, double k, double m) {
        double r233445 = a;
        double r233446 = k;
        double r233447 = m;
        double r233448 = pow(r233446, r233447);
        double r233449 = r233445 * r233448;
        double r233450 = 1.0;
        double r233451 = 10.0;
        double r233452 = r233451 * r233446;
        double r233453 = r233450 + r233452;
        double r233454 = r233446 * r233446;
        double r233455 = r233453 + r233454;
        double r233456 = r233449 / r233455;
        return r233456;
}

double f(double a, double k, double m) {
        double r233457 = k;
        double r233458 = 2.644804131784438e+130;
        bool r233459 = r233457 <= r233458;
        double r233460 = cbrt(r233457);
        double r233461 = m;
        double r233462 = pow(r233460, r233461);
        double r233463 = a;
        double r233464 = r233460 * r233460;
        double r233465 = pow(r233464, r233461);
        double r233466 = r233463 * r233465;
        double r233467 = r233462 * r233466;
        double r233468 = 10.0;
        double r233469 = r233468 * r233457;
        double r233470 = 1.0;
        double r233471 = r233469 + r233470;
        double r233472 = r233457 * r233457;
        double r233473 = r233471 + r233472;
        double r233474 = r233467 / r233473;
        double r233475 = 1.0;
        double r233476 = r233475 / r233457;
        double r233477 = -r233461;
        double r233478 = pow(r233476, r233477);
        double r233479 = -r233478;
        double r233480 = 3.0;
        double r233481 = pow(r233457, r233480);
        double r233482 = r233481 / r233463;
        double r233483 = r233479 / r233482;
        double r233484 = r233463 / r233457;
        double r233485 = r233478 / r233457;
        double r233486 = r233478 * r233463;
        double r233487 = 4.0;
        double r233488 = pow(r233457, r233487);
        double r233489 = r233486 / r233488;
        double r233490 = 99.0;
        double r233491 = r233489 * r233490;
        double r233492 = fma(r233484, r233485, r233491);
        double r233493 = fma(r233483, r233468, r233492);
        double r233494 = r233459 ? r233474 : r233493;
        return r233494;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 2.644804131784438e+130

    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 add-cube-cbrt0.1

      \[\leadsto \frac{a \cdot {\color{blue}{\left(\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right) \cdot \sqrt[3]{k}\right)}}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    4. Applied unpow-prod-down0.1

      \[\leadsto \frac{a \cdot \color{blue}{\left({\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)}^{m} \cdot {\left(\sqrt[3]{k}\right)}^{m}\right)}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    5. Applied associate-*r*0.1

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

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

    if 2.644804131784438e+130 < k

    1. Initial program 8.2

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

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

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

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

Reproduce

herbie shell --seed 2019179 +o rules:numerics
(FPCore (a k m)
  :name "Falkner and Boettcher, Appendix A"
  (/ (* a (pow k m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))