\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 1.442302470468942821043172495313077911614 \cdot 10^{138}:\\
\;\;\;\;\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{a}{k}, \frac{{\left(\frac{1}{k}\right)}^{\left(-m\right)}}{k}, \mathsf{fma}\left(99, \frac{{\left(\frac{1}{k}\right)}^{\left(-m\right)}}{\frac{{k}^{4}}{a}}, \left(-10\right) \cdot \left(\frac{a}{{k}^{3}} \cdot {\left(\frac{1}{k}\right)}^{\left(-m\right)}\right)\right)\right)\\
\end{array}double f(double a, double k, double m) {
double r206998 = a;
double r206999 = k;
double r207000 = m;
double r207001 = pow(r206999, r207000);
double r207002 = r206998 * r207001;
double r207003 = 1.0;
double r207004 = 10.0;
double r207005 = r207004 * r206999;
double r207006 = r207003 + r207005;
double r207007 = r206999 * r206999;
double r207008 = r207006 + r207007;
double r207009 = r207002 / r207008;
return r207009;
}
double f(double a, double k, double m) {
double r207010 = k;
double r207011 = 1.4423024704689428e+138;
bool r207012 = r207010 <= r207011;
double r207013 = a;
double r207014 = m;
double r207015 = pow(r207010, r207014);
double r207016 = r207013 * r207015;
double r207017 = 1.0;
double r207018 = 10.0;
double r207019 = r207018 * r207010;
double r207020 = r207017 + r207019;
double r207021 = r207010 * r207010;
double r207022 = r207020 + r207021;
double r207023 = r207016 / r207022;
double r207024 = r207013 / r207010;
double r207025 = 1.0;
double r207026 = r207025 / r207010;
double r207027 = -r207014;
double r207028 = pow(r207026, r207027);
double r207029 = r207028 / r207010;
double r207030 = 99.0;
double r207031 = 4.0;
double r207032 = pow(r207010, r207031);
double r207033 = r207032 / r207013;
double r207034 = r207028 / r207033;
double r207035 = -r207018;
double r207036 = 3.0;
double r207037 = pow(r207010, r207036);
double r207038 = r207013 / r207037;
double r207039 = r207038 * r207028;
double r207040 = r207035 * r207039;
double r207041 = fma(r207030, r207034, r207040);
double r207042 = fma(r207024, r207029, r207041);
double r207043 = r207012 ? r207023 : r207042;
return r207043;
}



Bits error versus a



Bits error versus k



Bits error versus m
if k < 1.4423024704689428e+138Initial program 0.1
if 1.4423024704689428e+138 < k Initial program 8.9
rmApplied add-sqr-sqrt8.9
Applied associate-/r*8.9
Simplified8.9
rmApplied add-cbrt-cube11.3
Simplified11.3
Taylor expanded around inf 8.9
Simplified0.1
Final simplification0.1
herbie shell --seed 2019325 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))