



Bits error versus i




Bits error versus n
Results
| Original | 42.1 |
|---|---|
| Target | 41.9 |
| Herbie | 21.4 |
if i < -0.0006916119981075335Initial program 28.5
Taylor expanded around inf 62.9
Simplified18.7
if -0.0006916119981075335 < i < 3.5996068140721376e-62Initial program 49.3
rmApplied div-sub49.3
Taylor expanded around 0 17.1
Simplified17.1
rmApplied distribute-rgt-in17.1
Simplified17.1
if 3.5996068140721376e-62 < i Initial program 37.0
rmApplied associate-/r/37.1
Applied associate-*r*37.1
Final simplification21.4
herbie shell --seed 2019004
(FPCore (i n)
:name "Compound Interest"
:herbie-target
(* 100 (/ (- (exp (* n (if (== (+ 1 (/ i n)) 1) (/ i n) (/ (* (/ i n) (log (+ 1 (/ i n)))) (- (+ (/ i n) 1) 1))))) 1) (/ i n)))
(* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))))
Time bar (total: 27.5s)Debug log
1 calls. Slowest were:
| 206.0ms | (* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 41.4b
Found 4 expressions with local error:
| 13.3b | (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n)) |
| 7.5b | (pow (+ 1 (/ i n)) n) |
| 1.8b | (- (pow (+ 1 (/ i n)) n) 1) |
| 0.0b | (* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))) |
4 calls. Slowest were:
| 21.0ms | (- (pow (+ 1 (/ i n)) n) 1) |
| 18.0ms | (* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))) |
| 17.0ms | (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n)) |
4 calls. Slowest were:
| 267.0ms | (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n)) |
| 258.0ms | (* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))) |
| 183.0ms | (- (pow (+ 1 (/ i n)) n) 1) |
| 170.0ms | (pow (+ 1 (/ i n)) n) |
97 calls. Slowest were:
| 313.0ms | (* 100 (/ (* n (- (exp (* n (- (log (/ -1 n)) (log (/ -1 i))))) 1)) i)) |
| 279.0ms | (/ (* (* (- (pow (+ 1 (/ i n)) n) 1) (- (pow (+ 1 (/ i n)) n) 1)) (- (pow (+ 1 (/ i n)) n) 1)) (* (* (/ i n) (/ i n)) (/ i n))) |
| 274.0ms | (/ (* (- (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) 1) n) i) |
11 alts after pruning (11 fresh and 0 done)
Merged error: 18.7b
Found 4 expressions with local error:
| 16.3b | (- (/ (pow (+ 1 (/ i n)) n) (/ i n)) (/ 1 (/ i n))) |
| 7.5b | (pow (+ 1 (/ i n)) n) |
| 0.8b | (/ (pow (+ 1 (/ i n)) n) (/ i n)) |
| 0.8b | (/ 1 (/ i n)) |
4 calls. Slowest were:
| 25.0ms | (- (/ (pow (+ 1 (/ i n)) n) (/ i n)) (/ 1 (/ i n))) |
| 14.0ms | (/ (pow (+ 1 (/ i n)) n) (/ i n)) |
| 3.0ms | (pow (+ 1 (/ i n)) n) |
4 calls. Slowest were:
| 251.0ms | (- (/ (pow (+ 1 (/ i n)) n) (/ i n)) (/ 1 (/ i n))) |
| 182.0ms | (/ (pow (+ 1 (/ i n)) n) (/ i n)) |
| 120.0ms | (pow (+ 1 (/ i n)) n) |
| 8.0ms | (/ 1 (/ i n)) |
103 calls. Slowest were:
| 303.0ms | (/ (* (- (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) 1) n) i) |
| 281.0ms | (/ (* (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) n) i) |
| 244.0ms | (/ (* (* (pow (+ 1 (/ i n)) n) (pow (+ 1 (/ i n)) n)) (pow (+ 1 (/ i n)) n)) (* (* (/ i n) (/ i n)) (/ i n))) |
16 alts after pruning (16 fresh and 0 done)
Merged error: 5.5b
Found 4 expressions with local error:
| 0.4b | (* 1/6 i) |
| 0.1b | (* (* i n) (+ (* 1/6 i) 1/2)) |
| 0.1b | (* 100 (+ n (* (* i n) (+ (* 1/6 i) 1/2)))) |
| 0.0b | (+ n (* (* i n) (+ (* 1/6 i) 1/2))) |
4 calls. Slowest were:
| 5.0ms | (* (* i n) (+ (* 1/6 i) 1/2)) |
| 3.0ms | (+ n (* (* i n) (+ (* 1/6 i) 1/2))) |
| 2.0ms | (* 100 (+ n (* (* i n) (+ (* 1/6 i) 1/2)))) |
4 calls. Slowest were:
| 52.0ms | (* 100 (+ n (* (* i n) (+ (* 1/6 i) 1/2)))) |
| 48.0ms | (+ n (* (* i n) (+ (* 1/6 i) 1/2))) |
| 35.0ms | (* (* i n) (+ (* 1/6 i) 1/2)) |
| 12.0ms | (* 1/6 i) |
31 calls. Slowest were:
| 321.0ms | (- n (* (* i n) (+ (* 1/6 i) 1/2))) |
| 278.0ms | (* (* (* i n) (+ (* 1/6 i) 1/2)) 100) |
| 248.0ms | (* 100 (* (* i n) (+ (* 1/6 i) 1/2))) |
18 alts after pruning (18 fresh and 0 done)
Merged error: 5.5b
Found 3 expressions with local error:
| 0.5b | (* i 50/3) |
| 0.2b | (* (+ 50 (* i 50/3)) (* i n)) |
| 0.0b | (+ 50 (* i 50/3)) |
3 calls. Slowest were:
| 7.0ms | (* (+ 50 (* i 50/3)) (* i n)) |
| 1.0ms | (+ 50 (* i 50/3)) |
| 0.0ms | (* i 50/3) |
3 calls. Slowest were:
| 31.0ms | (* (+ 50 (* i 50/3)) (* i n)) |
| 26.0ms | (+ 50 (* i 50/3)) |
| 11.0ms | (* i 50/3) |
16 calls. Slowest were:
| 383.0ms | (* (+ (pow 50 3) (pow (* i 50/3) 3)) (* i n)) |
| 172.0ms | (* (- (* 50 50) (* (* i 50/3) (* i 50/3))) (* i n)) |
| 121.0ms | (* (* (* (+ 50 (* i 50/3)) (+ 50 (* i 50/3))) (+ 50 (* i 50/3))) (* (* (* i n) (* i n)) (* i n))) |
18 alts after pruning (17 fresh and 1 done)
Merged error: 5.5b
49.3% (12.9b remaining)
Error of 21.4b against oracle of 8.5b and baseline of 33.9b