Average Error: 2.1 → 0.2
Time: 33.1s
Precision: 64
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\begin{array}{l} \mathbf{if}\;k \le 1.019499051488994452424440699775966803008 \cdot 10^{135}:\\ \;\;\;\;\frac{a}{\frac{\mathsf{fma}\left(k, 10 + k, 1\right)}{{k}^{m}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(\frac{k}{a}, \frac{k}{{\left(\frac{1}{k}\right)}^{\left(-m\right)}}, \mathsf{fma}\left(1, \frac{{k}^{\left(-m\right)}}{a}, \frac{10}{a} \cdot \frac{k}{{\left(\frac{1}{k}\right)}^{\left(-m\right)}}\right)\right)}\\ \end{array}\]
\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}
\begin{array}{l}
\mathbf{if}\;k \le 1.019499051488994452424440699775966803008 \cdot 10^{135}:\\
\;\;\;\;\frac{a}{\frac{\mathsf{fma}\left(k, 10 + k, 1\right)}{{k}^{m}}}\\

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

\end{array}
double f(double a, double k, double m) {
        double r172168 = a;
        double r172169 = k;
        double r172170 = m;
        double r172171 = pow(r172169, r172170);
        double r172172 = r172168 * r172171;
        double r172173 = 1.0;
        double r172174 = 10.0;
        double r172175 = r172174 * r172169;
        double r172176 = r172173 + r172175;
        double r172177 = r172169 * r172169;
        double r172178 = r172176 + r172177;
        double r172179 = r172172 / r172178;
        return r172179;
}

double f(double a, double k, double m) {
        double r172180 = k;
        double r172181 = 1.0194990514889945e+135;
        bool r172182 = r172180 <= r172181;
        double r172183 = a;
        double r172184 = 10.0;
        double r172185 = r172184 + r172180;
        double r172186 = 1.0;
        double r172187 = fma(r172180, r172185, r172186);
        double r172188 = m;
        double r172189 = pow(r172180, r172188);
        double r172190 = r172187 / r172189;
        double r172191 = r172183 / r172190;
        double r172192 = 1.0;
        double r172193 = r172180 / r172183;
        double r172194 = r172192 / r172180;
        double r172195 = -r172188;
        double r172196 = pow(r172194, r172195);
        double r172197 = r172180 / r172196;
        double r172198 = pow(r172180, r172195);
        double r172199 = r172198 / r172183;
        double r172200 = r172184 / r172183;
        double r172201 = r172200 * r172197;
        double r172202 = fma(r172186, r172199, r172201);
        double r172203 = fma(r172193, r172197, r172202);
        double r172204 = r172192 / r172203;
        double r172205 = r172182 ? r172191 : r172204;
        return r172205;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 1.0194990514889945e+135

    1. Initial program 0.1

      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    2. Simplified0.0

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

    if 1.0194990514889945e+135 < k

    1. Initial program 9.5

      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    2. Simplified9.5

      \[\leadsto \color{blue}{\frac{a}{\frac{\mathsf{fma}\left(k, 10 + k, 1\right)}{{k}^{m}}}}\]
    3. Using strategy rm
    4. Applied clear-num9.5

      \[\leadsto \color{blue}{\frac{1}{\frac{\frac{\mathsf{fma}\left(k, 10 + k, 1\right)}{{k}^{m}}}{a}}}\]
    5. Taylor expanded around inf 9.5

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

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

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

Reproduce

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