Average Error: 1.9 → 0.1
Time: 3.4s
Precision: 64
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\begin{array}{l} \mathbf{if}\;k \le 3.2205424189704093 \cdot 10^{149}:\\ \;\;\;\;\frac{\frac{a \cdot 1}{{\left(\frac{1}{k}\right)}^{m}}}{\left(1 + 10 \cdot k\right) + k \cdot k}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{\frac{a}{{k}^{3}} \cdot 1}{{\left(\frac{1}{k}\right)}^{m}}, \frac{99}{k} - 10, \frac{\frac{a}{k} \cdot {\left(\frac{1}{k}\right)}^{\left(-1 \cdot m\right)}}{k}\right)\\ \end{array}\]
\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}
\begin{array}{l}
\mathbf{if}\;k \le 3.2205424189704093 \cdot 10^{149}:\\
\;\;\;\;\frac{\frac{a \cdot 1}{{\left(\frac{1}{k}\right)}^{m}}}{\left(1 + 10 \cdot k\right) + k \cdot k}\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{\frac{a}{{k}^{3}} \cdot 1}{{\left(\frac{1}{k}\right)}^{m}}, \frac{99}{k} - 10, \frac{\frac{a}{k} \cdot {\left(\frac{1}{k}\right)}^{\left(-1 \cdot m\right)}}{k}\right)\\

\end{array}
double code(double a, double k, double m) {
	return ((a * pow(k, m)) / ((1.0 + (10.0 * k)) + (k * k)));
}
double code(double a, double k, double m) {
	double VAR;
	if ((k <= 3.2205424189704093e+149)) {
		VAR = (((a * 1.0) / pow((1.0 / k), m)) / ((1.0 + (10.0 * k)) + (k * k)));
	} else {
		VAR = fma((((a / pow(k, 3.0)) * 1.0) / pow((1.0 / k), m)), ((99.0 / k) - 10.0), (((a / k) * pow((1.0 / k), (-1.0 * m))) / k));
	}
	return VAR;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if k < 3.2205424189704093e+149

    1. Initial program 0.1

      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    2. Taylor expanded around inf 19.1

      \[\leadsto \frac{\color{blue}{a \cdot e^{-1 \cdot \left(m \cdot \log \left(\frac{1}{k}\right)\right)}}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    3. Simplified0.1

      \[\leadsto \frac{\color{blue}{\frac{a \cdot 1}{{\left(\frac{1}{k}\right)}^{m}}}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]

    if 3.2205424189704093e+149 < k

    1. Initial program 9.1

      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    2. Taylor expanded around inf 9.1

      \[\leadsto \color{blue}{\left(\frac{a \cdot e^{-1 \cdot \left(m \cdot \log \left(\frac{1}{k}\right)\right)}}{{k}^{2}} + 99 \cdot \frac{a \cdot e^{-1 \cdot \left(m \cdot \log \left(\frac{1}{k}\right)\right)}}{{k}^{4}}\right) - 10 \cdot \frac{a \cdot e^{-1 \cdot \left(m \cdot \log \left(\frac{1}{k}\right)\right)}}{{k}^{3}}}\]
    3. Simplified0.1

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\frac{a}{{k}^{3}} \cdot 1}{{\left(\frac{1}{k}\right)}^{m}}, \frac{99}{k} - 10, \frac{\frac{a}{k} \cdot {\left(\frac{1}{k}\right)}^{\left(-1 \cdot m\right)}}{k}\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;k \le 3.2205424189704093 \cdot 10^{149}:\\ \;\;\;\;\frac{\frac{a \cdot 1}{{\left(\frac{1}{k}\right)}^{m}}}{\left(1 + 10 \cdot k\right) + k \cdot k}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{\frac{a}{{k}^{3}} \cdot 1}{{\left(\frac{1}{k}\right)}^{m}}, \frac{99}{k} - 10, \frac{\frac{a}{k} \cdot {\left(\frac{1}{k}\right)}^{\left(-1 \cdot m\right)}}{k}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020078 +o rules:numerics
(FPCore (a k m)
  :name "Falkner and Boettcher, Appendix A"
  :precision binary64
  (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))