Average Error: 2.3 → 0.1
Time: 26.8s
Precision: 64
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\begin{array}{l} \mathbf{if}\;k \le 5.413206367433749081791782278643320672943 \cdot 10^{73}:\\ \;\;\;\;\frac{{\left(\sqrt[3]{k}\right)}^{m} \cdot \left(a \cdot {\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)}^{m}\right)}{\left(10 \cdot k + 1\right) + k \cdot k}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{e^{m \cdot \log k}}{k}, \frac{a}{k}, \mathsf{fma}\left(\frac{99}{k \cdot k}, \frac{a}{k} \cdot \frac{e^{m \cdot \log k}}{k}, \left(-\frac{10}{k}\right) \cdot \left(\frac{a}{k} \cdot \frac{e^{m \cdot \log k}}{k}\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 5.413206367433749081791782278643320672943 \cdot 10^{73}:\\
\;\;\;\;\frac{{\left(\sqrt[3]{k}\right)}^{m} \cdot \left(a \cdot {\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)}^{m}\right)}{\left(10 \cdot k + 1\right) + k \cdot k}\\

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

\end{array}
double f(double a, double k, double m) {
        double r7553551 = a;
        double r7553552 = k;
        double r7553553 = m;
        double r7553554 = pow(r7553552, r7553553);
        double r7553555 = r7553551 * r7553554;
        double r7553556 = 1.0;
        double r7553557 = 10.0;
        double r7553558 = r7553557 * r7553552;
        double r7553559 = r7553556 + r7553558;
        double r7553560 = r7553552 * r7553552;
        double r7553561 = r7553559 + r7553560;
        double r7553562 = r7553555 / r7553561;
        return r7553562;
}

double f(double a, double k, double m) {
        double r7553563 = k;
        double r7553564 = 5.413206367433749e+73;
        bool r7553565 = r7553563 <= r7553564;
        double r7553566 = cbrt(r7553563);
        double r7553567 = m;
        double r7553568 = pow(r7553566, r7553567);
        double r7553569 = a;
        double r7553570 = r7553566 * r7553566;
        double r7553571 = pow(r7553570, r7553567);
        double r7553572 = r7553569 * r7553571;
        double r7553573 = r7553568 * r7553572;
        double r7553574 = 10.0;
        double r7553575 = r7553574 * r7553563;
        double r7553576 = 1.0;
        double r7553577 = r7553575 + r7553576;
        double r7553578 = r7553563 * r7553563;
        double r7553579 = r7553577 + r7553578;
        double r7553580 = r7553573 / r7553579;
        double r7553581 = log(r7553563);
        double r7553582 = r7553567 * r7553581;
        double r7553583 = exp(r7553582);
        double r7553584 = r7553583 / r7553563;
        double r7553585 = r7553569 / r7553563;
        double r7553586 = 99.0;
        double r7553587 = r7553586 / r7553578;
        double r7553588 = r7553585 * r7553584;
        double r7553589 = r7553574 / r7553563;
        double r7553590 = -r7553589;
        double r7553591 = r7553590 * r7553588;
        double r7553592 = fma(r7553587, r7553588, r7553591);
        double r7553593 = fma(r7553584, r7553585, r7553592);
        double r7553594 = r7553565 ? r7553580 : r7553593;
        return r7553594;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 5.413206367433749e+73

    1. Initial program 0.1

      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt0.1

      \[\leadsto \frac{a \cdot {\color{blue}{\left(\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right) \cdot \sqrt[3]{k}\right)}}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    4. Applied unpow-prod-down0.1

      \[\leadsto \frac{a \cdot \color{blue}{\left({\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)}^{m} \cdot {\left(\sqrt[3]{k}\right)}^{m}\right)}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
    5. Applied associate-*r*0.1

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

    if 5.413206367433749e+73 < k

    1. Initial program 7.8

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

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

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

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

Reproduce

herbie shell --seed 2019171 +o rules:numerics
(FPCore (a k m)
  :name "Falkner and Boettcher, Appendix A"
  (/ (* a (pow k m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))