replaced pattern with my own version
This commit is contained in:
parent
09fc14b99d
commit
9a366b0428
@ -5,6 +5,7 @@ import numpy as np
|
||||
from functools import wraps
|
||||
import itertools
|
||||
|
||||
import interp
|
||||
import logging
|
||||
log = logging.getLogger('interp')
|
||||
|
||||
@ -202,30 +203,20 @@ def memoize(f):
|
||||
return cache[x]
|
||||
return memf
|
||||
|
||||
def combinations_with_replacement(iterable, r):
|
||||
"""
|
||||
What I really need for the pattern function only
|
||||
exists in python 2.7 and greater. The docs suggest
|
||||
the implementation in this function as a
|
||||
replacement.
|
||||
|
||||
source:
|
||||
|
||||
http://docs.python.org/library/itertools.html#itertools.combinations_with_replacement
|
||||
"""
|
||||
pool = tuple(iterable)
|
||||
n = len(pool)
|
||||
for indices in itertools.product(range(n), repeat=r):
|
||||
if sorted(indices) == list(indices):
|
||||
yield tuple(pool[i] for i in indices)
|
||||
|
||||
@memoize
|
||||
def pattern(simplex_size, nu):
|
||||
"""
|
||||
my useful docstring
|
||||
"""
|
||||
log.debug("pattern: simplex: %d, order: %d" % (simplex_size, nu))
|
||||
return [i for i in combinations_with_replacement(xrange(simplex_size), nu) if len(set(i)) != 1]
|
||||
log.error("pattern: simplex: %d, order: %d" % (simplex_size, nu))
|
||||
|
||||
r = []
|
||||
for i in itertools.product(xrange(simplex_size), repeat = nu):
|
||||
if len(set(i)) !=1:
|
||||
r.append(tuple(sorted(i)))
|
||||
return list(set(r))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
print len(pattern(3, 2)), pattern(3, 2)
|
||||
@ -236,6 +227,7 @@ if __name__ == '__main__':
|
||||
|
||||
print len(pattern(3, 4)), pattern(3, 4)
|
||||
print len(pattern(4, 4)), pattern(4, 4)
|
||||
|
||||
print len(pattern(3, 2)), pattern(3, 2)
|
||||
print len(pattern(4, 2)), pattern(4, 2)
|
||||
|
||||
@ -244,6 +236,7 @@ if __name__ == '__main__':
|
||||
|
||||
print len(pattern(3, 4)), pattern(3, 4)
|
||||
print len(pattern(4, 4)), pattern(4, 4)
|
||||
|
||||
print len(pattern(3, 2)), pattern(3, 2)
|
||||
print len(pattern(4, 2)), pattern(4, 2)
|
||||
|
||||
@ -252,6 +245,7 @@ if __name__ == '__main__':
|
||||
|
||||
print len(pattern(3, 4)), pattern(3, 4)
|
||||
print len(pattern(4, 4)), pattern(4, 4)
|
||||
|
||||
print len(pattern(3, 2)), pattern(3, 2)
|
||||
print len(pattern(4, 2)), pattern(4, 2)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user