\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 5685825.4711496271193027496337890625:\\
\;\;\;\;a \cdot \frac{{k}^{m}}{\mathsf{fma}\left(k, 10 + k, 1\right)}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{a \cdot {\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}}{k}, \frac{{\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m}}{k}, \frac{{\left({\left(\frac{1}{k}\right)}^{\frac{-2}{3}}\right)}^{m} \cdot \left(a \cdot {\left({\left(\frac{1}{k}\right)}^{\frac{-1}{3}}\right)}^{m}\right)}{k \cdot k} \cdot \left(\frac{99}{k \cdot k} - \frac{10}{k}\right)\right)\\
\end{array}double f(double a, double k, double m) {
double r253371 = a;
double r253372 = k;
double r253373 = m;
double r253374 = pow(r253372, r253373);
double r253375 = r253371 * r253374;
double r253376 = 1.0;
double r253377 = 10.0;
double r253378 = r253377 * r253372;
double r253379 = r253376 + r253378;
double r253380 = r253372 * r253372;
double r253381 = r253379 + r253380;
double r253382 = r253375 / r253381;
return r253382;
}
double f(double a, double k, double m) {
double r253383 = k;
double r253384 = 5685825.471149627;
bool r253385 = r253383 <= r253384;
double r253386 = a;
double r253387 = m;
double r253388 = pow(r253383, r253387);
double r253389 = 10.0;
double r253390 = r253389 + r253383;
double r253391 = 1.0;
double r253392 = fma(r253383, r253390, r253391);
double r253393 = r253388 / r253392;
double r253394 = r253386 * r253393;
double r253395 = 1.0;
double r253396 = r253395 / r253383;
double r253397 = -0.3333333333333333;
double r253398 = pow(r253396, r253397);
double r253399 = pow(r253398, r253387);
double r253400 = r253386 * r253399;
double r253401 = r253400 / r253383;
double r253402 = -0.6666666666666666;
double r253403 = pow(r253396, r253402);
double r253404 = pow(r253403, r253387);
double r253405 = r253404 / r253383;
double r253406 = r253404 * r253400;
double r253407 = r253383 * r253383;
double r253408 = r253406 / r253407;
double r253409 = 99.0;
double r253410 = r253409 / r253407;
double r253411 = r253389 / r253383;
double r253412 = r253410 - r253411;
double r253413 = r253408 * r253412;
double r253414 = fma(r253401, r253405, r253413);
double r253415 = r253385 ? r253394 : r253414;
return r253415;
}



Bits error versus a



Bits error versus k



Bits error versus m
if k < 5685825.471149627Initial program 0.1
Simplified0.0
rmApplied div-inv0.0
Simplified0.0
if 5685825.471149627 < k Initial program 5.5
Simplified5.5
rmApplied div-inv5.5
Simplified5.5
rmApplied add-sqr-sqrt5.5
Applied add-cube-cbrt5.5
Applied unpow-prod-down5.5
Applied times-frac5.6
Taylor expanded around inf 5.5
Simplified0.1
Final simplification0.1
herbie shell --seed 2019351 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))