\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 1.097649070943432541316308677194287050937 \cdot 10^{139}:\\
\;\;\;\;\frac{1}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot \left({k}^{m} \cdot a\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{a}{k}, \frac{e^{\log k \cdot m}}{k}, \left(\frac{a}{{k}^{2}} \cdot e^{\log k \cdot m}\right) \cdot \left(\frac{99}{{k}^{2}} - \frac{10}{k}\right)\right)\\
\end{array}double f(double a, double k, double m) {
double r204926 = a;
double r204927 = k;
double r204928 = m;
double r204929 = pow(r204927, r204928);
double r204930 = r204926 * r204929;
double r204931 = 1.0;
double r204932 = 10.0;
double r204933 = r204932 * r204927;
double r204934 = r204931 + r204933;
double r204935 = r204927 * r204927;
double r204936 = r204934 + r204935;
double r204937 = r204930 / r204936;
return r204937;
}
double f(double a, double k, double m) {
double r204938 = k;
double r204939 = 1.0976490709434325e+139;
bool r204940 = r204938 <= r204939;
double r204941 = 1.0;
double r204942 = 10.0;
double r204943 = r204942 + r204938;
double r204944 = 1.0;
double r204945 = fma(r204938, r204943, r204944);
double r204946 = r204941 / r204945;
double r204947 = m;
double r204948 = pow(r204938, r204947);
double r204949 = a;
double r204950 = r204948 * r204949;
double r204951 = r204946 * r204950;
double r204952 = r204949 / r204938;
double r204953 = log(r204938);
double r204954 = r204953 * r204947;
double r204955 = exp(r204954);
double r204956 = r204955 / r204938;
double r204957 = 2.0;
double r204958 = pow(r204938, r204957);
double r204959 = r204949 / r204958;
double r204960 = r204959 * r204955;
double r204961 = 99.0;
double r204962 = r204961 / r204958;
double r204963 = r204942 / r204938;
double r204964 = r204962 - r204963;
double r204965 = r204960 * r204964;
double r204966 = fma(r204952, r204956, r204965);
double r204967 = r204940 ? r204951 : r204966;
return r204967;
}



Bits error versus a



Bits error versus k



Bits error versus m
if k < 1.0976490709434325e+139Initial program 0.1
Simplified0.1
rmApplied div-inv0.1
Applied *-un-lft-identity0.1
Applied times-frac0.1
Simplified0.1
if 1.0976490709434325e+139 < k Initial program 9.3
Simplified9.3
Taylor expanded around inf 9.3
Simplified0.1
Final simplification0.1
herbie shell --seed 2019347 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))