Average Error: 2.1 → 0.1
Time: 17.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.203223085012966589319145584458156967174 \cdot 10^{130}:\\ \;\;\;\;\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{{\left(\frac{1}{k}\right)}^{\left(-m\right)}}{k}, \frac{a}{k}, \mathsf{fma}\left(\frac{{\left(\frac{1}{k}\right)}^{\left(-m\right)} \cdot a}{{k}^{4}}, 99, -\frac{10 \cdot a}{\frac{{k}^{3}}{{\left(\frac{1}{k}\right)}^{\left(-m\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 2.203223085012966589319145584458156967174 \cdot 10^{130}:\\
\;\;\;\;\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\\

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

\end{array}
double f(double a, double k, double m) {
        double r147684 = a;
        double r147685 = k;
        double r147686 = m;
        double r147687 = pow(r147685, r147686);
        double r147688 = r147684 * r147687;
        double r147689 = 1.0;
        double r147690 = 10.0;
        double r147691 = r147690 * r147685;
        double r147692 = r147689 + r147691;
        double r147693 = r147685 * r147685;
        double r147694 = r147692 + r147693;
        double r147695 = r147688 / r147694;
        return r147695;
}

double f(double a, double k, double m) {
        double r147696 = k;
        double r147697 = 2.2032230850129666e+130;
        bool r147698 = r147696 <= r147697;
        double r147699 = a;
        double r147700 = m;
        double r147701 = pow(r147696, r147700);
        double r147702 = r147699 * r147701;
        double r147703 = 1.0;
        double r147704 = 10.0;
        double r147705 = r147704 * r147696;
        double r147706 = r147703 + r147705;
        double r147707 = r147696 * r147696;
        double r147708 = r147706 + r147707;
        double r147709 = r147702 / r147708;
        double r147710 = 1.0;
        double r147711 = r147710 / r147696;
        double r147712 = -r147700;
        double r147713 = pow(r147711, r147712);
        double r147714 = r147713 / r147696;
        double r147715 = r147699 / r147696;
        double r147716 = r147713 * r147699;
        double r147717 = 4.0;
        double r147718 = pow(r147696, r147717);
        double r147719 = r147716 / r147718;
        double r147720 = 99.0;
        double r147721 = r147704 * r147699;
        double r147722 = 3.0;
        double r147723 = pow(r147696, r147722);
        double r147724 = r147723 / r147713;
        double r147725 = r147721 / r147724;
        double r147726 = -r147725;
        double r147727 = fma(r147719, r147720, r147726);
        double r147728 = fma(r147714, r147715, r147727);
        double r147729 = r147698 ? r147709 : r147728;
        return r147729;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 2.2032230850129666e+130

    1. Initial program 0.1

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

    if 2.2032230850129666e+130 < k

    1. Initial program 9.2

      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity9.2

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

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

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

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

      \[\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}}}\]
    8. Simplified0.2

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

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

Reproduce

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