\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 3.858753298023434253616751573926542598119 \cdot 10^{133}:\\
\;\;\;\;\left(a \cdot {k}^{m}\right) \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{1}{\mathsf{fma}\left(k, 10 + k, 1\right)}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{e^{\log k \cdot m}}{k}, \frac{a}{k}, \frac{\frac{a}{k} \cdot e^{\log k \cdot m}}{k} \cdot \left(\frac{99}{{k}^{2}} - \frac{10}{k}\right)\right)\\
\end{array}double f(double a, double k, double m) {
double r233009 = a;
double r233010 = k;
double r233011 = m;
double r233012 = pow(r233010, r233011);
double r233013 = r233009 * r233012;
double r233014 = 1.0;
double r233015 = 10.0;
double r233016 = r233015 * r233010;
double r233017 = r233014 + r233016;
double r233018 = r233010 * r233010;
double r233019 = r233017 + r233018;
double r233020 = r233013 / r233019;
return r233020;
}
double f(double a, double k, double m) {
double r233021 = k;
double r233022 = 3.8587532980234343e+133;
bool r233023 = r233021 <= r233022;
double r233024 = a;
double r233025 = m;
double r233026 = pow(r233021, r233025);
double r233027 = r233024 * r233026;
double r233028 = 1.0;
double r233029 = 10.0;
double r233030 = r233029 + r233021;
double r233031 = 1.0;
double r233032 = fma(r233021, r233030, r233031);
double r233033 = r233028 / r233032;
double r233034 = expm1(r233033);
double r233035 = log1p(r233034);
double r233036 = r233027 * r233035;
double r233037 = log(r233021);
double r233038 = r233037 * r233025;
double r233039 = exp(r233038);
double r233040 = r233039 / r233021;
double r233041 = r233024 / r233021;
double r233042 = r233041 * r233039;
double r233043 = r233042 / r233021;
double r233044 = 99.0;
double r233045 = 2.0;
double r233046 = pow(r233021, r233045);
double r233047 = r233044 / r233046;
double r233048 = r233029 / r233021;
double r233049 = r233047 - r233048;
double r233050 = r233043 * r233049;
double r233051 = fma(r233040, r233041, r233050);
double r233052 = r233023 ? r233036 : r233051;
return r233052;
}



Bits error versus a



Bits error versus k



Bits error versus m
if k < 3.8587532980234343e+133Initial program 0.1
rmApplied div-inv0.1
Simplified0.1
rmApplied log1p-expm1-u0.1
if 3.8587532980234343e+133 < k Initial program 8.3
rmApplied div-inv8.3
Simplified8.3
rmApplied log1p-expm1-u8.3
rmApplied add-sqr-sqrt8.3
Applied associate-/r*8.3
Taylor expanded around inf 8.3
Simplified0.1
Final simplification0.1
herbie shell --seed 2019303 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))