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

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

\end{array}
double f(double a, double k, double m) {
        double r190123 = a;
        double r190124 = k;
        double r190125 = m;
        double r190126 = pow(r190124, r190125);
        double r190127 = r190123 * r190126;
        double r190128 = 1.0;
        double r190129 = 10.0;
        double r190130 = r190129 * r190124;
        double r190131 = r190128 + r190130;
        double r190132 = r190124 * r190124;
        double r190133 = r190131 + r190132;
        double r190134 = r190127 / r190133;
        return r190134;
}

double f(double a, double k, double m) {
        double r190135 = k;
        double r190136 = 5.978361395410556e+138;
        bool r190137 = r190135 <= r190136;
        double r190138 = a;
        double r190139 = cbrt(r190135);
        double r190140 = r190139 * r190139;
        double r190141 = m;
        double r190142 = pow(r190140, r190141);
        double r190143 = r190138 * r190142;
        double r190144 = pow(r190139, r190141);
        double r190145 = r190143 * r190144;
        double r190146 = 1.0;
        double r190147 = 10.0;
        double r190148 = r190147 * r190135;
        double r190149 = r190146 + r190148;
        double r190150 = r190135 * r190135;
        double r190151 = r190149 + r190150;
        double r190152 = r190145 / r190151;
        double r190153 = r190138 / r190135;
        double r190154 = exp(r190141);
        double r190155 = log(r190135);
        double r190156 = pow(r190154, r190155);
        double r190157 = r190156 / r190135;
        double r190158 = 3.0;
        double r190159 = pow(r190135, r190158);
        double r190160 = r190159 / r190138;
        double r190161 = r190156 / r190160;
        double r190162 = 99.0;
        double r190163 = r190162 / r190135;
        double r190164 = r190163 - r190147;
        double r190165 = r190161 * r190164;
        double r190166 = fma(r190153, r190157, r190165);
        double r190167 = r190137 ? r190152 : r190166;
        return r190167;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 5.978361395410556e+138

    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 5.978361395410556e+138 < k

    1. Initial program 10.7

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;k \le 5.978361395410556472428743156224032900354 \cdot 10^{138}:\\ \;\;\;\;\frac{\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}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{a}{k}, \frac{{\left(e^{m}\right)}^{\left(\log k\right)}}{k}, \frac{{\left(e^{m}\right)}^{\left(\log k\right)}}{\frac{{k}^{3}}{a}} \cdot \left(\frac{99}{k} - 10\right)\right)\\ \end{array}\]

Reproduce

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