\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{1 + \left(k + 10\right) \cdot k}{{k}^{m}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{e^{\log k \cdot m} \cdot a}{k \cdot k} \cdot \frac{99}{k \cdot k} + \left(\frac{e^{\log k \cdot m}}{k} \cdot \frac{a}{k} - \frac{10 \cdot e^{\log k \cdot m}}{\frac{k \cdot \left(k \cdot k\right)}{a}}\right)\\
\end{array}double f(double a, double k, double m) {
double r11677887 = a;
double r11677888 = k;
double r11677889 = m;
double r11677890 = pow(r11677888, r11677889);
double r11677891 = r11677887 * r11677890;
double r11677892 = 1.0;
double r11677893 = 10.0;
double r11677894 = r11677893 * r11677888;
double r11677895 = r11677892 + r11677894;
double r11677896 = r11677888 * r11677888;
double r11677897 = r11677895 + r11677896;
double r11677898 = r11677891 / r11677897;
return r11677898;
}
double f(double a, double k, double m) {
double r11677899 = k;
double r11677900 = 3.8998864630604305e+109;
bool r11677901 = r11677899 <= r11677900;
double r11677902 = a;
double r11677903 = 1.0;
double r11677904 = 10.0;
double r11677905 = r11677899 + r11677904;
double r11677906 = r11677905 * r11677899;
double r11677907 = r11677903 + r11677906;
double r11677908 = m;
double r11677909 = pow(r11677899, r11677908);
double r11677910 = r11677907 / r11677909;
double r11677911 = r11677902 / r11677910;
double r11677912 = log(r11677899);
double r11677913 = r11677912 * r11677908;
double r11677914 = exp(r11677913);
double r11677915 = r11677914 * r11677902;
double r11677916 = r11677899 * r11677899;
double r11677917 = r11677915 / r11677916;
double r11677918 = 99.0;
double r11677919 = r11677918 / r11677916;
double r11677920 = r11677917 * r11677919;
double r11677921 = r11677914 / r11677899;
double r11677922 = r11677902 / r11677899;
double r11677923 = r11677921 * r11677922;
double r11677924 = r11677904 * r11677914;
double r11677925 = r11677899 * r11677916;
double r11677926 = r11677925 / r11677902;
double r11677927 = r11677924 / r11677926;
double r11677928 = r11677923 - r11677927;
double r11677929 = r11677920 + r11677928;
double r11677930 = r11677901 ? r11677911 : r11677929;
return r11677930;
}



Bits error versus a



Bits error versus k



Bits error versus m
Results
if k < 3.8998864630604305e+109Initial program 0.1
Simplified0.1
rmApplied *-commutative0.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
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
(/ (* a (pow k m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))