\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 100398387241228826532904960:\\
\;\;\;\;\frac{a \cdot {k}^{m}}{\mathsf{fma}\left(k, 10 + k, 1\right)}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left({\left(\frac{1}{k}\right)}^{\left(-m\right)}, \frac{\frac{a}{k}}{k}, \left({\left(\frac{1}{k}\right)}^{\left(-m\right)} \cdot a\right) \cdot \frac{99}{{k}^{4}} - \frac{10}{{k}^{3}} \cdot \left({\left(\frac{1}{k}\right)}^{\left(-m\right)} \cdot a\right)\right)\\
\end{array}double f(double a, double k, double m) {
double r324975 = a;
double r324976 = k;
double r324977 = m;
double r324978 = pow(r324976, r324977);
double r324979 = r324975 * r324978;
double r324980 = 1.0;
double r324981 = 10.0;
double r324982 = r324981 * r324976;
double r324983 = r324980 + r324982;
double r324984 = r324976 * r324976;
double r324985 = r324983 + r324984;
double r324986 = r324979 / r324985;
return r324986;
}
double f(double a, double k, double m) {
double r324987 = k;
double r324988 = 1.0039838724122883e+26;
bool r324989 = r324987 <= r324988;
double r324990 = a;
double r324991 = m;
double r324992 = pow(r324987, r324991);
double r324993 = r324990 * r324992;
double r324994 = 10.0;
double r324995 = r324994 + r324987;
double r324996 = 1.0;
double r324997 = fma(r324987, r324995, r324996);
double r324998 = r324993 / r324997;
double r324999 = 1.0;
double r325000 = r324999 / r324987;
double r325001 = -r324991;
double r325002 = pow(r325000, r325001);
double r325003 = r324990 / r324987;
double r325004 = r325003 / r324987;
double r325005 = r325002 * r324990;
double r325006 = 99.0;
double r325007 = 4.0;
double r325008 = pow(r324987, r325007);
double r325009 = r325006 / r325008;
double r325010 = r325005 * r325009;
double r325011 = 3.0;
double r325012 = pow(r324987, r325011);
double r325013 = r324994 / r325012;
double r325014 = r325013 * r325005;
double r325015 = r325010 - r325014;
double r325016 = fma(r325002, r325004, r325015);
double r325017 = r324989 ? r324998 : r325016;
return r325017;
}



Bits error versus a



Bits error versus k



Bits error versus m
if k < 1.0039838724122883e+26Initial program 0.1
Simplified0.0
if 1.0039838724122883e+26 < k Initial program 5.7
Simplified5.7
Taylor expanded around inf 5.7
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))))