\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 1.17639469941438882 \cdot 10^{52}:\\
\;\;\;\;a \cdot \frac{{k}^{m}}{\left(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 r273673 = a;
double r273674 = k;
double r273675 = m;
double r273676 = pow(r273674, r273675);
double r273677 = r273673 * r273676;
double r273678 = 1.0;
double r273679 = 10.0;
double r273680 = r273679 * r273674;
double r273681 = r273678 + r273680;
double r273682 = r273674 * r273674;
double r273683 = r273681 + r273682;
double r273684 = r273677 / r273683;
return r273684;
}
double f(double a, double k, double m) {
double r273685 = k;
double r273686 = 1.1763946994143888e+52;
bool r273687 = r273685 <= r273686;
double r273688 = a;
double r273689 = m;
double r273690 = pow(r273685, r273689);
double r273691 = 1.0;
double r273692 = 10.0;
double r273693 = r273692 * r273685;
double r273694 = r273691 + r273693;
double r273695 = r273685 * r273685;
double r273696 = r273694 + r273695;
double r273697 = r273690 / r273696;
double r273698 = r273688 * r273697;
double r273699 = -1.0;
double r273700 = 1.0;
double r273701 = r273700 / r273685;
double r273702 = log(r273701);
double r273703 = r273689 * r273702;
double r273704 = r273699 * r273703;
double r273705 = exp(r273704);
double r273706 = r273705 / r273685;
double r273707 = r273688 / r273685;
double r273708 = 99.0;
double r273709 = r273688 * r273705;
double r273710 = 4.0;
double r273711 = pow(r273685, r273710);
double r273712 = r273709 / r273711;
double r273713 = r273708 * r273712;
double r273714 = 3.0;
double r273715 = pow(r273685, r273714);
double r273716 = r273709 / r273715;
double r273717 = r273692 * r273716;
double r273718 = r273713 - r273717;
double r273719 = fma(r273706, r273707, r273718);
double r273720 = r273687 ? r273698 : r273719;
return r273720;
}



Bits error versus a



Bits error versus k



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