\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 1.517993931788378 \cdot 10^{137}:\\
\;\;\;\;\frac{a \cdot {k}^{m}}{\mathsf{fma}\left(1, 1, 10 \cdot k\right) + k \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{e^{-1 \cdot \left(m \cdot \log \left(\frac{1}{k}\right)\right)}}{k}, \frac{a}{k}, 99 \cdot \frac{a \cdot e^{-1 \cdot \left(m \cdot \log \left(\frac{1}{k}\right)\right)}}{{k}^{4}} - 10 \cdot \frac{a \cdot e^{-1 \cdot \left(m \cdot \log \left(\frac{1}{k}\right)\right)}}{{k}^{3}}\right)\\
\end{array}double f(double a, double k, double m) {
double r304542 = a;
double r304543 = k;
double r304544 = m;
double r304545 = pow(r304543, r304544);
double r304546 = r304542 * r304545;
double r304547 = 1.0;
double r304548 = 10.0;
double r304549 = r304548 * r304543;
double r304550 = r304547 + r304549;
double r304551 = r304543 * r304543;
double r304552 = r304550 + r304551;
double r304553 = r304546 / r304552;
return r304553;
}
double f(double a, double k, double m) {
double r304554 = k;
double r304555 = 1.517993931788378e+137;
bool r304556 = r304554 <= r304555;
double r304557 = a;
double r304558 = m;
double r304559 = pow(r304554, r304558);
double r304560 = r304557 * r304559;
double r304561 = 1.0;
double r304562 = 1.0;
double r304563 = 10.0;
double r304564 = r304563 * r304554;
double r304565 = fma(r304561, r304562, r304564);
double r304566 = r304554 * r304554;
double r304567 = r304565 + r304566;
double r304568 = r304560 / r304567;
double r304569 = -1.0;
double r304570 = r304561 / r304554;
double r304571 = log(r304570);
double r304572 = r304558 * r304571;
double r304573 = r304569 * r304572;
double r304574 = exp(r304573);
double r304575 = r304574 / r304554;
double r304576 = r304557 / r304554;
double r304577 = 99.0;
double r304578 = r304557 * r304574;
double r304579 = 4.0;
double r304580 = pow(r304554, r304579);
double r304581 = r304578 / r304580;
double r304582 = r304577 * r304581;
double r304583 = 3.0;
double r304584 = pow(r304554, r304583);
double r304585 = r304578 / r304584;
double r304586 = r304563 * r304585;
double r304587 = r304582 - r304586;
double r304588 = fma(r304575, r304576, r304587);
double r304589 = r304556 ? r304568 : r304588;
return r304589;
}



Bits error versus a



Bits error versus k



Bits error versus m
if k < 1.517993931788378e+137Initial program 0.1
rmApplied *-un-lft-identity0.1
Applied fma-def0.1
if 1.517993931788378e+137 < k Initial program 9.3
Taylor expanded around inf 9.3
Simplified0.1
Final simplification0.1
herbie shell --seed 2020021 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))