Average Error: 2.3 → 0.2
Time: 59.0s
Precision: 64
Internal Precision: 128
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\begin{array}{l} \mathbf{if}\;k \le 9.306854636214154 \cdot 10^{+115}:\\ \;\;\;\;\frac{\frac{\left(a \cdot \sqrt{{k}^{m}}\right) \cdot \sqrt{{k}^{m}}}{\left|\sqrt{(k \cdot \left(k + 10\right) + 1)_*}\right|}}{\sqrt{(k \cdot \left(k + 10\right) + 1)_*}}\\ \mathbf{else}:\\ \;\;\;\;(\left(\frac{{\left(e^{m}\right)}^{\left(\log k\right)}}{\frac{{k}^{4}}{a}}\right) \cdot 99 + \left((\left(\frac{-10}{k}\right) \cdot \left(\frac{{\left(e^{m}\right)}^{\left(\log k\right)}}{\frac{k}{\frac{a}{k}}}\right) + \left(\frac{{\left(e^{m}\right)}^{\left(\log k\right)}}{\frac{k}{\frac{a}{k}}}\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 < 9.306854636214154e+115

    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 add-sqr-sqrt0.1

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

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

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

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

      \[\leadsto \frac{\frac{\left(a \cdot \sqrt{{k}^{m}}\right) \cdot \sqrt{{k}^{m}}}{\sqrt{\left(1 + 10 \cdot k\right) + k \cdot k}}}{\color{blue}{\sqrt{(k \cdot \left(10 + k\right) + 1)_*}}}\]
    9. Using strategy rm
    10. Applied add-sqr-sqrt0.1

      \[\leadsto \frac{\frac{\left(a \cdot \sqrt{{k}^{m}}\right) \cdot \sqrt{{k}^{m}}}{\sqrt{\color{blue}{\sqrt{\left(1 + 10 \cdot k\right) + k \cdot k} \cdot \sqrt{\left(1 + 10 \cdot k\right) + k \cdot k}}}}}{\sqrt{(k \cdot \left(10 + k\right) + 1)_*}}\]
    11. Applied rem-sqrt-square0.1

      \[\leadsto \frac{\frac{\left(a \cdot \sqrt{{k}^{m}}\right) \cdot \sqrt{{k}^{m}}}{\color{blue}{\left|\sqrt{\left(1 + 10 \cdot k\right) + k \cdot k}\right|}}}{\sqrt{(k \cdot \left(10 + k\right) + 1)_*}}\]
    12. Simplified0.1

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

    if 9.306854636214154e+115 < k

    1. Initial program 9.6

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;k \le 9.306854636214154 \cdot 10^{+115}:\\ \;\;\;\;\frac{\frac{\left(a \cdot \sqrt{{k}^{m}}\right) \cdot \sqrt{{k}^{m}}}{\left|\sqrt{(k \cdot \left(k + 10\right) + 1)_*}\right|}}{\sqrt{(k \cdot \left(k + 10\right) + 1)_*}}\\ \mathbf{else}:\\ \;\;\;\;(\left(\frac{{\left(e^{m}\right)}^{\left(\log k\right)}}{\frac{{k}^{4}}{a}}\right) \cdot 99 + \left((\left(\frac{-10}{k}\right) \cdot \left(\frac{{\left(e^{m}\right)}^{\left(\log k\right)}}{\frac{k}{\frac{a}{k}}}\right) + \left(\frac{{\left(e^{m}\right)}^{\left(\log k\right)}}{\frac{k}{\frac{a}{k}}}\right))_*\right))_*\\ \end{array}\]

Reproduce

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

Details

Time bar (total: 54.3s)Debug log

start154.0ms

Algorithm
intervals

setup80.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 3.3b

localize39.0ms

Local error

Found 4 expressions with local error:

3.3b
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k)))
0.0b
(* a (pow k m))
0.0b
(+ (+ 1 (* 10 k)) (* k k))
0.0b
(+ 1 (* 10 k))

rewrite12.0ms

Algorithm
rewrite-expression-head
Counts
4 → 65
Calls

4 calls. Slowest were:

6.0ms
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k)))
3.0ms
(+ (+ 1 (* 10 k)) (* k k))
1.0ms
(* a (pow k m))

series251.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

140.0ms
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k)))
77.0ms
(* a (pow k m))
22.0ms
(+ 1 (* 10 k))
13.0ms
(+ (+ 1 (* 10 k)) (* k k))

simplify2.9s

