\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 8.663816625552649 \cdot 10^{+141}:\\
\;\;\;\;\frac{a \cdot {k}^{m}}{k \cdot k + \left(k \cdot 10 + 1\right)}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{{k}^{m}}{\left(\frac{k}{\frac{a}{k}} + \frac{1}{a}\right) + \frac{10}{\frac{a}{k}}}\right)\right)\\
\end{array}double f(double a, double k, double m) {
double r5182330 = a;
double r5182331 = k;
double r5182332 = m;
double r5182333 = pow(r5182331, r5182332);
double r5182334 = r5182330 * r5182333;
double r5182335 = 1.0;
double r5182336 = 10.0;
double r5182337 = r5182336 * r5182331;
double r5182338 = r5182335 + r5182337;
double r5182339 = r5182331 * r5182331;
double r5182340 = r5182338 + r5182339;
double r5182341 = r5182334 / r5182340;
return r5182341;
}
double f(double a, double k, double m) {
double r5182342 = k;
double r5182343 = 8.663816625552649e+141;
bool r5182344 = r5182342 <= r5182343;
double r5182345 = a;
double r5182346 = m;
double r5182347 = pow(r5182342, r5182346);
double r5182348 = r5182345 * r5182347;
double r5182349 = r5182342 * r5182342;
double r5182350 = 10.0;
double r5182351 = r5182342 * r5182350;
double r5182352 = 1.0;
double r5182353 = r5182351 + r5182352;
double r5182354 = r5182349 + r5182353;
double r5182355 = r5182348 / r5182354;
double r5182356 = r5182345 / r5182342;
double r5182357 = r5182342 / r5182356;
double r5182358 = r5182352 / r5182345;
double r5182359 = r5182357 + r5182358;
double r5182360 = r5182350 / r5182356;
double r5182361 = r5182359 + r5182360;
double r5182362 = r5182347 / r5182361;
double r5182363 = log1p(r5182362);
double r5182364 = expm1(r5182363);
double r5182365 = r5182344 ? r5182355 : r5182364;
return r5182365;
}



Bits error versus a



Bits error versus k



Bits error versus m
Results
if k < 8.663816625552649e+141Initial program 0.1
if 8.663816625552649e+141 < k Initial program 9.8
rmApplied expm1-log1p-u9.8
Simplified9.8
Taylor expanded around 0 9.8
Simplified0.6
Final simplification0.2
herbie shell --seed 2019152 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))