\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 3.92173497976968962 \cdot 10^{149}:\\
\;\;\;\;\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\frac{{\left(\frac{1}{k}\right)}^{\left(-m\right)}}{\frac{{k}^{4}}{a}} \cdot 99 + \left(\frac{{\left(\frac{1}{k}\right)}^{\left(-m\right)}}{k} \cdot \frac{a}{k} - \frac{\left(10 \cdot a\right) \cdot {\left(\frac{1}{k}\right)}^{\left(-m\right)}}{{k}^{3}}\right)\\
\end{array}double f(double a, double k, double m) {
double r159200 = a;
double r159201 = k;
double r159202 = m;
double r159203 = pow(r159201, r159202);
double r159204 = r159200 * r159203;
double r159205 = 1.0;
double r159206 = 10.0;
double r159207 = r159206 * r159201;
double r159208 = r159205 + r159207;
double r159209 = r159201 * r159201;
double r159210 = r159208 + r159209;
double r159211 = r159204 / r159210;
return r159211;
}
double f(double a, double k, double m) {
double r159212 = k;
double r159213 = 3.9217349797696896e+149;
bool r159214 = r159212 <= r159213;
double r159215 = a;
double r159216 = m;
double r159217 = pow(r159212, r159216);
double r159218 = r159215 * r159217;
double r159219 = 1.0;
double r159220 = 10.0;
double r159221 = r159220 * r159212;
double r159222 = r159219 + r159221;
double r159223 = r159212 * r159212;
double r159224 = r159222 + r159223;
double r159225 = r159218 / r159224;
double r159226 = 1.0;
double r159227 = r159226 / r159212;
double r159228 = -r159216;
double r159229 = pow(r159227, r159228);
double r159230 = 4.0;
double r159231 = pow(r159212, r159230);
double r159232 = r159231 / r159215;
double r159233 = r159229 / r159232;
double r159234 = 99.0;
double r159235 = r159233 * r159234;
double r159236 = r159229 / r159212;
double r159237 = r159215 / r159212;
double r159238 = r159236 * r159237;
double r159239 = r159220 * r159215;
double r159240 = r159239 * r159229;
double r159241 = 3.0;
double r159242 = pow(r159212, r159241);
double r159243 = r159240 / r159242;
double r159244 = r159238 - r159243;
double r159245 = r159235 + r159244;
double r159246 = r159214 ? r159225 : r159245;
return r159246;
}



Bits error versus a



Bits error versus k



Bits error versus m
Results
if k < 3.9217349797696896e+149Initial program 0.1
if 3.9217349797696896e+149 < k Initial program 10.9
rmApplied frac-2neg10.9
Simplified10.9
Taylor expanded around inf 10.9
Simplified0.3
Final simplification0.1
herbie shell --seed 2019199
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
(/ (* a (pow k m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))