From a732d82a9845e8fec8d60ec7cfe76bb3722ae2d6 Mon Sep 17 00:00:00 2001 From: Stephen Mardson McQuay Date: Sun, 3 Apr 2011 11:09:03 -0600 Subject: [PATCH] memoized the pattern function --- interp/baker/__init__.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/interp/baker/__init__.py b/interp/baker/__init__.py index c87b027..e2bb5e9 100644 --- a/interp/baker/__init__.py +++ b/interp/baker/__init__.py @@ -204,6 +204,16 @@ def _samples_ur(items, k, offset = 0): selections = [[items[i]]*count for i,count in enumerate(sample)] yield tuple([x + offset for sel in selections for x in sel]) +def memoize(f): + cache = {} + def memf(*x, **kargs): + if x not in cache: + print >>sys.stderr, x, kargs + cache[x] = f(*x, **kargs) + return cache[x] + return memf + +@memoize def pattern(power, phicount, offset = 0): log.debug("(power = %s, phicount = %s)" % (power, phicount)) r = []