\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 5.09022971803593299 \cdot 10^{147}:\\
\;\;\;\;\left(\left(\frac{a}{k \cdot \left(10 + k\right) + 1} \cdot {k}^{\left(\frac{m}{2}\right)}\right) \cdot \sqrt{{k}^{\left(\frac{m}{2}\right)}}\right) \cdot \sqrt{{k}^{\left(\frac{m}{2}\right)}}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{\frac{\frac{a}{e^{m \cdot \left(-\log k\right)}}}{k}}{k} - \frac{10}{{k}^{3}} \cdot \frac{a}{e^{m \cdot \left(-\log k\right)}}\right) + \frac{a}{{k}^{4} \cdot e^{m \cdot \left(-\log k\right)}} \cdot 99\\
\end{array}double f(double a, double k, double m) {
double r269942 = a;
double r269943 = k;
double r269944 = m;
double r269945 = pow(r269943, r269944);
double r269946 = r269942 * r269945;
double r269947 = 1.0;
double r269948 = 10.0;
double r269949 = r269948 * r269943;
double r269950 = r269947 + r269949;
double r269951 = r269943 * r269943;
double r269952 = r269950 + r269951;
double r269953 = r269946 / r269952;
return r269953;
}
double f(double a, double k, double m) {
double r269954 = k;
double r269955 = 5.090229718035933e+147;
bool r269956 = r269954 <= r269955;
double r269957 = a;
double r269958 = 10.0;
double r269959 = r269958 + r269954;
double r269960 = r269954 * r269959;
double r269961 = 1.0;
double r269962 = r269960 + r269961;
double r269963 = r269957 / r269962;
double r269964 = m;
double r269965 = 2.0;
double r269966 = r269964 / r269965;
double r269967 = pow(r269954, r269966);
double r269968 = r269963 * r269967;
double r269969 = sqrt(r269967);
double r269970 = r269968 * r269969;
double r269971 = r269970 * r269969;
double r269972 = log(r269954);
double r269973 = -r269972;
double r269974 = r269964 * r269973;
double r269975 = exp(r269974);
double r269976 = r269957 / r269975;
double r269977 = r269976 / r269954;
double r269978 = r269977 / r269954;
double r269979 = 3.0;
double r269980 = pow(r269954, r269979);
double r269981 = r269958 / r269980;
double r269982 = r269981 * r269976;
double r269983 = r269978 - r269982;
double r269984 = 4.0;
double r269985 = pow(r269954, r269984);
double r269986 = r269985 * r269975;
double r269987 = r269957 / r269986;
double r269988 = 99.0;
double r269989 = r269987 * r269988;
double r269990 = r269983 + r269989;
double r269991 = r269956 ? r269971 : r269990;
return r269991;
}



Bits error versus a



Bits error versus k



Bits error versus m
Results
if k < 5.090229718035933e+147Initial program 0.1
Simplified0.1
rmApplied sqr-pow0.1
Applied associate-*r*0.1
rmApplied add-sqr-sqrt0.1
Applied associate-*r*0.1
if 5.090229718035933e+147 < k Initial program 10.2
Simplified10.2
Taylor expanded around inf 10.2
Simplified0.1
Final simplification0.1
herbie shell --seed 2020046
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))