Counts
31 → 77
Calls

31 calls. Slowest were:

720.0ms
(+ (* (+ 1 (* 10 k)) (+ 1 (* 10 k))) (- (* (* k k) (* k k)) (* (+ 1 (* 10 k)) (* k k))))
602.0ms
(- (+ (* 99 (/ (* (exp (* -1 (* (log (/ 1 k)) m))) a) (pow k 4))) (/ (* (exp (* -1 (* (log (/ 1 k)) m))) a) (pow k 2))) (* 10 (/ (* (exp (* -1 (* (log (/ 1 k)) m))) a) (pow k 3))))
357.0ms
(- (+ (* 99 (/ (* a (exp (* m (- (log -1) (log (/ -1 k)))))) (pow k 4))) (/ (* a (exp (* m (- (log -1) (log (/ -1 k)))))) (pow k 2))) (* 10 (/ (* a (exp (* m (- (log -1) (log (/ -1 k)))))) (pow k 3))))

prune1.1s

Pruning

6 alts after pruning (6 fresh and 0 done)

Merged error: 0.1b

localize11.0ms

Local error

Found 4 expressions with local error:

3.3b
(/ (* (* a (sqrt (pow k m))) (sqrt (pow k m))) (+ (+ 1 (* 10 k)) (* k k)))
0.0b
(* (* a (sqrt (pow k m))) (sqrt (pow k m)))
0.0b
(+ (+ 1 (* 10 k)) (* k k))
0.0b
(* a (sqrt (pow k m)))

rewrite26.0ms

Algorithm
rewrite-expression-head
Counts
4 → 78
Calls

4 calls. Slowest were:

13.0ms
(/ (* (* a (sqrt (pow k m))) (sqrt (pow k m))) (+ (+ 1 (* 10 k)) (* k k)))
6.0ms
(* (* a (sqrt (pow k m))) (sqrt (pow k m)))
3.0ms
(+ (+ 1 (* 10 k)) (* k k))

series296.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

134.0ms
(/ (* (* a (sqrt (pow k m))) (sqrt (pow k m))) (+ (+ 1 (* 10 k)) (* k k)))
83.0ms
(* a (sqrt (pow k m)))
71.0ms
(* (* a (sqrt (pow k m))) (sqrt (pow k m)))
9.0ms
(+ (+ 1 (* 10 k)) (* k k))

simplify4.1s

Counts
46 → 90
Calls

46 calls. Slowest were:

758.0ms
(+ (* (+ 1 (* 10 k)) (+ 1 (* 10 k))) (- (* (* k k) (* k k)) (* (+ 1 (* 10 k)) (* k k))))
607.0ms
(- (+ (* 99 (/ (* (exp (* -1 (* (log (/ 1 k)) m))) a) (pow k 4))) (/ (* (exp (* -1 (* (log (/ 1 k)) m))) a) (pow k 2))) (* 10 (/ (* (exp (* -1 (* (log (/ 1 k)) m))) a) (pow k 3))))
351.0ms
(* (* (* (* a (sqrt (pow k m))) (* a (sqrt (pow k m)))) (* a (sqrt (pow k m)))) (* (* (sqrt (pow k m)) (sqrt (pow k m))) (sqrt (pow k m))))

prune1.5s

Pruning

6 alts after pruning (5 fresh and 1 done)

Merged error: 0.1b

localize38.0ms

Local error

Found 4 expressions with local error:

17.2b
(sqrt (+ (+ 1 (* 10 k)) (* k k)))
17.2b
(sqrt (fma k (+ 10 k) 1))
0.1b
(/ (/ (* (* a (sqrt (pow k m))) (sqrt (pow k m))) (sqrt (+ (+ 1 (* 10 k)) (* k k)))) (sqrt (fma k (+ 10 k) 1)))
0.0b
(* (* a (sqrt (pow k m))) (sqrt (pow k m)))

rewrite55.0ms

Algorithm
rewrite-expression-head
Counts
4 → 160
Calls

4 calls. Slowest were:

30.0ms
(/ (/ (* (* a (sqrt (pow k m))) (sqrt (pow k m))) (sqrt (+ (+ 1 (* 10 k)) (* k k)))) (sqrt (fma k (+ 10 k) 1)))
13.0ms
(* (* a (sqrt (pow k m))) (sqrt (pow k m)))
7.0ms
(sqrt (+ (+ 1 (* 10 k)) (* k k)))

series253.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

