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

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

\end{array}
double f(double a, double k, double m) {
        double r176694 = a;
        double r176695 = k;
        double r176696 = m;
        double r176697 = pow(r176695, r176696);
        double r176698 = r176694 * r176697;
        double r176699 = 1.0;
        double r176700 = 10.0;
        double r176701 = r176700 * r176695;
        double r176702 = r176699 + r176701;
        double r176703 = r176695 * r176695;
        double r176704 = r176702 + r176703;
        double r176705 = r176698 / r176704;
        return r176705;
}

double f(double a, double k, double m) {
        double r176706 = k;
        double r176707 = 8.766559954678734e+84;
        bool r176708 = r176706 <= r176707;
        double r176709 = a;
        double r176710 = m;
        double r176711 = pow(r176706, r176710);
        double r176712 = r176709 * r176711;
        double r176713 = 1.0;
        double r176714 = 10.0;
        double r176715 = 1.0;
        double r176716 = fma(r176714, r176706, r176715);
        double r176717 = fma(r176706, r176706, r176716);
        double r176718 = r176713 / r176717;
        double r176719 = r176712 * r176718;
        double r176720 = 99.0;
        double r176721 = r176713 / r176706;
        double r176722 = -0.6666666666666666;
        double r176723 = pow(r176721, r176722);
        double r176724 = pow(r176723, r176710);
        double r176725 = r176724 * r176709;
        double r176726 = 4.0;
        double r176727 = pow(r176706, r176726);
        double r176728 = -0.3333333333333333;
        double r176729 = pow(r176721, r176728);
        double r176730 = pow(r176729, r176710);
        double r176731 = r176727 / r176730;
        double r176732 = r176725 / r176731;
        double r176733 = r176725 / r176706;
        double r176734 = r176730 / r176706;
        double r176735 = r176733 * r176734;
        double r176736 = r176725 * r176730;
        double r176737 = r176714 * r176736;
        double r176738 = 3.0;
        double r176739 = pow(r176706, r176738);
        double r176740 = r176737 / r176739;
        double r176741 = r176735 - r176740;
        double r176742 = fma(r176720, r176732, r176741);
        double r176743 = r176708 ? r176719 : r176742;
        return r176743;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 8.766559954678734e+84

    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 div-inv0.1

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

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

    if 8.766559954678734e+84 < k

    1. Initial program 7.0

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

      \[\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-down7.0

      \[\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*7.0

      \[\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}\]
    6. Taylor expanded around inf 7.0

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

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

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

Reproduce

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