\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 3.712300181399613687293094562313871192358 \cdot 10^{111}:\\
\;\;\;\;\frac{a}{\frac{\mathsf{fma}\left(k, 10 + k, 1\right)}{{k}^{m}}}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{{\left(e^{m}\right)}^{\left(\log k\right)}}{k}, \frac{a}{k}, \frac{{\left(e^{m}\right)}^{\left(\log k\right)}}{\frac{{k}^{2}}{a}} \cdot \left(\frac{99}{{k}^{2}} - \frac{10}{k}\right)\right)\\
\end{array}double f(double a, double k, double m) {
double r314256 = a;
double r314257 = k;
double r314258 = m;
double r314259 = pow(r314257, r314258);
double r314260 = r314256 * r314259;
double r314261 = 1.0;
double r314262 = 10.0;
double r314263 = r314262 * r314257;
double r314264 = r314261 + r314263;
double r314265 = r314257 * r314257;
double r314266 = r314264 + r314265;
double r314267 = r314260 / r314266;
return r314267;
}
double f(double a, double k, double m) {
double r314268 = k;
double r314269 = 3.7123001813996137e+111;
bool r314270 = r314268 <= r314269;
double r314271 = a;
double r314272 = 10.0;
double r314273 = r314272 + r314268;
double r314274 = 1.0;
double r314275 = fma(r314268, r314273, r314274);
double r314276 = m;
double r314277 = pow(r314268, r314276);
double r314278 = r314275 / r314277;
double r314279 = r314271 / r314278;
double r314280 = exp(r314276);
double r314281 = log(r314268);
double r314282 = pow(r314280, r314281);
double r314283 = r314282 / r314268;
double r314284 = r314271 / r314268;
double r314285 = 2.0;
double r314286 = pow(r314268, r314285);
double r314287 = r314286 / r314271;
double r314288 = r314282 / r314287;
double r314289 = 99.0;
double r314290 = r314289 / r314286;
double r314291 = r314272 / r314268;
double r314292 = r314290 - r314291;
double r314293 = r314288 * r314292;
double r314294 = fma(r314283, r314284, r314293);
double r314295 = r314270 ? r314279 : r314294;
return r314295;
}



Bits error versus a



Bits error versus k



Bits error versus m
if k < 3.7123001813996137e+111Initial program 0.1
Simplified0.0
if 3.7123001813996137e+111 < k Initial program 8.3
Simplified8.3
Taylor expanded around -inf 64.0
Simplified0.1
Final simplification0.1
herbie shell --seed 2019323 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))