\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 1.8129058405319809 \cdot 10^{106}:\\
\;\;\;\;\frac{a \cdot {\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)}^{m}}{\frac{\left(1 + 10 \cdot k\right) + k \cdot k}{{\left(\sqrt[3]{k}\right)}^{m}}}\\
\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 r309240 = a;
double r309241 = k;
double r309242 = m;
double r309243 = pow(r309241, r309242);
double r309244 = r309240 * r309243;
double r309245 = 1.0;
double r309246 = 10.0;
double r309247 = r309246 * r309241;
double r309248 = r309245 + r309247;
double r309249 = r309241 * r309241;
double r309250 = r309248 + r309249;
double r309251 = r309244 / r309250;
return r309251;
}
double f(double a, double k, double m) {
double r309252 = k;
double r309253 = 1.812905840531981e+106;
bool r309254 = r309252 <= r309253;
double r309255 = a;
double r309256 = cbrt(r309252);
double r309257 = r309256 * r309256;
double r309258 = m;
double r309259 = pow(r309257, r309258);
double r309260 = r309255 * r309259;
double r309261 = 1.0;
double r309262 = 10.0;
double r309263 = r309262 * r309252;
double r309264 = r309261 + r309263;
double r309265 = r309252 * r309252;
double r309266 = r309264 + r309265;
double r309267 = pow(r309256, r309258);
double r309268 = r309266 / r309267;
double r309269 = r309260 / r309268;
double r309270 = -1.0;
double r309271 = 1.0;
double r309272 = r309271 / r309252;
double r309273 = log(r309272);
double r309274 = r309258 * r309273;
double r309275 = r309270 * r309274;
double r309276 = exp(r309275);
double r309277 = r309276 / r309252;
double r309278 = r309255 / r309252;
double r309279 = 99.0;
double r309280 = r309255 * r309276;
double r309281 = 4.0;
double r309282 = pow(r309252, r309281);
double r309283 = r309280 / r309282;
double r309284 = r309279 * r309283;
double r309285 = 3.0;
double r309286 = pow(r309252, r309285);
double r309287 = r309280 / r309286;
double r309288 = r309262 * r309287;
double r309289 = r309284 - r309288;
double r309290 = fma(r309277, r309278, r309289);
double r309291 = r309254 ? r309269 : r309290;
return r309291;
}



Bits error versus a



Bits error versus k



Bits error versus m
if k < 1.812905840531981e+106Initial program 0.1
rmApplied add-cube-cbrt0.1
Applied unpow-prod-down0.1
Applied associate-*r*0.1
rmApplied associate-/l*0.1
if 1.812905840531981e+106 < k Initial program 8.6
Taylor expanded around inf 8.6
Simplified0.2
Final simplification0.1
herbie shell --seed 2020056 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))