\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 1.701532077005042711992451302056047665849 \cdot 10^{116}:\\
\;\;\;\;\frac{{k}^{m} \cdot a}{\mathsf{fma}\left(k, k, \mathsf{fma}\left(k, 10, 1\right)\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 r346177 = a;
double r346178 = k;
double r346179 = m;
double r346180 = pow(r346178, r346179);
double r346181 = r346177 * r346180;
double r346182 = 1.0;
double r346183 = 10.0;
double r346184 = r346183 * r346178;
double r346185 = r346182 + r346184;
double r346186 = r346178 * r346178;
double r346187 = r346185 + r346186;
double r346188 = r346181 / r346187;
return r346188;
}
double f(double a, double k, double m) {
double r346189 = k;
double r346190 = 1.7015320770050427e+116;
bool r346191 = r346189 <= r346190;
double r346192 = m;
double r346193 = pow(r346189, r346192);
double r346194 = a;
double r346195 = r346193 * r346194;
double r346196 = 10.0;
double r346197 = 1.0;
double r346198 = fma(r346189, r346196, r346197);
double r346199 = fma(r346189, r346189, r346198);
double r346200 = r346195 / r346199;
double r346201 = -1.0;
double r346202 = 1.0;
double r346203 = r346202 / r346189;
double r346204 = log(r346203);
double r346205 = r346192 * r346204;
double r346206 = r346201 * r346205;
double r346207 = exp(r346206);
double r346208 = r346207 / r346189;
double r346209 = r346194 / r346189;
double r346210 = 99.0;
double r346211 = r346194 * r346207;
double r346212 = 4.0;
double r346213 = pow(r346189, r346212);
double r346214 = r346211 / r346213;
double r346215 = r346210 * r346214;
double r346216 = 3.0;
double r346217 = pow(r346189, r346216);
double r346218 = r346211 / r346217;
double r346219 = r346196 * r346218;
double r346220 = r346215 - r346219;
double r346221 = fma(r346208, r346209, r346220);
double r346222 = r346191 ? r346200 : r346221;
return r346222;
}



Bits error versus a



Bits error versus k



Bits error versus m
if k < 1.7015320770050427e+116Initial program 0.1
Simplified0.2
rmApplied associate-/r/0.1
rmApplied associate-*l/0.0
if 1.7015320770050427e+116 < k Initial program 8.3
Simplified8.4
Taylor expanded around inf 8.3
Simplified0.1
Final simplification0.1
herbie shell --seed 2019346 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))