Average Error: 2.1 → 0.2
Time: 43.2s
Precision: 64
Internal Precision: 320
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\begin{array}{l} \mathbf{if}\;k \le 8.257297814046181 \cdot 10^{+146}:\\ \;\;\;\;\frac{{k}^{m} \cdot a}{(k \cdot \left(k + 10\right) + 1)_*}\\ \mathbf{else}:\\ \;\;\;\;\frac{{k}^{m}}{(10 \cdot \left(\frac{k}{a}\right) + \left((\left(\frac{k}{a}\right) \cdot k + \left(\frac{1}{a}\right))_*\right))_*}\\ \end{array}\]

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Split input into 2 regimes
  2. if k < 8.257297814046181e+146

    1. Initial program 0.1

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

      \[\leadsto \frac{{k}^{m} \cdot a}{(k \cdot \left(k + 10\right) + 1)_*}\]

    if 8.257297814046181e+146 < k

    1. Initial program 10.5

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

      \[\leadsto \frac{{k}^{m} \cdot a}{(k \cdot \left(k + 10\right) + 1)_*}\]
    3. Using strategy rm
    4. Applied associate-/l*10.5

      \[\leadsto \color{blue}{\frac{{k}^{m}}{\frac{(k \cdot \left(k + 10\right) + 1)_*}{a}}}\]
    5. Taylor expanded around inf 10.5

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;k \le 8.257297814046181 \cdot 10^{+146}:\\ \;\;\;\;\frac{{k}^{m} \cdot a}{(k \cdot \left(k + 10\right) + 1)_*}\\ \mathbf{else}:\\ \;\;\;\;\frac{{k}^{m}}{(10 \cdot \left(\frac{k}{a}\right) + \left((\left(\frac{k}{a}\right) \cdot k + \left(\frac{1}{a}\right))_*\right))_*}\\ \end{array}\]

Runtime

Time bar (total: 43.2s)Debug logProfile

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