\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 3.858753298023434253616751573926542598119 \cdot 10^{133}:\\
\;\;\;\;\left(a \cdot {k}^{m}\right) \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{1}{\mathsf{fma}\left(k, 10 + k, 1\right)}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{e^{\log k \cdot m}}{k}, \frac{a}{k}, \frac{\frac{a}{k} \cdot e^{\log k \cdot m}}{k} \cdot \left(\frac{99}{{k}^{2}} - \frac{10}{k}\right)\right)\\
\end{array}double f(double a, double k, double m) {
double r156549 = a;
double r156550 = k;
double r156551 = m;
double r156552 = pow(r156550, r156551);
double r156553 = r156549 * r156552;
double r156554 = 1.0;
double r156555 = 10.0;
double r156556 = r156555 * r156550;
double r156557 = r156554 + r156556;
double r156558 = r156550 * r156550;
double r156559 = r156557 + r156558;
double r156560 = r156553 / r156559;
return r156560;
}
double f(double a, double k, double m) {
double r156561 = k;
double r156562 = 3.8587532980234343e+133;
bool r156563 = r156561 <= r156562;
double r156564 = a;
double r156565 = m;
double r156566 = pow(r156561, r156565);
double r156567 = r156564 * r156566;
double r156568 = 1.0;
double r156569 = 10.0;
double r156570 = r156569 + r156561;
double r156571 = 1.0;
double r156572 = fma(r156561, r156570, r156571);
double r156573 = r156568 / r156572;
double r156574 = expm1(r156573);
double r156575 = log1p(r156574);
double r156576 = r156567 * r156575;
double r156577 = log(r156561);
double r156578 = r156577 * r156565;
double r156579 = exp(r156578);
double r156580 = r156579 / r156561;
double r156581 = r156564 / r156561;
double r156582 = r156581 * r156579;
double r156583 = r156582 / r156561;
double r156584 = 99.0;
double r156585 = 2.0;
double r156586 = pow(r156561, r156585);
double r156587 = r156584 / r156586;
double r156588 = r156569 / r156561;
double r156589 = r156587 - r156588;
double r156590 = r156583 * r156589;
double r156591 = fma(r156580, r156581, r156590);
double r156592 = r156563 ? r156576 : r156591;
return r156592;
}



Bits error versus a



Bits error versus k



Bits error versus m
if k < 3.8587532980234343e+133Initial program 0.1
rmApplied div-inv0.1
Simplified0.1
rmApplied log1p-expm1-u0.1
if 3.8587532980234343e+133 < k Initial program 8.3
rmApplied div-inv8.3
Simplified8.3
rmApplied log1p-expm1-u8.3
rmApplied add-sqr-sqrt8.3
Applied associate-/r*8.3
Taylor expanded around inf 8.3
Simplified0.1
Final simplification0.1
herbie shell --seed 2019303 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))