\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 2.583856803657129482688066545879336071702 \cdot 10^{140}:\\
\;\;\;\;\frac{a \cdot {k}^{m}}{1 + \mathsf{fma}\left(10, k, k \cdot k\right)}\\
\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 r239746 = a;
double r239747 = k;
double r239748 = m;
double r239749 = pow(r239747, r239748);
double r239750 = r239746 * r239749;
double r239751 = 1.0;
double r239752 = 10.0;
double r239753 = r239752 * r239747;
double r239754 = r239751 + r239753;
double r239755 = r239747 * r239747;
double r239756 = r239754 + r239755;
double r239757 = r239750 / r239756;
return r239757;
}
double f(double a, double k, double m) {
double r239758 = k;
double r239759 = 2.5838568036571295e+140;
bool r239760 = r239758 <= r239759;
double r239761 = a;
double r239762 = m;
double r239763 = pow(r239758, r239762);
double r239764 = r239761 * r239763;
double r239765 = 1.0;
double r239766 = 10.0;
double r239767 = r239758 * r239758;
double r239768 = fma(r239766, r239758, r239767);
double r239769 = r239765 + r239768;
double r239770 = r239764 / r239769;
double r239771 = -1.0;
double r239772 = 1.0;
double r239773 = r239772 / r239758;
double r239774 = log(r239773);
double r239775 = r239762 * r239774;
double r239776 = r239771 * r239775;
double r239777 = exp(r239776);
double r239778 = r239777 / r239758;
double r239779 = r239761 / r239758;
double r239780 = 99.0;
double r239781 = r239761 * r239777;
double r239782 = 4.0;
double r239783 = pow(r239758, r239782);
double r239784 = r239781 / r239783;
double r239785 = r239780 * r239784;
double r239786 = 3.0;
double r239787 = pow(r239758, r239786);
double r239788 = r239781 / r239787;
double r239789 = r239766 * r239788;
double r239790 = r239785 - r239789;
double r239791 = fma(r239778, r239779, r239790);
double r239792 = r239760 ? r239770 : r239791;
return r239792;
}



Bits error versus a



Bits error versus k



Bits error versus m
if k < 2.5838568036571295e+140Initial program 0.1
rmApplied associate-+l+0.1
Simplified0.0
if 2.5838568036571295e+140 < k Initial program 9.6
Taylor expanded around inf 9.6
Simplified0.2
Final simplification0.1
herbie shell --seed 2019356 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))