Average Error: 2.1 → 0.2
Time: 22.8s
Precision: 64
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\begin{array}{l} \mathbf{if}\;k \le 2.3152997001546612 \cdot 10^{+128}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(\left(k + 10\right), k, 1\right)} \cdot \left({k}^{m} \cdot a\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{99}{k \cdot k} - \frac{10}{k}\right) \cdot \frac{e^{\log k \cdot m}}{\frac{k}{\frac{a}{k}}} + \frac{e^{\log k \cdot m}}{\frac{k}{\frac{a}{k}}}\\ \end{array}\]
\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}
\begin{array}{l}
\mathbf{if}\;k \le 2.3152997001546612 \cdot 10^{+128}:\\
\;\;\;\;\frac{1}{\mathsf{fma}\left(\left(k + 10\right), k, 1\right)} \cdot \left({k}^{m} \cdot a\right)\\

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

\end{array}
double f(double a, double k, double m) {
        double r6959251 = a;
        double r6959252 = k;
        double r6959253 = m;
        double r6959254 = pow(r6959252, r6959253);
        double r6959255 = r6959251 * r6959254;
        double r6959256 = 1.0;
        double r6959257 = 10.0;
        double r6959258 = r6959257 * r6959252;
        double r6959259 = r6959256 + r6959258;
        double r6959260 = r6959252 * r6959252;
        double r6959261 = r6959259 + r6959260;
        double r6959262 = r6959255 / r6959261;
        return r6959262;
}

double f(double a, double k, double m) {
        double r6959263 = k;
        double r6959264 = 2.3152997001546612e+128;
        bool r6959265 = r6959263 <= r6959264;
        double r6959266 = 1.0;
        double r6959267 = 10.0;
        double r6959268 = r6959263 + r6959267;
        double r6959269 = fma(r6959268, r6959263, r6959266);
        double r6959270 = r6959266 / r6959269;
        double r6959271 = m;
        double r6959272 = pow(r6959263, r6959271);
        double r6959273 = a;
        double r6959274 = r6959272 * r6959273;
        double r6959275 = r6959270 * r6959274;
        double r6959276 = 99.0;
        double r6959277 = r6959263 * r6959263;
        double r6959278 = r6959276 / r6959277;
        double r6959279 = r6959267 / r6959263;
        double r6959280 = r6959278 - r6959279;
        double r6959281 = log(r6959263);
        double r6959282 = r6959281 * r6959271;
        double r6959283 = exp(r6959282);
        double r6959284 = r6959273 / r6959263;
        double r6959285 = r6959263 / r6959284;
        double r6959286 = r6959283 / r6959285;
        double r6959287 = r6959280 * r6959286;
        double r6959288 = r6959287 + r6959286;
        double r6959289 = r6959265 ? r6959275 : r6959288;
        return r6959289;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 2.3152997001546612e+128

    1. Initial program 0.1

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

      \[\leadsto \color{blue}{\frac{{k}^{m} \cdot a}{\mathsf{fma}\left(\left(k + 10\right), k, 1\right)}}\]
    3. Using strategy rm
    4. Applied *-un-lft-identity0.1

      \[\leadsto \frac{{k}^{m} \cdot \color{blue}{\left(1 \cdot a\right)}}{\mathsf{fma}\left(\left(k + 10\right), k, 1\right)}\]
    5. Applied associate-*r*0.1

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

      \[\leadsto \frac{\color{blue}{{k}^{m}} \cdot a}{\mathsf{fma}\left(\left(k + 10\right), k, 1\right)}\]
    7. Using strategy rm
    8. Applied div-inv0.1

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

    if 2.3152997001546612e+128 < k

    1. Initial program 8.9

      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    2. Simplified8.9

      \[\leadsto \color{blue}{\frac{{k}^{m} \cdot a}{\mathsf{fma}\left(\left(k + 10\right), k, 1\right)}}\]
    3. Using strategy rm
    4. Applied *-un-lft-identity8.9

      \[\leadsto \frac{{k}^{m} \cdot \color{blue}{\left(1 \cdot a\right)}}{\mathsf{fma}\left(\left(k + 10\right), k, 1\right)}\]
    5. Applied associate-*r*8.9

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

      \[\leadsto \frac{\color{blue}{{k}^{m}} \cdot a}{\mathsf{fma}\left(\left(k + 10\right), k, 1\right)}\]
    7. Taylor expanded around -inf 63.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}}}\]
    8. Simplified0.5

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

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

Reproduce

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