Average Error: 2.0 → 0.1
Time: 4.9s
Precision: 64
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\begin{array}{l} \mathbf{if}\;k \le 2.583856803657129482688066545879336071702 \cdot 10^{140}:\\ \;\;\;\;\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 2.583856803657129482688066545879336071702 \cdot 10^{140}:\\
\;\;\;\;\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 r239746 = a;
        double r239747 = k;
        double r239748 = m;
        double r239749 = pow(r239747, r239748);
        double r239750 = r239746 * r239749;
        double r239751 = 1.0;
        double r239752 = 10.0;
        double r239753 = r239752 * r239747;
        double r239754 = r239751 + r239753;
        double r239755 = r239747 * r239747;
        double r239756 = r239754 + r239755;
        double r239757 = r239750 / r239756;
        return r239757;
}

double f(double a, double k, double m) {
        double r239758 = k;
        double r239759 = 2.5838568036571295e+140;
        bool r239760 = r239758 <= r239759;
        double r239761 = a;
        double r239762 = m;
        double r239763 = pow(r239758, r239762);
        double r239764 = r239761 * r239763;
        double r239765 = 1.0;
        double r239766 = 10.0;
        double r239767 = r239758 * r239758;
        double r239768 = fma(r239766, r239758, r239767);
        double r239769 = r239765 + r239768;
        double r239770 = r239764 / r239769;
        double r239771 = -1.0;
        double r239772 = 1.0;
        double r239773 = r239772 / r239758;
        double r239774 = log(r239773);
        double r239775 = r239762 * r239774;
        double r239776 = r239771 * r239775;
        double r239777 = exp(r239776);
        double r239778 = r239777 / r239758;
        double r239779 = r239761 / r239758;
        double r239780 = 99.0;
        double r239781 = r239761 * r239777;
        double r239782 = 4.0;
        double r239783 = pow(r239758, r239782);
        double r239784 = r239781 / r239783;
        double r239785 = r239780 * r239784;
        double r239786 = 3.0;
        double r239787 = pow(r239758, r239786);
        double r239788 = r239781 / r239787;
        double r239789 = r239766 * r239788;
        double r239790 = r239785 - r239789;
        double r239791 = fma(r239778, r239779, r239790);
        double r239792 = r239760 ? r239770 : r239791;
        return r239792;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 2.5838568036571295e+140

    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 2.5838568036571295e+140 < k

    1. Initial program 9.6

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

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