Average Error: 2.1 → 0.2
Time: 18.9s
Precision: 64
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\begin{array}{l} \mathbf{if}\;k \le 9.32143918529101071 \cdot 10^{122}:\\ \;\;\;\;\frac{\left(\left(a \cdot {\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)}^{\left(\frac{m}{2}\right)}\right) \cdot {\left(\sqrt[3]{k}\right)}^{\left(\frac{m}{2}\right)}\right) \cdot {k}^{\left(\frac{m}{2}\right)}}{\left(1 + 10 \cdot k\right) + k \cdot k}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{{\left(\frac{1}{k}\right)}^{\left(-m\right)}}{k}, \frac{a}{k}, \mathsf{fma}\left(\frac{{\left(\frac{1}{k}\right)}^{\left(-m\right)}}{\frac{{k}^{4}}{a}}, 99, -\frac{\left(10 \cdot a\right) \cdot {\left(\frac{1}{k}\right)}^{\left(-m\right)}}{{k}^{3}}\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 9.32143918529101071 \cdot 10^{122}:\\
\;\;\;\;\frac{\left(\left(a \cdot {\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)}^{\left(\frac{m}{2}\right)}\right) \cdot {\left(\sqrt[3]{k}\right)}^{\left(\frac{m}{2}\right)}\right) \cdot {k}^{\left(\frac{m}{2}\right)}}{\left(1 + 10 \cdot k\right) + k \cdot k}\\

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

\end{array}
double f(double a, double k, double m) {
        double r101632 = a;
        double r101633 = k;
        double r101634 = m;
        double r101635 = pow(r101633, r101634);
        double r101636 = r101632 * r101635;
        double r101637 = 1.0;
        double r101638 = 10.0;
        double r101639 = r101638 * r101633;
        double r101640 = r101637 + r101639;
        double r101641 = r101633 * r101633;
        double r101642 = r101640 + r101641;
        double r101643 = r101636 / r101642;
        return r101643;
}

double f(double a, double k, double m) {
        double r101644 = k;
        double r101645 = 9.32143918529101e+122;
        bool r101646 = r101644 <= r101645;
        double r101647 = a;
        double r101648 = cbrt(r101644);
        double r101649 = r101648 * r101648;
        double r101650 = m;
        double r101651 = 2.0;
        double r101652 = r101650 / r101651;
        double r101653 = pow(r101649, r101652);
        double r101654 = r101647 * r101653;
        double r101655 = pow(r101648, r101652);
        double r101656 = r101654 * r101655;
        double r101657 = pow(r101644, r101652);
        double r101658 = r101656 * r101657;
        double r101659 = 1.0;
        double r101660 = 10.0;
        double r101661 = r101660 * r101644;
        double r101662 = r101659 + r101661;
        double r101663 = r101644 * r101644;
        double r101664 = r101662 + r101663;
        double r101665 = r101658 / r101664;
        double r101666 = 1.0;
        double r101667 = r101666 / r101644;
        double r101668 = -r101650;
        double r101669 = pow(r101667, r101668);
        double r101670 = r101669 / r101644;
        double r101671 = r101647 / r101644;
        double r101672 = 4.0;
        double r101673 = pow(r101644, r101672);
        double r101674 = r101673 / r101647;
        double r101675 = r101669 / r101674;
        double r101676 = 99.0;
        double r101677 = r101660 * r101647;
        double r101678 = r101677 * r101669;
        double r101679 = 3.0;
        double r101680 = pow(r101644, r101679);
        double r101681 = r101678 / r101680;
        double r101682 = -r101681;
        double r101683 = fma(r101675, r101676, r101682);
        double r101684 = fma(r101670, r101671, r101683);
        double r101685 = r101646 ? r101665 : r101684;
        return r101685;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 9.32143918529101e+122

    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 sqr-pow0.1

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

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

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

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

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

    if 9.32143918529101e+122 < k

    1. Initial program 9.2

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

      \[\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.3

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

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

Reproduce

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