Average Error: 2.2 → 0.1
Time: 5.8s
Precision: 64
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\begin{array}{l} \mathbf{if}\;k \le 1.4321778772581635 \cdot 10^{152}:\\ \;\;\;\;\frac{{k}^{m}}{\mathsf{fma}\left(k, k, \mathsf{fma}\left(k, 10, 1\right)\right)} \cdot a\\ \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.4321778772581635 \cdot 10^{152}:\\
\;\;\;\;\frac{{k}^{m}}{\mathsf{fma}\left(k, k, \mathsf{fma}\left(k, 10, 1\right)\right)} \cdot a\\

\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 r329157 = a;
        double r329158 = k;
        double r329159 = m;
        double r329160 = pow(r329158, r329159);
        double r329161 = r329157 * r329160;
        double r329162 = 1.0;
        double r329163 = 10.0;
        double r329164 = r329163 * r329158;
        double r329165 = r329162 + r329164;
        double r329166 = r329158 * r329158;
        double r329167 = r329165 + r329166;
        double r329168 = r329161 / r329167;
        return r329168;
}

double f(double a, double k, double m) {
        double r329169 = k;
        double r329170 = 1.4321778772581635e+152;
        bool r329171 = r329169 <= r329170;
        double r329172 = m;
        double r329173 = pow(r329169, r329172);
        double r329174 = 10.0;
        double r329175 = 1.0;
        double r329176 = fma(r329169, r329174, r329175);
        double r329177 = fma(r329169, r329169, r329176);
        double r329178 = r329173 / r329177;
        double r329179 = a;
        double r329180 = r329178 * r329179;
        double r329181 = -1.0;
        double r329182 = 1.0;
        double r329183 = r329182 / r329169;
        double r329184 = log(r329183);
        double r329185 = r329172 * r329184;
        double r329186 = r329181 * r329185;
        double r329187 = exp(r329186);
        double r329188 = r329187 / r329169;
        double r329189 = r329179 / r329169;
        double r329190 = 99.0;
        double r329191 = r329179 * r329187;
        double r329192 = 4.0;
        double r329193 = pow(r329169, r329192);
        double r329194 = r329191 / r329193;
        double r329195 = r329190 * r329194;
        double r329196 = 3.0;
        double r329197 = pow(r329169, r329196);
        double r329198 = r329191 / r329197;
        double r329199 = r329174 * r329198;
        double r329200 = r329195 - r329199;
        double r329201 = fma(r329188, r329189, r329200);
        double r329202 = r329171 ? r329180 : r329201;
        return r329202;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 1.4321778772581635e+152

    1. Initial program 0.1

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

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

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

    if 1.4321778772581635e+152 < k

    1. Initial program 10.7

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

      \[\leadsto \color{blue}{\frac{{k}^{m}}{\frac{\mathsf{fma}\left(k, k, \mathsf{fma}\left(k, 10, 1\right)\right)}{a}}}\]
    3. Taylor expanded around inf 10.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}}}\]
    4. 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.4321778772581635 \cdot 10^{152}:\\ \;\;\;\;\frac{{k}^{m}}{\mathsf{fma}\left(k, k, \mathsf{fma}\left(k, 10, 1\right)\right)} \cdot a\\ \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 2020039 +o rules:numerics
(FPCore (a k m)
  :name "Falkner and Boettcher, Appendix A"
  :precision binary64
  (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))