\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 1.4321778772581635 \cdot 10^{152}:\\
\;\;\;\;\frac{{k}^{m}}{\mathsf{fma}\left(k, k, \mathsf{fma}\left(k, 10, 1\right)\right)} \cdot a\\
\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 r329157 = a;
double r329158 = k;
double r329159 = m;
double r329160 = pow(r329158, r329159);
double r329161 = r329157 * r329160;
double r329162 = 1.0;
double r329163 = 10.0;
double r329164 = r329163 * r329158;
double r329165 = r329162 + r329164;
double r329166 = r329158 * r329158;
double r329167 = r329165 + r329166;
double r329168 = r329161 / r329167;
return r329168;
}
double f(double a, double k, double m) {
double r329169 = k;
double r329170 = 1.4321778772581635e+152;
bool r329171 = r329169 <= r329170;
double r329172 = m;
double r329173 = pow(r329169, r329172);
double r329174 = 10.0;
double r329175 = 1.0;
double r329176 = fma(r329169, r329174, r329175);
double r329177 = fma(r329169, r329169, r329176);
double r329178 = r329173 / r329177;
double r329179 = a;
double r329180 = r329178 * r329179;
double r329181 = -1.0;
double r329182 = 1.0;
double r329183 = r329182 / r329169;
double r329184 = log(r329183);
double r329185 = r329172 * r329184;
double r329186 = r329181 * r329185;
double r329187 = exp(r329186);
double r329188 = r329187 / r329169;
double r329189 = r329179 / r329169;
double r329190 = 99.0;
double r329191 = r329179 * r329187;
double r329192 = 4.0;
double r329193 = pow(r329169, r329192);
double r329194 = r329191 / r329193;
double r329195 = r329190 * r329194;
double r329196 = 3.0;
double r329197 = pow(r329169, r329196);
double r329198 = r329191 / r329197;
double r329199 = r329174 * r329198;
double r329200 = r329195 - r329199;
double r329201 = fma(r329188, r329189, r329200);
double r329202 = r329171 ? r329180 : r329201;
return r329202;
}



Bits error versus a



Bits error versus k



Bits error versus m
if k < 1.4321778772581635e+152Initial program 0.1
Simplified0.2
rmApplied associate-/r/0.1
if 1.4321778772581635e+152 < k Initial program 10.7
Simplified10.7
Taylor expanded around inf 10.7
Simplified0.1
Final simplification0.1
herbie shell --seed 2020039 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))