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

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

\end{array}
double f(double a, double k, double m) {
        double r72619373 = a;
        double r72619374 = k;
        double r72619375 = m;
        double r72619376 = pow(r72619374, r72619375);
        double r72619377 = r72619373 * r72619376;
        double r72619378 = 1.0;
        double r72619379 = 10.0;
        double r72619380 = r72619379 * r72619374;
        double r72619381 = r72619378 + r72619380;
        double r72619382 = r72619374 * r72619374;
        double r72619383 = r72619381 + r72619382;
        double r72619384 = r72619377 / r72619383;
        return r72619384;
}

double f(double a, double k, double m) {
        double r72619385 = k;
        double r72619386 = 7.280096768080244e+135;
        bool r72619387 = r72619385 <= r72619386;
        double r72619388 = m;
        double r72619389 = 2.0;
        double r72619390 = r72619388 / r72619389;
        double r72619391 = pow(r72619385, r72619390);
        double r72619392 = a;
        double r72619393 = r72619392 * r72619391;
        double r72619394 = r72619391 * r72619393;
        double r72619395 = 1.0;
        double r72619396 = 10.0;
        double r72619397 = r72619385 + r72619396;
        double r72619398 = fma(r72619397, r72619385, r72619395);
        double r72619399 = sqrt(r72619398);
        double r72619400 = r72619395 / r72619399;
        double r72619401 = r72619400 / r72619399;
        double r72619402 = r72619394 * r72619401;
        double r72619403 = 99.0;
        double r72619404 = r72619385 * r72619385;
        double r72619405 = r72619403 / r72619404;
        double r72619406 = 0.5;
        double r72619407 = log(r72619385);
        double r72619408 = r72619406 * r72619407;
        double r72619409 = r72619388 * r72619408;
        double r72619410 = exp(r72619409);
        double r72619411 = r72619410 * r72619410;
        double r72619412 = r72619385 / r72619392;
        double r72619413 = r72619412 * r72619385;
        double r72619414 = r72619411 / r72619413;
        double r72619415 = r72619414 / r72619385;
        double r72619416 = -10.0;
        double r72619417 = r72619415 * r72619416;
        double r72619418 = r72619417 + r72619414;
        double r72619419 = fma(r72619405, r72619414, r72619418);
        double r72619420 = r72619387 ? r72619402 : r72619419;
        return r72619420;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 7.280096768080244e+135

    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 sqr-pow0.1

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

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

      \[\leadsto \color{blue}{\left({k}^{\left(\frac{m}{2}\right)} \cdot \left({k}^{\left(\frac{m}{2}\right)} \cdot a\right)\right) \cdot \frac{1}{\mathsf{fma}\left(\left(k + 10\right), k, 1\right)}}\]
    8. Using strategy rm
    9. Applied add-sqr-sqrt0.1

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

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

    if 7.280096768080244e+135 < k

    1. Initial program 10.6

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

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

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

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

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

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

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

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

Reproduce

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