\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 3.899886463060430542828981650483975689114 \cdot 10^{109}:\\
\;\;\;\;\frac{a}{\frac{\mathsf{fma}\left(k, k + 10, 1\right)}{{k}^{m}}}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(99, \frac{e^{\log k \cdot m}}{\frac{\left(k \cdot k\right) \cdot \left(k \cdot k\right)}{a}}, \frac{e^{\log k \cdot m}}{k} \cdot \frac{a}{k} - \frac{10 \cdot e^{\log k \cdot m}}{\frac{k}{\frac{a}{k \cdot k}}}\right)\\
\end{array}double f(double a, double k, double m) {
double r10547471 = a;
double r10547472 = k;
double r10547473 = m;
double r10547474 = pow(r10547472, r10547473);
double r10547475 = r10547471 * r10547474;
double r10547476 = 1.0;
double r10547477 = 10.0;
double r10547478 = r10547477 * r10547472;
double r10547479 = r10547476 + r10547478;
double r10547480 = r10547472 * r10547472;
double r10547481 = r10547479 + r10547480;
double r10547482 = r10547475 / r10547481;
return r10547482;
}
double f(double a, double k, double m) {
double r10547483 = k;
double r10547484 = 3.8998864630604305e+109;
bool r10547485 = r10547483 <= r10547484;
double r10547486 = a;
double r10547487 = 10.0;
double r10547488 = r10547483 + r10547487;
double r10547489 = 1.0;
double r10547490 = fma(r10547483, r10547488, r10547489);
double r10547491 = m;
double r10547492 = pow(r10547483, r10547491);
double r10547493 = r10547490 / r10547492;
double r10547494 = r10547486 / r10547493;
double r10547495 = 99.0;
double r10547496 = log(r10547483);
double r10547497 = r10547496 * r10547491;
double r10547498 = exp(r10547497);
double r10547499 = r10547483 * r10547483;
double r10547500 = r10547499 * r10547499;
double r10547501 = r10547500 / r10547486;
double r10547502 = r10547498 / r10547501;
double r10547503 = r10547498 / r10547483;
double r10547504 = r10547486 / r10547483;
double r10547505 = r10547503 * r10547504;
double r10547506 = r10547487 * r10547498;
double r10547507 = r10547486 / r10547499;
double r10547508 = r10547483 / r10547507;
double r10547509 = r10547506 / r10547508;
double r10547510 = r10547505 - r10547509;
double r10547511 = fma(r10547495, r10547502, r10547510);
double r10547512 = r10547485 ? r10547494 : r10547511;
return r10547512;
}



Bits error versus a



Bits error versus k



Bits error versus m
if k < 3.8998864630604305e+109Initial program 0.1
Simplified0.1
rmApplied div-inv0.1
rmApplied un-div-inv0.1
if 3.8998864630604305e+109 < k Initial program 7.9
Simplified7.9
Taylor expanded around inf 7.9
Simplified0.1
Final simplification0.1
herbie shell --seed 2019174 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
(/ (* a (pow k m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))