\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;k \le 4.372453420225965504107282237030197699145 \cdot 10^{54}:\\
\;\;\;\;\frac{1}{k \cdot \left(10 + k\right) + 1} \cdot \left({k}^{m} \cdot a\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{{\left(e^{m}\right)}^{\left(\log k\right)}}{k} \cdot \frac{a}{k} - \frac{{\left(e^{m}\right)}^{\left(\log k\right)} \cdot \left(10 \cdot a\right)}{{k}^{3}}\right) + \frac{\left(99 \cdot a\right) \cdot {\left(e^{m}\right)}^{\left(\log k\right)}}{{k}^{4}}\\
\end{array}double f(double a, double k, double m) {
double r364609 = a;
double r364610 = k;
double r364611 = m;
double r364612 = pow(r364610, r364611);
double r364613 = r364609 * r364612;
double r364614 = 1.0;
double r364615 = 10.0;
double r364616 = r364615 * r364610;
double r364617 = r364614 + r364616;
double r364618 = r364610 * r364610;
double r364619 = r364617 + r364618;
double r364620 = r364613 / r364619;
return r364620;
}
double f(double a, double k, double m) {
double r364621 = k;
double r364622 = 4.3724534202259655e+54;
bool r364623 = r364621 <= r364622;
double r364624 = 1.0;
double r364625 = 10.0;
double r364626 = r364625 + r364621;
double r364627 = r364621 * r364626;
double r364628 = 1.0;
double r364629 = r364627 + r364628;
double r364630 = r364624 / r364629;
double r364631 = m;
double r364632 = pow(r364621, r364631);
double r364633 = a;
double r364634 = r364632 * r364633;
double r364635 = r364630 * r364634;
double r364636 = exp(r364631);
double r364637 = log(r364621);
double r364638 = pow(r364636, r364637);
double r364639 = r364638 / r364621;
double r364640 = r364633 / r364621;
double r364641 = r364639 * r364640;
double r364642 = r364625 * r364633;
double r364643 = r364638 * r364642;
double r364644 = 3.0;
double r364645 = pow(r364621, r364644);
double r364646 = r364643 / r364645;
double r364647 = r364641 - r364646;
double r364648 = 99.0;
double r364649 = r364648 * r364633;
double r364650 = r364649 * r364638;
double r364651 = 4.0;
double r364652 = pow(r364621, r364651);
double r364653 = r364650 / r364652;
double r364654 = r364647 + r364653;
double r364655 = r364623 ? r364635 : r364654;
return r364655;
}



Bits error versus a



Bits error versus k



Bits error versus m
Results
if k < 4.3724534202259655e+54Initial program 0.1
Simplified0.1
rmApplied div-inv0.1
Applied *-un-lft-identity0.1
Applied times-frac0.1
Simplified0.1
if 4.3724534202259655e+54 < k Initial program 6.6
Simplified6.6
Taylor expanded around -inf 64.0
Simplified0.4
Final simplification0.2
herbie shell --seed 2019350
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))