\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 1.6855195864047097 \cdot 10^{151}:\\
\;\;\;\;\frac{\left(a \cdot {k}^{\left(\frac{m}{2}\right)}\right) \cdot {k}^{\left(\frac{m}{2}\right)}}{\mathsf{fma}\left(k, k, \mathsf{fma}\left(k, 10, 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 r360070 = a;
double r360071 = k;
double r360072 = m;
double r360073 = pow(r360071, r360072);
double r360074 = r360070 * r360073;
double r360075 = 1.0;
double r360076 = 10.0;
double r360077 = r360076 * r360071;
double r360078 = r360075 + r360077;
double r360079 = r360071 * r360071;
double r360080 = r360078 + r360079;
double r360081 = r360074 / r360080;
return r360081;
}
double f(double a, double k, double m) {
double r360082 = k;
double r360083 = 1.6855195864047097e+151;
bool r360084 = r360082 <= r360083;
double r360085 = a;
double r360086 = m;
double r360087 = 2.0;
double r360088 = r360086 / r360087;
double r360089 = pow(r360082, r360088);
double r360090 = r360085 * r360089;
double r360091 = r360090 * r360089;
double r360092 = 10.0;
double r360093 = 1.0;
double r360094 = fma(r360082, r360092, r360093);
double r360095 = fma(r360082, r360082, r360094);
double r360096 = r360091 / r360095;
double r360097 = -1.0;
double r360098 = 1.0;
double r360099 = r360098 / r360082;
double r360100 = log(r360099);
double r360101 = r360086 * r360100;
double r360102 = r360097 * r360101;
double r360103 = exp(r360102);
double r360104 = r360103 / r360082;
double r360105 = r360085 / r360082;
double r360106 = 99.0;
double r360107 = r360085 * r360103;
double r360108 = 4.0;
double r360109 = pow(r360082, r360108);
double r360110 = r360107 / r360109;
double r360111 = r360106 * r360110;
double r360112 = 3.0;
double r360113 = pow(r360082, r360112);
double r360114 = r360107 / r360113;
double r360115 = r360092 * r360114;
double r360116 = r360111 - r360115;
double r360117 = fma(r360104, r360105, r360116);
double r360118 = r360084 ? r360096 : r360117;
return r360118;
}



Bits error versus a



Bits error versus k



Bits error versus m
if k < 1.6855195864047097e+151Initial program 0.1
Taylor expanded around 0 0.1
Simplified0.1
rmApplied sqr-pow0.1
Applied associate-*r*0.1
if 1.6855195864047097e+151 < k Initial program 10.4
Taylor expanded around inf 10.4
Simplified0.1
Final simplification0.1
herbie shell --seed 2020047 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))