\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 r196571 = a;
double r196572 = k;
double r196573 = m;
double r196574 = pow(r196572, r196573);
double r196575 = r196571 * r196574;
double r196576 = 1.0;
double r196577 = 10.0;
double r196578 = r196577 * r196572;
double r196579 = r196576 + r196578;
double r196580 = r196572 * r196572;
double r196581 = r196579 + r196580;
double r196582 = r196575 / r196581;
return r196582;
}
double f(double a, double k, double m) {
double r196583 = k;
double r196584 = 3.2595899677754594e+105;
bool r196585 = r196583 <= r196584;
double r196586 = a;
double r196587 = m;
double r196588 = pow(r196583, r196587);
double r196589 = r196586 * r196588;
double r196590 = 1.0;
double r196591 = 10.0;
double r196592 = r196591 * r196583;
double r196593 = r196590 + r196592;
double r196594 = r196583 * r196583;
double r196595 = r196593 + r196594;
double r196596 = r196589 / r196595;
double r196597 = -1.0;
double r196598 = 1.0;
double r196599 = r196598 / r196583;
double r196600 = log(r196599);
double r196601 = r196587 * r196600;
double r196602 = r196597 * r196601;
double r196603 = exp(r196602);
double r196604 = r196603 / r196583;
double r196605 = r196586 / r196583;
double r196606 = 99.0;
double r196607 = r196586 * r196603;
double r196608 = 4.0;
double r196609 = pow(r196583, r196608);
double r196610 = r196607 / r196609;
double r196611 = r196606 * r196610;
double r196612 = 3.0;
double r196613 = pow(r196583, r196612);
double r196614 = r196607 / r196613;
double r196615 = r196591 * r196614;
double r196616 = r196611 - r196615;
double r196617 = fma(r196604, r196605, r196616);
double r196618 = r196585 ? r196596 : r196617;
return r196618;
}



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))))