\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\begin{array}{l}
\mathbf{if}\;m \le -5.6188801841041832 \cdot 10^{-6} \lor \neg \left(m \le 1.1963652514745433 \cdot 10^{-19}\right):\\
\;\;\;\;\frac{\frac{1}{\mathsf{fma}\left(k, 10 + k, 1\right)}}{\frac{1}{a \cdot {k}^{m}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\mathsf{fma}\left(\frac{k}{{\left(\frac{1}{k}\right)}^{\left(-m\right)}}, \frac{10}{a}, \mathsf{fma}\left(\frac{k}{{\left(\frac{1}{k}\right)}^{\left(-m\right)}}, \frac{k}{a}, \frac{\frac{1}{a}}{{\left(\frac{1}{k}\right)}^{\left(-m\right)}}\right)\right)}\\
\end{array}double f(double a, double k, double m) {
double r194065 = a;
double r194066 = k;
double r194067 = m;
double r194068 = pow(r194066, r194067);
double r194069 = r194065 * r194068;
double r194070 = 1.0;
double r194071 = 10.0;
double r194072 = r194071 * r194066;
double r194073 = r194070 + r194072;
double r194074 = r194066 * r194066;
double r194075 = r194073 + r194074;
double r194076 = r194069 / r194075;
return r194076;
}
double f(double a, double k, double m) {
double r194077 = m;
double r194078 = -5.618880184104183e-06;
bool r194079 = r194077 <= r194078;
double r194080 = 1.1963652514745433e-19;
bool r194081 = r194077 <= r194080;
double r194082 = !r194081;
bool r194083 = r194079 || r194082;
double r194084 = 1.0;
double r194085 = k;
double r194086 = 10.0;
double r194087 = r194086 + r194085;
double r194088 = 1.0;
double r194089 = fma(r194085, r194087, r194088);
double r194090 = r194084 / r194089;
double r194091 = a;
double r194092 = pow(r194085, r194077);
double r194093 = r194091 * r194092;
double r194094 = r194084 / r194093;
double r194095 = r194090 / r194094;
double r194096 = r194084 / r194085;
double r194097 = -r194077;
double r194098 = pow(r194096, r194097);
double r194099 = r194085 / r194098;
double r194100 = r194086 / r194091;
double r194101 = r194085 / r194091;
double r194102 = r194088 / r194091;
double r194103 = r194102 / r194098;
double r194104 = fma(r194099, r194101, r194103);
double r194105 = fma(r194099, r194100, r194104);
double r194106 = r194084 / r194105;
double r194107 = r194083 ? r194095 : r194106;
return r194107;
}



Bits error versus a



Bits error versus k



Bits error versus m
if m < -5.618880184104183e-06 or 1.1963652514745433e-19 < m Initial program 0.2
rmApplied clear-num0.2
Simplified0.1
rmApplied div-inv0.1
Applied associate-/r*0.1
if -5.618880184104183e-06 < m < 1.1963652514745433e-19Initial program 4.0
rmApplied clear-num4.3
Simplified4.3
Taylor expanded around inf 4.3
Simplified0.5
Final simplification0.3
herbie shell --seed 2019198 +o rules:numerics
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
(/ (* a (pow k m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))