\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 16862378543.897914886474609375:\\
\;\;\;\;\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\frac{a}{k} \cdot \frac{{\left({\left(\frac{1}{k}\right)}^{m}\right)}^{-1}}{k} + \left(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 r321376 = a;
double r321377 = k;
double r321378 = m;
double r321379 = pow(r321377, r321378);
double r321380 = r321376 * r321379;
double r321381 = 1.0;
double r321382 = 10.0;
double r321383 = r321382 * r321377;
double r321384 = r321381 + r321383;
double r321385 = r321377 * r321377;
double r321386 = r321384 + r321385;
double r321387 = r321380 / r321386;
return r321387;
}
double f(double a, double k, double m) {
double r321388 = k;
double r321389 = 16862378543.897915;
bool r321390 = r321388 <= r321389;
double r321391 = a;
double r321392 = m;
double r321393 = pow(r321388, r321392);
double r321394 = r321391 * r321393;
double r321395 = 1.0;
double r321396 = 10.0;
double r321397 = r321396 * r321388;
double r321398 = r321395 + r321397;
double r321399 = r321388 * r321388;
double r321400 = r321398 + r321399;
double r321401 = r321394 / r321400;
double r321402 = r321391 / r321388;
double r321403 = 1.0;
double r321404 = r321403 / r321388;
double r321405 = pow(r321404, r321392);
double r321406 = -1.0;
double r321407 = pow(r321405, r321406);
double r321408 = r321407 / r321388;
double r321409 = r321402 * r321408;
double r321410 = 99.0;
double r321411 = log(r321404);
double r321412 = r321392 * r321411;
double r321413 = r321406 * r321412;
double r321414 = exp(r321413);
double r321415 = r321391 * r321414;
double r321416 = 4.0;
double r321417 = pow(r321388, r321416);
double r321418 = r321415 / r321417;
double r321419 = r321410 * r321418;
double r321420 = 3.0;
double r321421 = pow(r321388, r321420);
double r321422 = r321415 / r321421;
double r321423 = r321396 * r321422;
double r321424 = r321419 - r321423;
double r321425 = r321409 + r321424;
double r321426 = r321390 ? r321401 : r321425;
return r321426;
}



Bits error versus a



Bits error versus k



Bits error versus m
Results
if k < 16862378543.897915Initial program 0.1
if 16862378543.897915 < k Initial program 5.1
Taylor expanded around inf 5.1
Simplified0.2
rmApplied fma-udef0.2
Simplified0.1
Final simplification0.1
herbie shell --seed 2019362 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))