\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 3.2205424189704093 \cdot 10^{149}:\\
\;\;\;\;\frac{a \cdot {k}^{\left(\frac{\frac{m}{2}}{2}\right)}}{\frac{10 \cdot k + \left({k}^{2} + 1\right)}{{k}^{\left(\frac{\frac{m}{2}}{2}\right)} \cdot {k}^{\left(\frac{m}{2}\right)}}}\\
\mathbf{else}:\\
\;\;\;\;\left(99 \cdot \frac{a \cdot {\left(e^{\frac{-1}{2} \cdot \left(m \cdot \log \left(\frac{1}{k}\right)\right)}\right)}^{2}}{{k}^{4}} - 10 \cdot \frac{a \cdot {\left(e^{\frac{-1}{2} \cdot \left(m \cdot \log \left(\frac{1}{k}\right)\right)}\right)}^{2}}{{k}^{3}}\right) + \frac{\frac{a}{k} \cdot {\left({\left(\frac{1}{k}\right)}^{m}\right)}^{-1}}{k}\\
\end{array}double code(double a, double k, double m) {
return ((a * pow(k, m)) / ((1.0 + (10.0 * k)) + (k * k)));
}
double code(double a, double k, double m) {
double VAR;
if ((k <= 3.2205424189704093e+149)) {
VAR = ((a * pow(k, ((m / 2.0) / 2.0))) / (((10.0 * k) + (pow(k, 2.0) + 1.0)) / (pow(k, ((m / 2.0) / 2.0)) * pow(k, (m / 2.0)))));
} else {
VAR = (((99.0 * ((a * pow(exp((-0.5 * (m * log((1.0 / k))))), 2.0)) / pow(k, 4.0))) - (10.0 * ((a * pow(exp((-0.5 * (m * log((1.0 / k))))), 2.0)) / pow(k, 3.0)))) + (((a / k) * pow(pow((1.0 / k), m), -1.0)) / k));
}
return VAR;
}



Bits error versus a



Bits error versus k



Bits error versus m
Results
if k < 3.2205424189704093e+149Initial program 0.1
rmApplied +-commutative0.1
Applied associate-+l+0.1
Simplified0.1
rmApplied sqr-pow0.1
Applied associate-*r*0.1
rmApplied sqr-pow0.1
Applied associate-*r*0.1
Applied associate-*l*0.1
Applied associate-/l*0.1
if 3.2205424189704093e+149 < k Initial program 9.1
rmApplied +-commutative9.1
Applied associate-+l+9.1
Simplified9.1
rmApplied sqr-pow9.1
Applied associate-*r*9.1
Taylor expanded around inf 9.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020078
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))