\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 3.259589967775459437985798072367657416772 \cdot 10^{105}:\\
\;\;\;\;\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\\
\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 r374380 = a;
double r374381 = k;
double r374382 = m;
double r374383 = pow(r374381, r374382);
double r374384 = r374380 * r374383;
double r374385 = 1.0;
double r374386 = 10.0;
double r374387 = r374386 * r374381;
double r374388 = r374385 + r374387;
double r374389 = r374381 * r374381;
double r374390 = r374388 + r374389;
double r374391 = r374384 / r374390;
return r374391;
}
double f(double a, double k, double m) {
double r374392 = k;
double r374393 = 3.2595899677754594e+105;
bool r374394 = r374392 <= r374393;
double r374395 = a;
double r374396 = m;
double r374397 = pow(r374392, r374396);
double r374398 = r374395 * r374397;
double r374399 = 1.0;
double r374400 = 10.0;
double r374401 = r374400 * r374392;
double r374402 = r374399 + r374401;
double r374403 = r374392 * r374392;
double r374404 = r374402 + r374403;
double r374405 = r374398 / r374404;
double r374406 = -1.0;
double r374407 = 1.0;
double r374408 = r374407 / r374392;
double r374409 = log(r374408);
double r374410 = r374396 * r374409;
double r374411 = r374406 * r374410;
double r374412 = exp(r374411);
double r374413 = r374412 / r374392;
double r374414 = r374395 / r374392;
double r374415 = 99.0;
double r374416 = r374395 * r374412;
double r374417 = 4.0;
double r374418 = pow(r374392, r374417);
double r374419 = r374416 / r374418;
double r374420 = r374415 * r374419;
double r374421 = 3.0;
double r374422 = pow(r374392, r374421);
double r374423 = r374416 / r374422;
double r374424 = r374400 * r374423;
double r374425 = r374420 - r374424;
double r374426 = fma(r374413, r374414, r374425);
double r374427 = r374394 ? r374405 : r374426;
return r374427;
}



Bits error versus a



Bits error versus k



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