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

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

\end{array}
double f(double a, double k, double m) {
        double r58574644 = a;
        double r58574645 = k;
        double r58574646 = m;
        double r58574647 = pow(r58574645, r58574646);
        double r58574648 = r58574644 * r58574647;
        double r58574649 = 1.0;
        double r58574650 = 10.0;
        double r58574651 = r58574650 * r58574645;
        double r58574652 = r58574649 + r58574651;
        double r58574653 = r58574645 * r58574645;
        double r58574654 = r58574652 + r58574653;
        double r58574655 = r58574648 / r58574654;
        return r58574655;
}

double f(double a, double k, double m) {
        double r58574656 = k;
        double r58574657 = 5.2060704187408647e+144;
        bool r58574658 = r58574656 <= r58574657;
        double r58574659 = a;
        double r58574660 = 10.0;
        double r58574661 = r58574660 + r58574656;
        double r58574662 = 1.0;
        double r58574663 = fma(r58574661, r58574656, r58574662);
        double r58574664 = sqrt(r58574663);
        double r58574665 = r58574659 / r58574664;
        double r58574666 = m;
        double r58574667 = pow(r58574656, r58574666);
        double r58574668 = r58574667 / r58574664;
        double r58574669 = r58574665 * r58574668;
        double r58574670 = r58574656 / r58574659;
        double r58574671 = r58574662 / r58574659;
        double r58574672 = fma(r58574670, r58574656, r58574671);
        double r58574673 = fma(r58574660, r58574670, r58574672);
        double r58574674 = r58574667 / r58574673;
        double r58574675 = r58574658 ? r58574669 : r58574674;
        return r58574675;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 5.2060704187408647e+144

    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 add-sqr-sqrt0.1

      \[\leadsto \frac{{k}^{m} \cdot a}{\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)}}}\]
    5. Applied times-frac0.2

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

    if 5.2060704187408647e+144 < k

    1. Initial program 10.2

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

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

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

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

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

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

Reproduce

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