\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 8.31726067928948193 \cdot 10^{150}:\\
\;\;\;\;a \cdot \frac{{k}^{m}}{\mathsf{fma}\left(k, k, \mathsf{fma}\left(10, k, 1\right)\right)}\\
\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 r328227 = a;
double r328228 = k;
double r328229 = m;
double r328230 = pow(r328228, r328229);
double r328231 = r328227 * r328230;
double r328232 = 1.0;
double r328233 = 10.0;
double r328234 = r328233 * r328228;
double r328235 = r328232 + r328234;
double r328236 = r328228 * r328228;
double r328237 = r328235 + r328236;
double r328238 = r328231 / r328237;
return r328238;
}
double f(double a, double k, double m) {
double r328239 = k;
double r328240 = 8.317260679289482e+150;
bool r328241 = r328239 <= r328240;
double r328242 = a;
double r328243 = m;
double r328244 = pow(r328239, r328243);
double r328245 = 10.0;
double r328246 = 1.0;
double r328247 = fma(r328245, r328239, r328246);
double r328248 = fma(r328239, r328239, r328247);
double r328249 = r328244 / r328248;
double r328250 = r328242 * r328249;
double r328251 = -1.0;
double r328252 = 1.0;
double r328253 = r328252 / r328239;
double r328254 = log(r328253);
double r328255 = r328243 * r328254;
double r328256 = r328251 * r328255;
double r328257 = exp(r328256);
double r328258 = r328257 / r328239;
double r328259 = r328242 / r328239;
double r328260 = 99.0;
double r328261 = r328242 * r328257;
double r328262 = 4.0;
double r328263 = pow(r328239, r328262);
double r328264 = r328261 / r328263;
double r328265 = r328260 * r328264;
double r328266 = 3.0;
double r328267 = pow(r328239, r328266);
double r328268 = r328261 / r328267;
double r328269 = r328245 * r328268;
double r328270 = r328265 - r328269;
double r328271 = fma(r328258, r328259, r328270);
double r328272 = r328241 ? r328250 : r328271;
return r328272;
}



Bits error versus a



Bits error versus k



Bits error versus m
if k < 8.317260679289482e+150Initial program 0.1
rmApplied associate-/l*0.1
rmApplied div-inv0.1
Simplified0.1
if 8.317260679289482e+150 < k Initial program 11.3
Taylor expanded around inf 11.3
Simplified0.2
Final simplification0.1
herbie shell --seed 2020057 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))