Average Error: 2.2 → 0.1
Time: 10.0s
Precision: 64
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\begin{array}{l} \mathbf{if}\;k \le 1.8129058405319809 \cdot 10^{106}:\\ \;\;\;\;\frac{a \cdot {\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)}^{m}}{\frac{\left(1 + 10 \cdot k\right) + k \cdot k}{{\left(\sqrt[3]{k}\right)}^{m}}}\\ \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 1.8129058405319809 \cdot 10^{106}:\\
\;\;\;\;\frac{a \cdot {\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)}^{m}}{\frac{\left(1 + 10 \cdot k\right) + k \cdot k}{{\left(\sqrt[3]{k}\right)}^{m}}}\\

\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 r309240 = a;
        double r309241 = k;
        double r309242 = m;
        double r309243 = pow(r309241, r309242);
        double r309244 = r309240 * r309243;
        double r309245 = 1.0;
        double r309246 = 10.0;
        double r309247 = r309246 * r309241;
        double r309248 = r309245 + r309247;
        double r309249 = r309241 * r309241;
        double r309250 = r309248 + r309249;
        double r309251 = r309244 / r309250;
        return r309251;
}

double f(double a, double k, double m) {
        double r309252 = k;
        double r309253 = 1.812905840531981e+106;
        bool r309254 = r309252 <= r309253;
        double r309255 = a;
        double r309256 = cbrt(r309252);
        double r309257 = r309256 * r309256;
        double r309258 = m;
        double r309259 = pow(r309257, r309258);
        double r309260 = r309255 * r309259;
        double r309261 = 1.0;
        double r309262 = 10.0;
        double r309263 = r309262 * r309252;
        double r309264 = r309261 + r309263;
        double r309265 = r309252 * r309252;
        double r309266 = r309264 + r309265;
        double r309267 = pow(r309256, r309258);
        double r309268 = r309266 / r309267;
        double r309269 = r309260 / r309268;
        double r309270 = -1.0;
        double r309271 = 1.0;
        double r309272 = r309271 / r309252;
        double r309273 = log(r309272);
        double r309274 = r309258 * r309273;
        double r309275 = r309270 * r309274;
        double r309276 = exp(r309275);
        double r309277 = r309276 / r309252;
        double r309278 = r309255 / r309252;
        double r309279 = 99.0;
        double r309280 = r309255 * r309276;
        double r309281 = 4.0;
        double r309282 = pow(r309252, r309281);
        double r309283 = r309280 / r309282;
        double r309284 = r309279 * r309283;
        double r309285 = 3.0;
        double r309286 = pow(r309252, r309285);
        double r309287 = r309280 / r309286;
        double r309288 = r309262 * r309287;
        double r309289 = r309284 - r309288;
        double r309290 = fma(r309277, r309278, r309289);
        double r309291 = r309254 ? r309269 : r309290;
        return r309291;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 1.812905840531981e+106

    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. Using strategy rm
    7. Applied associate-/l*0.1

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

    if 1.812905840531981e+106 < k

    1. Initial program 8.6

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

      \[\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 1.8129058405319809 \cdot 10^{106}:\\ \;\;\;\;\frac{a \cdot {\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)}^{m}}{\frac{\left(1 + 10 \cdot k\right) + k \cdot k}{{\left(\sqrt[3]{k}\right)}^{m}}}\\ \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 2020056 +o rules:numerics
(FPCore (a k m)
  :name "Falkner and Boettcher, Appendix A"
  :precision binary64
  (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))