\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 r243071 = a;
double r243072 = k;
double r243073 = m;
double r243074 = pow(r243072, r243073);
double r243075 = r243071 * r243074;
double r243076 = 1.0;
double r243077 = 10.0;
double r243078 = r243077 * r243072;
double r243079 = r243076 + r243078;
double r243080 = r243072 * r243072;
double r243081 = r243079 + r243080;
double r243082 = r243075 / r243081;
return r243082;
}
double f(double a, double k, double m) {
double r243083 = k;
double r243084 = 3.2595899677754594e+105;
bool r243085 = r243083 <= r243084;
double r243086 = a;
double r243087 = m;
double r243088 = pow(r243083, r243087);
double r243089 = r243086 * r243088;
double r243090 = 1.0;
double r243091 = 10.0;
double r243092 = r243091 * r243083;
double r243093 = r243090 + r243092;
double r243094 = r243083 * r243083;
double r243095 = r243093 + r243094;
double r243096 = r243089 / r243095;
double r243097 = -1.0;
double r243098 = 1.0;
double r243099 = r243098 / r243083;
double r243100 = log(r243099);
double r243101 = r243087 * r243100;
double r243102 = r243097 * r243101;
double r243103 = exp(r243102);
double r243104 = r243103 / r243083;
double r243105 = r243086 / r243083;
double r243106 = 99.0;
double r243107 = r243086 * r243103;
double r243108 = 4.0;
double r243109 = pow(r243083, r243108);
double r243110 = r243107 / r243109;
double r243111 = r243106 * r243110;
double r243112 = 3.0;
double r243113 = pow(r243083, r243112);
double r243114 = r243107 / r243113;
double r243115 = r243091 * r243114;
double r243116 = r243111 - r243115;
double r243117 = fma(r243104, r243105, r243116);
double r243118 = r243085 ? r243096 : r243117;
return r243118;
}



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