Average Error: 2.0 → 0.1
Time: 1.2m
Precision: 64
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\begin{array}{l} \mathbf{if}\;k \le 1.3601387289399805 \cdot 10^{+100}:\\ \;\;\;\;\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}:\\ \;\;\;\;(\left(\frac{\frac{a}{k}}{k}\right) \cdot \left({\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m} \cdot {\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}\right) + \left((99 \cdot \left(\frac{a}{\left(k \cdot k\right) \cdot \left(k \cdot k\right)} \cdot \left({\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m} \cdot {\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}\right)\right) + \left(\frac{\frac{-10 \cdot \left(a \cdot \left({\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m} \cdot {\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}\right)\right)}{k \cdot k}}{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 1.3601387289399805 \cdot 10^{+100}:\\
\;\;\;\;\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}:\\
\;\;\;\;(\left(\frac{\frac{a}{k}}{k}\right) \cdot \left({\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m} \cdot {\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}\right) + \left((99 \cdot \left(\frac{a}{\left(k \cdot k\right) \cdot \left(k \cdot k\right)} \cdot \left({\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m} \cdot {\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}\right)\right) + \left(\frac{\frac{-10 \cdot \left(a \cdot \left({\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m} \cdot {\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}\right)\right)}{k \cdot k}}{k}\right))_*\right))_*\\

\end{array}
double f(double a, double k, double m) {
        double r41987039 = a;
        double r41987040 = k;
        double r41987041 = m;
        double r41987042 = pow(r41987040, r41987041);
        double r41987043 = r41987039 * r41987042;
        double r41987044 = 1.0;
        double r41987045 = 10.0;
        double r41987046 = r41987045 * r41987040;
        double r41987047 = r41987044 + r41987046;
        double r41987048 = r41987040 * r41987040;
        double r41987049 = r41987047 + r41987048;
        double r41987050 = r41987043 / r41987049;
        return r41987050;
}

double f(double a, double k, double m) {
        double r41987051 = k;
        double r41987052 = 1.3601387289399805e+100;
        bool r41987053 = r41987051 <= r41987052;
        double r41987054 = cbrt(r41987051);
        double r41987055 = m;
        double r41987056 = pow(r41987054, r41987055);
        double r41987057 = a;
        double r41987058 = r41987054 * r41987054;
        double r41987059 = pow(r41987058, r41987055);
        double r41987060 = r41987057 * r41987059;
        double r41987061 = r41987056 * r41987060;
        double r41987062 = 10.0;
        double r41987063 = r41987062 * r41987051;
        double r41987064 = 1.0;
        double r41987065 = r41987063 + r41987064;
        double r41987066 = r41987051 * r41987051;
        double r41987067 = r41987065 + r41987066;
        double r41987068 = r41987061 / r41987067;
        double r41987069 = r41987057 / r41987051;
        double r41987070 = r41987069 / r41987051;
        double r41987071 = r41987064 / r41987051;
        double r41987072 = -0.6666666666666666;
        double r41987073 = pow(r41987071, r41987072);
        double r41987074 = pow(r41987073, r41987055);
        double r41987075 = -0.3333333333333333;
        double r41987076 = pow(r41987071, r41987075);
        double r41987077 = pow(r41987076, r41987055);
        double r41987078 = r41987074 * r41987077;
        double r41987079 = 99.0;
        double r41987080 = r41987066 * r41987066;
        double r41987081 = r41987057 / r41987080;
        double r41987082 = r41987081 * r41987078;
        double r41987083 = -10.0;
        double r41987084 = r41987057 * r41987078;
        double r41987085 = r41987083 * r41987084;
        double r41987086 = r41987085 / r41987066;
        double r41987087 = r41987086 / r41987051;
        double r41987088 = fma(r41987079, r41987082, r41987087);
        double r41987089 = fma(r41987070, r41987078, r41987088);
        double r41987090 = r41987053 ? r41987068 : r41987089;
        return r41987090;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 1.3601387289399805e+100

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

    if 1.3601387289399805e+100 < k

    1. Initial program 7.7

      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt7.7

      \[\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-down7.7

      \[\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*7.7

      \[\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. Taylor expanded around inf 7.7

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;k \le 1.3601387289399805 \cdot 10^{+100}:\\ \;\;\;\;\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}:\\ \;\;\;\;(\left(\frac{\frac{a}{k}}{k}\right) \cdot \left({\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m} \cdot {\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}\right) + \left((99 \cdot \left(\frac{a}{\left(k \cdot k\right) \cdot \left(k \cdot k\right)} \cdot \left({\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m} \cdot {\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}\right)\right) + \left(\frac{\frac{-10 \cdot \left(a \cdot \left({\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m} \cdot {\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}\right)\right)}{k \cdot k}}{k}\right))_*\right))_*\\ \end{array}\]

Reproduce

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