Average Error: 1.9 → 0.3
Time: 23.8s
Precision: 64
Internal Precision: 128
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\frac{{k}^{m}}{\frac{1}{a} + \left(10 + k\right) \cdot \frac{k}{a}}\]

Error

Bits error versus a

Bits error versus k

Bits error versus m

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 1.9

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

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

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

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

    \[\leadsto \frac{{k}^{m}}{\color{blue}{\frac{k}{a} \cdot \left(10 + k\right) + \frac{1}{a}}}\]
  7. Final simplification0.3

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

Reproduce

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

Details

Time bar (total: 18.1s)Debug log

start176.0ms

Algorithm
intervals

setup96.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 1.7b

localize35.0ms

Local error

Found 3 expressions with local error:

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

rewrite17.0ms

Algorithm
rewrite-expression-head
Counts
3 → 47
Calls

3 calls. Slowest were:

10.0ms
(/ (* (pow k m) a) (+ 1 (* k (+ k 10))))
4.0ms
(* (pow k m) a)
2.0ms
(* k (+ k 10))

series615.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

477.0ms
(/ (* (pow k m) a) (+ 1 (* k (+ k 10))))
114.0ms
(* (pow k m) a)
24.0ms
(* k (+ k 10))

simplify1.9s

Counts
32 → 56
Calls

32 calls. Slowest were:

390.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))))
376.0ms
(+ (* 1 1) (- (* (* k (+ k 10)) (* k (+ k 10))) (* 1 (* k (+ k 10)))))
252.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))))

prune765.0ms

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 0.0b

localize7.0ms

Local error

Found 4 expressions with local error:

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

rewrite13.0ms

Algorithm
rewrite-expression-head
Counts
4 → 65
Calls

4 calls. Slowest were:

7.0ms
(* (* (pow k m) a) (/ 1 (+ 1 (* k (+ k 10)))))
4.0ms
(* (pow k m) a)
1.0ms
(* k (+ k 10))

series276.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

119.0ms
(* (pow k m) a)
106.0ms
(* (* (pow k m) a) (/ 1 (+ 1 (* k (+ k 10)))))
31.0ms
(* k (+ k 10))
20.0ms
(/ 1 (+ 1 (* k (+ k 10))))

simplify3.0s

Counts
40 → 77
Calls

40 calls. Slowest were:

416.0ms
(* (* (* (* (pow k m) a) (* (pow k m) a)) (* (pow k m) a)) (* (* (/ 1 (+ 1 (* k (+ k 10)))) (/ 1 (+ 1 (* k (+ k 10))))) (/ 1 (+ 1 (* k (+ k 10))))))
375.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
(+ (* 1 1) (- (* (* k (+ k 10)) (* k (+ k 10))) (* 1 (* k (+ k 10)))))

prune1.2s

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 0.0b

localize16.0ms

Local error

Found 4 expressions with local error:

16.4b
(cbrt (* k (+ k 10)))
16.4b
(cbrt (* k (+ k 10)))
16.4b
(cbrt (* k (+ k 10)))
1.7b
(* (* (pow k m) a) (/ 1 (+ 1 (* (* (cbrt (* k (+ k 10))) (cbrt (* k (+ k 10)))) (cbrt (* k (+ k 10)))))))

rewrite9.0ms

Algorithm
rewrite-expression-head
Counts
4 → 54
Calls

4 calls. Slowest were:

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

series371.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

155.0ms
(* (* (pow k m) a) (/ 1 (+ 1 (* (* (cbrt (* k (+ k 10))) (cbrt (* k (+ k 10)))) (cbrt (* k (+ k 10)))))))
73.0ms
(cbrt (* k (+ k 10)))
73.0ms
(cbrt (* k (+ k 10)))
70.0ms
(cbrt (* k (+ k 10)))

simplify4.1s

Counts
34 → 66
Calls

34 calls. Slowest were:

490.0ms
(* (* (* (* (pow k m) a) (* (pow k m) a)) (* (pow k m) a)) (* (* (/ 1 (+ 1 (* (* (cbrt (* k (+ k 10))) (cbrt (* k (+ k 10)))) (cbrt (* k (+ k 10)))))) (/ 1 (+ 1 (* (* (cbrt (* k (+ k 10))) (cbrt (* k (+ k 10)))) (cbrt (* k (+ k 10))))))) (/ 1 (+ 1 (* (* (cbrt (* k (+ k 10))) (cbrt (* k (+ k 10)))) (cbrt (* k (+ k 10))))))))
372.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))))
342.0ms
(+ (* 1 1) (- (* (* (* (cbrt (* k (+ k 10))) (cbrt (* k (+ k 10)))) (cbrt (* k (+ k 10)))) (* (* (cbrt (* k (+ k 10))) (cbrt (* k (+ k 10)))) (cbrt (* k (+ k 10))))) (* 1 (* (* (cbrt (* k (+ k 10))) (cbrt (* k (+ k 10)))) (cbrt (* k (+ k 10)))))))

prune1.4s

Pruning

5 alts after pruning (3 fresh and 2 done)

Merged error: 0.0b

localize17.0ms

Local error

Found 3 expressions with local error:

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

rewrite21.0ms

Algorithm
rewrite-expression-head
Counts
3 → 63
Calls

3 calls. Slowest were:

11.0ms
(/ (+ 1 (* k (+ k 10))) a)
7.0ms
(/ (pow k m) (/ (+ 1 (* k (+ k 10))) a))
2.0ms
(* k (+ k 10))

series192.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

131.0ms
(/ (pow k m) (/ (+ 1 (* k (+ k 10))) a))
31.0ms
(* k (+ k 10))
30.0ms
(/ (+ 1 (* k (+ k 10))) a)

simplify2.8s

Counts
53 → 72
Calls

53 calls. Slowest were:

459.0ms
(+ (pow 1 3) (pow (* k (+ k 10)) 3))
415.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))))
404.0ms
(/ (* (* (pow k m) (pow k m)) (pow k m)) (* (* (/ (+ 1 (* k (+ k 10))) a) (/ (+ 1 (* k (+ k 10))) a)) (/ (+ 1 (* k (+ k 10))) a)))

prune983.0ms

Pruning

5 alts after pruning (3 fresh and 2 done)

Merged error: 0.0b

regimes244.0ms

Accuracy

0% (0.2b remaining)

Error of 0.3b against oracle of 0.0b and baseline of 0.3b

bsearch3.0ms