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

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

\end{array}
double f(double a, double k, double m) {
        double r348724 = a;
        double r348725 = k;
        double r348726 = m;
        double r348727 = pow(r348725, r348726);
        double r348728 = r348724 * r348727;
        double r348729 = 1.0;
        double r348730 = 10.0;
        double r348731 = r348730 * r348725;
        double r348732 = r348729 + r348731;
        double r348733 = r348725 * r348725;
        double r348734 = r348732 + r348733;
        double r348735 = r348728 / r348734;
        return r348735;
}

double f(double a, double k, double m) {
        double r348736 = k;
        double r348737 = 1.901191420895441e+53;
        bool r348738 = r348736 <= r348737;
        double r348739 = a;
        double r348740 = m;
        double r348741 = pow(r348736, r348740);
        double r348742 = r348739 * r348741;
        double r348743 = 1.0;
        double r348744 = 10.0;
        double r348745 = r348736 * r348736;
        double r348746 = fma(r348744, r348736, r348745);
        double r348747 = r348743 + r348746;
        double r348748 = r348742 / r348747;
        double r348749 = -1.0;
        double r348750 = 1.0;
        double r348751 = r348750 / r348736;
        double r348752 = log(r348751);
        double r348753 = r348740 * r348752;
        double r348754 = r348749 * r348753;
        double r348755 = exp(r348754);
        double r348756 = r348755 / r348736;
        double r348757 = r348739 / r348736;
        double r348758 = 99.0;
        double r348759 = r348739 * r348755;
        double r348760 = 4.0;
        double r348761 = pow(r348736, r348760);
        double r348762 = r348759 / r348761;
        double r348763 = r348758 * r348762;
        double r348764 = 3.0;
        double r348765 = pow(r348736, r348764);
        double r348766 = r348759 / r348765;
        double r348767 = r348744 * r348766;
        double r348768 = r348763 - r348767;
        double r348769 = fma(r348756, r348757, r348768);
        double r348770 = r348738 ? r348748 : r348769;
        return r348770;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 1.901191420895441e+53

    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 associate-+l+0.1

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

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

    if 1.901191420895441e+53 < k

    1. Initial program 6.5

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

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

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

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

Reproduce

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