\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 1407855369986978.5:\\
\;\;\;\;\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\frac{99 \cdot \left(\left({\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m} \cdot a\right) \cdot {\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}\right)}{{k}^{4}} + \left(\frac{{\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m} \cdot a}{k} \cdot \frac{{\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}}{k} - \frac{10 \cdot \left(\left({\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m} \cdot a\right) \cdot {\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}\right)}{{k}^{3}}\right)\\
\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 <= 1407855369986978.5)) {
VAR = ((a * pow(k, m)) / ((1.0 + (10.0 * k)) + (k * k)));
} else {
VAR = (((99.0 * ((pow(pow((1.0 / k), -0.6666666666666666), m) * a) * pow(pow((1.0 / k), -0.3333333333333333), m))) / pow(k, 4.0)) + ((((pow(pow((1.0 / k), -0.6666666666666666), m) * a) / k) * (pow(pow((1.0 / k), -0.3333333333333333), m) / k)) - ((10.0 * ((pow(pow((1.0 / k), -0.6666666666666666), m) * a) * pow(pow((1.0 / k), -0.3333333333333333), m))) / pow(k, 3.0))));
}
return VAR;
}



Bits error versus a



Bits error versus k



Bits error versus m
Results
if k < 1407855369986978.5Initial program 0.0
if 1407855369986978.5 < k Initial program 5.9
Simplified5.9
rmApplied *-un-lft-identity5.9
Applied add-cube-cbrt5.9
Applied unpow-prod-down5.9
Applied times-frac5.9
Simplified5.9
Taylor expanded around inf 5.9
Simplified0.4
Final simplification0.2
herbie shell --seed 2020106
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))