


Bits error versus x



Bits error versus n
Results
if (/ 1 n) < -5.441664295824458e-10Initial program 0.8
rmApplied add-log-exp1.0
rmApplied add-sqr-sqrt1.0
Applied log-prod1.0
if -5.441664295824458e-10 < (/ 1 n) < 5.795109578467022e-21Initial program 44.8
rmApplied add-log-exp44.8
Taylor expanded around -inf 63.0
Simplified31.9
if 5.795109578467022e-21 < (/ 1 n) Initial program 25.2
rmApplied add-exp-log25.2
Applied pow-exp25.2
Simplified4.8
Final simplification19.0
herbie shell --seed 2018365 +o rules:numerics
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))
Time bar (total: 25.4s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 27.3b
Found 3 expressions with local error:
| 1.7b | (pow (+ x 1) (/ 1 n)) |
| 1.3b | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 0.8b | (pow x (/ 1 n)) |
3 calls. Slowest were:
| 12.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 2.0ms | (pow (+ x 1) (/ 1 n)) |
| 1.0ms | (pow x (/ 1 n)) |
3 calls. Slowest were:
| 196.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 87.0ms | (pow (+ x 1) (/ 1 n)) |
| 80.0ms | (pow x (/ 1 n)) |
69 calls. Slowest were:
| 582.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
| 510.0ms | (- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n))))) |
| 400.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
9 alts after pruning (9 fresh and 0 done)
Merged error: 15.0b
Found 4 expressions with local error:
| 1.7b | (pow (+ x 1) (/ 1 n)) |
| 1.7b | (pow (+ x 1) (/ 1 n)) |
| 1.7b | (pow (+ x 1) (/ 1 n)) |
| 1.3b | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
4 calls. Slowest were:
| 19.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 3.0ms | (pow (+ x 1) (/ 1 n)) |
| 3.0ms | (pow (+ x 1) (/ 1 n)) |
4 calls. Slowest were:
| 153.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 95.0ms | (pow (+ x 1) (/ 1 n)) |
| 72.0ms | (pow (+ x 1) (/ 1 n)) |
| 68.0ms | (pow (+ x 1) (/ 1 n)) |
86 calls. Slowest were:
| 661.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
| 594.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
| 557.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
10 alts after pruning (10 fresh and 0 done)
Merged error: 15.0b
Found 4 expressions with local error:
| 1.7b | (pow (+ x 1) (/ 1 n)) |
| 1.7b | (pow (+ x 1) (/ 1 n)) |
| 1.7b | (pow (+ x 1) (/ 1 n)) |
| 1.3b | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
4 calls. Slowest were:
| 16.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 5.0ms | (pow (+ x 1) (/ 1 n)) |
| 3.0ms | (pow (+ x 1) (/ 1 n)) |
4 calls. Slowest were:
| 188.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 82.0ms | (pow (+ x 1) (/ 1 n)) |
| 82.0ms | (pow (+ x 1) (/ 1 n)) |
| 65.0ms | (pow (+ x 1) (/ 1 n)) |
86 calls. Slowest were:
| 696.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
| 618.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
| 559.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
10 alts after pruning (9 fresh and 1 done)
Merged error: 15.0b
Found 4 expressions with local error:
| 1.7b | (pow (+ x 1) (/ 1 n)) |
| 1.3b | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 1.3b | (log (exp (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))) |
| 0.8b | (pow x (/ 1 n)) |
4 calls. Slowest were:
| 24.0ms | (log (exp (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))) |
| 10.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 2.0ms | (pow (+ x 1) (/ 1 n)) |
4 calls. Slowest were:
| 223.0ms | (log (exp (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))) |
| 187.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 103.0ms | (pow (+ x 1) (/ 1 n)) |
| 82.0ms | (pow x (/ 1 n)) |
103 calls. Slowest were:
| 666.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
| 476.0ms | (- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n))))) |
| 432.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
11 alts after pruning (10 fresh and 1 done)
Merged error: 15.0b
88.7% (1.3b remaining)
Error of 19.0b against oracle of 17.6b and baseline of 29.4b