Average Error: 2.1 → 0.2
Time: 21.5s
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 5.89303279033011 \cdot 10^{+85}:\\ \;\;\;\;\frac{\left(\sqrt[3]{{k}^{m}} \cdot \sqrt[3]{{k}^{m}}\right) \cdot \left(a \cdot \sqrt[3]{{k}^{m}}\right)}{(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 < 5.89303279033011e+85

    1. Initial program 0.1

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

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

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

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

    if 5.89303279033011e+85 < k

    1. Initial program 7.3

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

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

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

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

      \[\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 5.89303279033011 \cdot 10^{+85}:\\ \;\;\;\;\frac{\left(\sqrt[3]{{k}^{m}} \cdot \sqrt[3]{{k}^{m}}\right) \cdot \left(a \cdot \sqrt[3]{{k}^{m}}\right)}{(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}\]

Reproduce

herbie shell --seed 2019008 +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: 21.1s)Debug log

sample104.0ms

Algorithm
intervals

simplify43.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

43.0ms
(/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k)))

prune9.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 2.3b

localize16.0ms

Local error

Found 2 expressions with local error:

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

rewrite8.0ms

Algorithm
rewrite-expression-head
Counts
2 → 34
Calls

2 calls. Slowest were:

5.0ms
(/ (* (pow k m) a) (fma k (+ k 10) 1))
2.0ms
(* (pow k m) a)

series220.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

120.0ms
(* (pow k m) a)
100.0ms
(/ (* (pow k m) a) (fma k (+ k 10) 1))

simplify2.6s

Counts
20 → 40
Calls

20 calls. Slowest were:

871.0ms
(/ (* (* (* (pow k m) a) (* (pow k m) a)) (* (pow k m) a)) (* (* (fma k (+ k 10) 1) (fma k (+ k 10) 1)) (fma k (+ k 10) 1)))
637.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))))
310.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))))

prune451.0ms

Pruning

4 alts after pruning (4 fresh and 0 done)

Merged error: 0.2b

localize12.0ms

Local error

Found 4 expressions with local error:

2.3b
(/ (* (* (cbrt (pow k m)) (cbrt (pow k m))) (* (cbrt (pow k m)) a)) (fma k (+ k 10) 1))
0.0b
(cbrt (pow k m))
0.0b
(cbrt (pow k m))
0.0b
(cbrt (pow k m))

rewrite34.0ms

Algorithm
rewrite-expression-head
Counts
4 → 64
Calls

4 calls. Slowest were:

30.0ms
(/ (* (* (cbrt (pow k m)) (cbrt (pow k m))) (* (cbrt (pow k m)) a)) (fma k (+ k 10) 1))
1.0ms
(cbrt (pow k m))
1.0ms
(cbrt (pow k m))

series452.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

136.0ms
(/ (* (* (cbrt (pow k m)) (cbrt (pow k m))) (* (cbrt (pow k m)) a)) (fma k (+ k 10) 1))
121.0ms
(cbrt (pow k m))
106.0ms
(cbrt (pow k m))
90.0ms
(cbrt (pow k m))

simplify4.4s

Counts
37 → 76
Calls

37 calls. Slowest were:

551.0ms
(exp (* 1/3 (* m (- (log -1) (log (/ -1 k))))))
508.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))))
429.0ms
(exp (* 1/3 (* m (- (log -1) (log (/ -1 k))))))

prune1.0s

Pruning

4 alts after pruning (3 fresh and 1 done)

Merged error: 0.2b

localize12.0ms

Local error

Found 4 expressions with local error:

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

rewrite19.0ms

Algorithm
rewrite-expression-head
Counts
4 → 91
Calls

4 calls. Slowest were:

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

series192.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

101.0ms
(* (/ (pow k m) (sqrt (fma k (+ k 10) 1))) (/ a (sqrt (fma k (+ k 10) 1))))
56.0ms
(/ a (sqrt (fma k (+ k 10) 1)))
19.0ms
(sqrt (fma k (+ k 10) 1))
16.0ms
(sqrt (fma k (+ k 10) 1))

simplify5.2s

Counts
61 → 103
Calls

61 calls. Slowest were:

634.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))))
587.0ms
(- (+ a (* (log k) (* m a))) (* 10 (* a k)))
490.0ms
(* (* (* (/ (pow k m) (sqrt (fma k (+ k 10) 1))) (/ (pow k m) (sqrt (fma k (+ k 10) 1)))) (/ (pow k m) (sqrt (fma k (+ k 10) 1)))) (* (* (/ a (sqrt (fma k (+ k 10) 1))) (/ a (sqrt (fma k (+ k 10) 1)))) (/ a (sqrt (fma k (+ k 10) 1)))))

prune1.3s

Pruning

4 alts after pruning (2 fresh and 2 done)

Merged error: 0.2b

localize7.0ms

Local error

Found 2 expressions with local error:

3.4b
(/ (fma k (+ k 10) 1) a)
0.3b
(/ (pow k m) (/ (fma k (+ k 10) 1) a))

rewrite7.0ms

Algorithm
rewrite-expression-head
Counts
2 → 50
Calls

2 calls. Slowest were:

4.0ms
(/ (pow k m) (/ (fma k (+ k 10) 1) a))
3.0ms
(/ (fma k (+ k 10) 1) a)

series121.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

99.0ms
(/ (pow k m) (/ (fma k (+ k 10) 1) a))
22.0ms
(/ (fma k (+ k 10) 1) a)

simplify2.0s

Counts
41 → 56
Calls

41 calls. Slowest were:

494.0ms
(/ (* (* (pow k m) (pow k m)) (pow k m)) (* (* (/ (fma k (+ k 10) 1) a) (/ (fma k (+ k 10) 1) a)) (/ (fma k (+ k 10) 1) a)))
362.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))))
193.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))))

prune472.0ms

Pruning

3 alts after pruning (1 fresh and 2 done)

Merged error: 0.2b

regimes114.0ms

Accuracy

95.8% (0.1b remaining)

Error of 0.2b against oracle of 0.1b and baseline of 2.1b

bsearch77.0ms

end0.0ms

sample2.3s

Algorithm
intervals