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

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

\end{array}
double f(double a, double k, double m) {
        double r6773954 = a;
        double r6773955 = k;
        double r6773956 = m;
        double r6773957 = pow(r6773955, r6773956);
        double r6773958 = r6773954 * r6773957;
        double r6773959 = 1.0;
        double r6773960 = 10.0;
        double r6773961 = r6773960 * r6773955;
        double r6773962 = r6773959 + r6773961;
        double r6773963 = r6773955 * r6773955;
        double r6773964 = r6773962 + r6773963;
        double r6773965 = r6773958 / r6773964;
        return r6773965;
}

double f(double a, double k, double m) {
        double r6773966 = k;
        double r6773967 = 2069308732.6709836;
        bool r6773968 = r6773966 <= r6773967;
        double r6773969 = a;
        double r6773970 = m;
        double r6773971 = pow(r6773966, r6773970);
        double r6773972 = 10.0;
        double r6773973 = r6773972 + r6773966;
        double r6773974 = 1.0;
        double r6773975 = fma(r6773973, r6773966, r6773974);
        double r6773976 = r6773975 * r6773975;
        double r6773977 = r6773976 * r6773975;
        double r6773978 = cbrt(r6773977);
        double r6773979 = r6773971 / r6773978;
        double r6773980 = r6773969 * r6773979;
        double r6773981 = r6773969 / r6773966;
        double r6773982 = r6773981 / r6773966;
        double r6773983 = -10.0;
        double r6773984 = r6773983 / r6773966;
        double r6773985 = 99.0;
        double r6773986 = r6773966 * r6773966;
        double r6773987 = r6773985 / r6773986;
        double r6773988 = r6773984 + r6773987;
        double r6773989 = fma(r6773982, r6773988, r6773982);
        double r6773990 = r6773989 * r6773971;
        double r6773991 = r6773968 ? r6773980 : r6773990;
        return r6773991;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 2069308732.6709836

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

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

    if 2069308732.6709836 < k

    1. Initial program 5.8

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

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

      \[\leadsto \color{blue}{\left({k}^{m} \cdot \frac{1}{\mathsf{fma}\left(k + 10, k, 1\right)}\right)} \cdot a\]
    5. Applied associate-*l*5.8

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

      \[\leadsto {k}^{m} \cdot \color{blue}{\frac{a}{\mathsf{fma}\left(10 + k, k, 1\right)}}\]
    7. Using strategy rm
    8. Applied clear-num6.1

      \[\leadsto {k}^{m} \cdot \color{blue}{\frac{1}{\frac{\mathsf{fma}\left(10 + k, k, 1\right)}{a}}}\]
    9. Taylor expanded around 0 6.1

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

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

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

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

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

Reproduce

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