Average Error: 1.8 → 0.1
Time: 6.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.17639469941438882 \cdot 10^{52}:\\ \;\;\;\;a \cdot \frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\\ \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.17639469941438882 \cdot 10^{52}:\\
\;\;\;\;a \cdot \frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\\

\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 r273673 = a;
        double r273674 = k;
        double r273675 = m;
        double r273676 = pow(r273674, r273675);
        double r273677 = r273673 * r273676;
        double r273678 = 1.0;
        double r273679 = 10.0;
        double r273680 = r273679 * r273674;
        double r273681 = r273678 + r273680;
        double r273682 = r273674 * r273674;
        double r273683 = r273681 + r273682;
        double r273684 = r273677 / r273683;
        return r273684;
}

double f(double a, double k, double m) {
        double r273685 = k;
        double r273686 = 1.1763946994143888e+52;
        bool r273687 = r273685 <= r273686;
        double r273688 = a;
        double r273689 = m;
        double r273690 = pow(r273685, r273689);
        double r273691 = 1.0;
        double r273692 = 10.0;
        double r273693 = r273692 * r273685;
        double r273694 = r273691 + r273693;
        double r273695 = r273685 * r273685;
        double r273696 = r273694 + r273695;
        double r273697 = r273690 / r273696;
        double r273698 = r273688 * r273697;
        double r273699 = -1.0;
        double r273700 = 1.0;
        double r273701 = r273700 / r273685;
        double r273702 = log(r273701);
        double r273703 = r273689 * r273702;
        double r273704 = r273699 * r273703;
        double r273705 = exp(r273704);
        double r273706 = r273705 / r273685;
        double r273707 = r273688 / r273685;
        double r273708 = 99.0;
        double r273709 = r273688 * r273705;
        double r273710 = 4.0;
        double r273711 = pow(r273685, r273710);
        double r273712 = r273709 / r273711;
        double r273713 = r273708 * r273712;
        double r273714 = 3.0;
        double r273715 = pow(r273685, r273714);
        double r273716 = r273709 / r273715;
        double r273717 = r273692 * r273716;
        double r273718 = r273713 - r273717;
        double r273719 = fma(r273706, r273707, r273718);
        double r273720 = r273687 ? r273698 : r273719;
        return r273720;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 1.1763946994143888e+52

    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 *-un-lft-identity0.1

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

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

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

    if 1.1763946994143888e+52 < k

    1. Initial program 5.7

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

      \[\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.2

      \[\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.17639469941438882 \cdot 10^{52}:\\ \;\;\;\;a \cdot \frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\\ \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 2020089 +o rules:numerics
(FPCore (a k m)
  :name "Falkner and Boettcher, Appendix A"
  :precision binary64
  (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))