fixes #3221
This commit is contained in:
parent
3fc95ce69e
commit
9c9a7b6520
2 changed files with 44 additions and 1 deletions
33
tests/iter/tcomplex_openarray.nim
Normal file
33
tests/iter/tcomplex_openarray.nim
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
|
||||
# bug #3221
|
||||
|
||||
import algorithm, math, sequtils
|
||||
|
||||
|
||||
iterator permutations[T](ys: openarray[T]): seq[T] =
|
||||
var
|
||||
d = 1
|
||||
c = newSeq[int](ys.len)
|
||||
xs = newSeq[T](ys.len)
|
||||
for i, y in ys: xs[i] = y
|
||||
yield xs
|
||||
block outer:
|
||||
while true:
|
||||
while d > 1:
|
||||
dec d
|
||||
c[d] = 0
|
||||
while c[d] >= d:
|
||||
inc d
|
||||
if d >= ys.len: break outer
|
||||
let i = if (d and 1) == 1: c[d] else: 0
|
||||
swap xs[i], xs[d]
|
||||
yield xs
|
||||
inc c[d]
|
||||
|
||||
proc dig_vectors(): void =
|
||||
var v_nums: seq[int]
|
||||
v_nums = newSeq[int](1)
|
||||
for perm in permutations(toSeq(0 .. 1)):
|
||||
v_nums[0] = 1
|
||||
|
||||
dig_vectors()
|
||||
Loading…
Add table
Add a link
Reference in a new issue