Average Error: 2.1 → 0.1
Time: 6.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.8029813469456922 \cdot 10^{38}:\\ \;\;\;\;\left(\left(a \cdot {\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)}^{m}\right) \cdot {\left(\sqrt[3]{k}\right)}^{m}\right) \cdot \frac{2}{\mathsf{fma}\left(k, k, \mathsf{fma}\left(k, 10, 1\right)\right) \cdot 2}\\ \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.8029813469456922 \cdot 10^{38}:\\
\;\;\;\;\left(\left(a \cdot {\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)}^{m}\right) \cdot {\left(\sqrt[3]{k}\right)}^{m}\right) \cdot \frac{2}{\mathsf{fma}\left(k, k, \mathsf{fma}\left(k, 10, 1\right)\right) \cdot 2}\\

\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 r259152 = a;
        double r259153 = k;
        double r259154 = m;
        double r259155 = pow(r259153, r259154);
        double r259156 = r259152 * r259155;
        double r259157 = 1.0;
        double r259158 = 10.0;
        double r259159 = r259158 * r259153;
        double r259160 = r259157 + r259159;
        double r259161 = r259153 * r259153;
        double r259162 = r259160 + r259161;
        double r259163 = r259156 / r259162;
        return r259163;
}

double f(double a, double k, double m) {
        double r259164 = k;
        double r259165 = 1.8029813469456922e+38;
        bool r259166 = r259164 <= r259165;
        double r259167 = a;
        double r259168 = cbrt(r259164);
        double r259169 = r259168 * r259168;
        double r259170 = m;
        double r259171 = pow(r259169, r259170);
        double r259172 = r259167 * r259171;
        double r259173 = pow(r259168, r259170);
        double r259174 = r259172 * r259173;
        double r259175 = 2.0;
        double r259176 = 10.0;
        double r259177 = 1.0;
        double r259178 = fma(r259164, r259176, r259177);
        double r259179 = fma(r259164, r259164, r259178);
        double r259180 = r259179 * r259175;
        double r259181 = r259175 / r259180;
        double r259182 = r259174 * r259181;
        double r259183 = -1.0;
        double r259184 = 1.0;
        double r259185 = r259184 / r259164;
        double r259186 = log(r259185);
        double r259187 = r259170 * r259186;
        double r259188 = r259183 * r259187;
        double r259189 = exp(r259188);
        double r259190 = r259189 / r259164;
        double r259191 = r259167 / r259164;
        double r259192 = 99.0;
        double r259193 = r259167 * r259189;
        double r259194 = 4.0;
        double r259195 = pow(r259164, r259194);
        double r259196 = r259193 / r259195;
        double r259197 = r259192 * r259196;
        double r259198 = 3.0;
        double r259199 = pow(r259164, r259198);
        double r259200 = r259193 / r259199;
        double r259201 = r259176 * r259200;
        double r259202 = r259197 - r259201;
        double r259203 = fma(r259190, r259191, r259202);
        double r259204 = r259166 ? r259182 : r259203;
        return r259204;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 1.8029813469456922e+38

    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 div-inv0.1

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

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

    if 1.8029813469456922e+38 < k

    1. Initial program 6.1

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

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