155.0ms
(/ (/ (* (* a (sqrt (pow k m))) (sqrt (pow k m))) (sqrt (+ (+ 1 (* 10 k)) (* k k)))) (sqrt (fma k (+ 10 k) 1)))
65.0ms
(* (* a (sqrt (pow k m))) (sqrt (pow k m)))
16.0ms
(sqrt (+ (+ 1 (* 10 k)) (* k k)))
16.0ms
(sqrt (fma k (+ 10 k) 1))

simplify25.9s

Counts
200 → 172
Calls

200 calls. Slowest were:

816.0ms
(/ (sqrt (+ (* (+ 1 (* 10 k)) (+ 1 (* 10 k))) (- (* (* k k) (* k k)) (* (+ 1 (* 10 k)) (* k k))))) (sqrt (fma k (+ 10 k) 1)))
814.0ms
(/ (sqrt (+ (* (+ 1 (* 10 k)) (+ 1 (* 10 k))) (- (* (* k k) (* k k)) (* (+ 1 (* 10 k)) (* k k))))) (cbrt (sqrt (fma k (+ 10 k) 1))))
770.0ms
(/ (sqrt (+ (* (+ 1 (* 10 k)) (+ 1 (* 10 k))) (- (* (* k k) (* k k)) (* (+ 1 (* 10 k)) (* k k))))) (sqrt (sqrt (fma k (+ 10 k) 1))))

prune3.4s

Pruning

4 alts after pruning (4 fresh and 0 done)

Merged error: 0.1b

localize20.0ms

Local error

Found 4 expressions with local error:

17.2b
(sqrt (fma k (+ 10 k) 1))
17.2b
(sqrt (fma k (+ 10 k) 1))
0.1b
(/ (/ (* (* a (sqrt (pow k m))) (sqrt (pow k m))) (fabs (sqrt (fma k (+ 10 k) 1)))) (sqrt (fma k (+ 10 k) 1)))
0.0b
(* (* a (sqrt (pow k m))) (sqrt (pow k m)))

rewrite23.0ms

Algorithm
rewrite-expression-head
Counts
4 → 122
Calls

4 calls. Slowest were:

12.0ms
(/ (/ (* (* a (sqrt (pow k m))) (sqrt (pow k m))) (fabs (sqrt (fma k (+ 10 k) 1)))) (sqrt (fma k (+ 10 k) 1)))
6.0ms
(* (* a (sqrt (pow k m))) (sqrt (pow k m)))
2.0ms
(sqrt (fma k (+ 10 k) 1))

series272.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

147.0ms
(/ (/ (* (* a (sqrt (pow k m))) (sqrt (pow k m))) (fabs (sqrt (fma k (+ 10 k) 1)))) (sqrt (fma k (+ 10 k) 1)))
84.0ms
(* (* a (sqrt (pow k m))) (sqrt (pow k m)))
24.0ms
(sqrt (fma k (+ 10 k) 1))
16.0ms
(sqrt (fma k (+ 10 k) 1))

simplify11.1s

Counts
132 → 134
Calls

132 calls. Slowest were:

603.0ms
(- (+ (* 37 (/ (* (exp (* -1 (* (log (/ 1 k)) m))) a) (* (fabs (sqrt (fma k (+ 10 k) 1))) (pow k 3)))) (/ (* (exp (* -1 (* (log (/ 1 k)) m))) a) (* (fabs (sqrt (fma k (+ 10 k) 1))) k))) (* 5 (/ (* (exp (* -1 (* (log (/ 1 k)) m))) a) (* (fabs (sqrt (fma k (+ 10 k) 1))) (pow k 2)))))
310.0ms
(* (* (* (* a (sqrt (pow k m))) (* a (sqrt (pow k m)))) (* a (sqrt (pow k m)))) (* (* (sqrt (pow k m)) (sqrt (pow k m))) (sqrt (pow k m))))
299.0ms
(- (+ (/ a (fabs (sqrt (fma k (+ 10 k) 1)))) (/ (* (log k) (* m a)) (fabs (sqrt (fma k (+ 10 k) 1))))) (* 5 (/ (* a k) (fabs (sqrt (fma k (+ 10 k) 1))))))

prune2.4s

Pruning

4 alts after pruning (3 fresh and 1 done)

Merged error: 0.1b

regimes182.0ms

Accuracy

96.2% (0.1b remaining)

Error of 0.2b against oracle of 0.2b and baseline of 2.3b

bsearch137.0ms