\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 5.244008546125697 \cdot 10^{+140}:\\
\;\;\;\;\frac{{\left(\sqrt[3]{k}\right)}^{m} \cdot a}{\mathsf{fma}\left(\left(k + 10\right), k, 1\right)} \cdot {\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)}^{m}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(-10, \left(\frac{\frac{e^{m \cdot \log k} \cdot \frac{a}{k}}{k}}{k}\right), \left(\frac{\frac{99}{k}}{k} \cdot \frac{e^{m \cdot \log k} \cdot \frac{a}{k}}{k} + \frac{e^{m \cdot \log k} \cdot \frac{a}{k}}{k}\right)\right)\\
\end{array}double f(double a, double k, double m) {
double r7986600 = a;
double r7986601 = k;
double r7986602 = m;
double r7986603 = pow(r7986601, r7986602);
double r7986604 = r7986600 * r7986603;
double r7986605 = 1.0;
double r7986606 = 10.0;
double r7986607 = r7986606 * r7986601;
double r7986608 = r7986605 + r7986607;
double r7986609 = r7986601 * r7986601;
double r7986610 = r7986608 + r7986609;
double r7986611 = r7986604 / r7986610;
return r7986611;
}
double f(double a, double k, double m) {
double r7986612 = k;
double r7986613 = 5.244008546125697e+140;
bool r7986614 = r7986612 <= r7986613;
double r7986615 = cbrt(r7986612);
double r7986616 = m;
double r7986617 = pow(r7986615, r7986616);
double r7986618 = a;
double r7986619 = r7986617 * r7986618;
double r7986620 = 10.0;
double r7986621 = r7986612 + r7986620;
double r7986622 = 1.0;
double r7986623 = fma(r7986621, r7986612, r7986622);
double r7986624 = r7986619 / r7986623;
double r7986625 = r7986615 * r7986615;
double r7986626 = pow(r7986625, r7986616);
double r7986627 = r7986624 * r7986626;
double r7986628 = -10.0;
double r7986629 = log(r7986612);
double r7986630 = r7986616 * r7986629;
double r7986631 = exp(r7986630);
double r7986632 = r7986618 / r7986612;
double r7986633 = r7986631 * r7986632;
double r7986634 = r7986633 / r7986612;
double r7986635 = r7986634 / r7986612;
double r7986636 = 99.0;
double r7986637 = r7986636 / r7986612;
double r7986638 = r7986637 / r7986612;
double r7986639 = r7986638 * r7986634;
double r7986640 = r7986639 + r7986634;
double r7986641 = fma(r7986628, r7986635, r7986640);
double r7986642 = r7986614 ? r7986627 : r7986641;
return r7986642;
}



Bits error versus a



Bits error versus k



Bits error versus m
if k < 5.244008546125697e+140Initial program 0.1
Simplified0.1
rmApplied add-cube-cbrt0.1
Applied unpow-prod-down0.1
Applied associate-*l*0.0
rmApplied *-un-lft-identity0.0
Applied times-frac0.1
Simplified0.1
if 5.244008546125697e+140 < k Initial program 9.7
Simplified9.7
Taylor expanded around inf 9.7
Simplified0.1
Final simplification0.1
herbie shell --seed 2019133 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))