Average Error: 1.8 → 0.1
Time: 16.3s
Precision: 64
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\begin{array}{l} \mathbf{if}\;k \le 7.008944406089647 \cdot 10^{+111}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(k + 10, k, 1\right)} \cdot \left({k}^{m} \cdot a\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{99}{k \cdot k}, \frac{a}{k} \cdot \frac{e^{m \cdot \log k}}{k}, \mathsf{fma}\left(\frac{a}{k}, \frac{e^{m \cdot \log k}}{k}, \left(\frac{a}{k \cdot k} \cdot \frac{e^{m \cdot \log k}}{k}\right) \cdot -10\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 7.008944406089647 \cdot 10^{+111}:\\
\;\;\;\;\frac{1}{\mathsf{fma}\left(k + 10, k, 1\right)} \cdot \left({k}^{m} \cdot a\right)\\

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

\end{array}
double f(double a, double k, double m) {
        double r3218149 = a;
        double r3218150 = k;
        double r3218151 = m;
        double r3218152 = pow(r3218150, r3218151);
        double r3218153 = r3218149 * r3218152;
        double r3218154 = 1.0;
        double r3218155 = 10.0;
        double r3218156 = r3218155 * r3218150;
        double r3218157 = r3218154 + r3218156;
        double r3218158 = r3218150 * r3218150;
        double r3218159 = r3218157 + r3218158;
        double r3218160 = r3218153 / r3218159;
        return r3218160;
}

double f(double a, double k, double m) {
        double r3218161 = k;
        double r3218162 = 7.008944406089647e+111;
        bool r3218163 = r3218161 <= r3218162;
        double r3218164 = 1.0;
        double r3218165 = 10.0;
        double r3218166 = r3218161 + r3218165;
        double r3218167 = fma(r3218166, r3218161, r3218164);
        double r3218168 = r3218164 / r3218167;
        double r3218169 = m;
        double r3218170 = pow(r3218161, r3218169);
        double r3218171 = a;
        double r3218172 = r3218170 * r3218171;
        double r3218173 = r3218168 * r3218172;
        double r3218174 = 99.0;
        double r3218175 = r3218161 * r3218161;
        double r3218176 = r3218174 / r3218175;
        double r3218177 = r3218171 / r3218161;
        double r3218178 = log(r3218161);
        double r3218179 = r3218169 * r3218178;
        double r3218180 = exp(r3218179);
        double r3218181 = r3218180 / r3218161;
        double r3218182 = r3218177 * r3218181;
        double r3218183 = r3218171 / r3218175;
        double r3218184 = r3218183 * r3218181;
        double r3218185 = -10.0;
        double r3218186 = r3218184 * r3218185;
        double r3218187 = fma(r3218177, r3218181, r3218186);
        double r3218188 = fma(r3218176, r3218182, r3218187);
        double r3218189 = r3218163 ? r3218173 : r3218188;
        return r3218189;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 7.008944406089647e+111

    1. Initial program 0.1

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

      \[\leadsto \color{blue}{\frac{{k}^{m} \cdot a}{\mathsf{fma}\left(k + 10, k, 1\right)}}\]
    3. Using strategy rm
    4. Applied div-inv0.1

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

    if 7.008944406089647e+111 < k

    1. Initial program 7.3

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

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

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

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

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

Reproduce

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