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

\mathbf{else}:\\
\;\;\;\;\left(\left(\frac{\frac{a}{k}}{k} \cdot \left(\left(\frac{99}{{k}^{2}} + 1\right) - \frac{10}{k}\right)\right) \cdot {\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)}^{m}\right) \cdot {\left(\sqrt[3]{k}\right)}^{m}\\

\end{array}
double f(double a, double k, double m) {
        double r258677 = a;
        double r258678 = k;
        double r258679 = m;
        double r258680 = pow(r258678, r258679);
        double r258681 = r258677 * r258680;
        double r258682 = 1.0;
        double r258683 = 10.0;
        double r258684 = r258683 * r258678;
        double r258685 = r258682 + r258684;
        double r258686 = r258678 * r258678;
        double r258687 = r258685 + r258686;
        double r258688 = r258681 / r258687;
        return r258688;
}

double f(double a, double k, double m) {
        double r258689 = k;
        double r258690 = 8.868861418140044e+47;
        bool r258691 = r258689 <= r258690;
        double r258692 = a;
        double r258693 = 10.0;
        double r258694 = r258693 + r258689;
        double r258695 = 1.0;
        double r258696 = fma(r258689, r258694, r258695);
        double r258697 = r258692 / r258696;
        double r258698 = cbrt(r258689);
        double r258699 = r258698 * r258698;
        double r258700 = m;
        double r258701 = pow(r258699, r258700);
        double r258702 = r258697 * r258701;
        double r258703 = pow(r258698, r258700);
        double r258704 = r258702 * r258703;
        double r258705 = r258692 / r258689;
        double r258706 = r258705 / r258689;
        double r258707 = 99.0;
        double r258708 = 2.0;
        double r258709 = pow(r258689, r258708);
        double r258710 = r258707 / r258709;
        double r258711 = 1.0;
        double r258712 = r258710 + r258711;
        double r258713 = r258693 / r258689;
        double r258714 = r258712 - r258713;
        double r258715 = r258706 * r258714;
        double r258716 = r258715 * r258701;
        double r258717 = r258716 * r258703;
        double r258718 = r258691 ? r258704 : r258717;
        return r258718;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 8.868861418140044e+47

    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}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot {k}^{m}}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt0.0

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

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

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

    if 8.868861418140044e+47 < k

    1. Initial program 6.3

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

      \[\leadsto \color{blue}{\frac{a}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot {k}^{m}}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt6.2

      \[\leadsto \frac{a}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot {\color{blue}{\left(\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right) \cdot \sqrt[3]{k}\right)}}^{m}\]
    5. Applied unpow-prod-down6.2

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

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

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

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

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

Reproduce

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