Average Error: 2.0 → 0.2
Time: 15.4s
Precision: 64
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\begin{array}{l} \mathbf{if}\;k \le 20048275272.014377593994140625:\\ \;\;\;\;\frac{1}{\frac{\mathsf{fma}\left(k, 10 + k, 1\right)}{a \cdot {k}^{m}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(\frac{10}{{\left(\frac{1}{k}\right)}^{\left(-m\right)}}, \frac{k}{a}, \mathsf{fma}\left(\frac{k}{a}, \frac{k}{{\left(\frac{1}{k}\right)}^{\left(-m\right)}}, \frac{\frac{1}{a}}{{\left(\frac{1}{k}\right)}^{\left(-m\right)}}\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 20048275272.014377593994140625:\\
\;\;\;\;\frac{1}{\frac{\mathsf{fma}\left(k, 10 + k, 1\right)}{a \cdot {k}^{m}}}\\

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

\end{array}
double f(double a, double k, double m) {
        double r218254 = a;
        double r218255 = k;
        double r218256 = m;
        double r218257 = pow(r218255, r218256);
        double r218258 = r218254 * r218257;
        double r218259 = 1.0;
        double r218260 = 10.0;
        double r218261 = r218260 * r218255;
        double r218262 = r218259 + r218261;
        double r218263 = r218255 * r218255;
        double r218264 = r218262 + r218263;
        double r218265 = r218258 / r218264;
        return r218265;
}

double f(double a, double k, double m) {
        double r218266 = k;
        double r218267 = 20048275272.014378;
        bool r218268 = r218266 <= r218267;
        double r218269 = 1.0;
        double r218270 = 10.0;
        double r218271 = r218270 + r218266;
        double r218272 = 1.0;
        double r218273 = fma(r218266, r218271, r218272);
        double r218274 = a;
        double r218275 = m;
        double r218276 = pow(r218266, r218275);
        double r218277 = r218274 * r218276;
        double r218278 = r218273 / r218277;
        double r218279 = r218269 / r218278;
        double r218280 = r218269 / r218266;
        double r218281 = -r218275;
        double r218282 = pow(r218280, r218281);
        double r218283 = r218270 / r218282;
        double r218284 = r218266 / r218274;
        double r218285 = r218266 / r218282;
        double r218286 = r218272 / r218274;
        double r218287 = r218286 / r218282;
        double r218288 = fma(r218284, r218285, r218287);
        double r218289 = fma(r218283, r218284, r218288);
        double r218290 = r218269 / r218289;
        double r218291 = r218268 ? r218279 : r218290;
        return r218291;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 20048275272.014378

    1. Initial program 0.0

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

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

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

    if 20048275272.014378 < k

    1. Initial program 5.2

      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    2. Using strategy rm
    3. Applied clear-num5.5

      \[\leadsto \color{blue}{\frac{1}{\frac{\left(1 + 10 \cdot k\right) + k \cdot k}{a \cdot {k}^{m}}}}\]
    4. Simplified5.5

      \[\leadsto \frac{1}{\color{blue}{\frac{\mathsf{fma}\left(k, 10 + k, 1\right)}{a \cdot {k}^{m}}}}\]
    5. Taylor expanded around inf 5.5

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

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

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

Reproduce

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