From fd921b4d8d93ee6ed201db3eb6aa6630e6873726 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Sun, 24 Apr 2011 02:36:01 -0400
Subject: [PATCH] Memoize flags access.

---
 pyopencl/array.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/pyopencl/array.py b/pyopencl/array.py
index 981e5f24..a93c947e 100644
--- a/pyopencl/array.py
+++ b/pyopencl/array.py
@@ -33,7 +33,7 @@ OTHER DEALINGS IN THE SOFTWARE.
 import numpy as np
 import pyopencl.elementwise as elementwise
 import pyopencl as cl
-#from pytools import memoize_method
+from pytools import memoize_method
 
 
 # {{{ vector types
@@ -216,16 +216,19 @@ class _ArrayFlags:
         self.array = ary
 
     @property
+    @memoize_method
     def f_contiguous(self):
         return self.array.strides == _f_contiguous_strides(
                 self.array.dtype.itemsize, self.array.shape)
 
     @property
+    @memoize_method
     def c_contiguous(self):
         return self.array.strides == _c_contiguous_strides(
                 self.array.dtype.itemsize, self.array.shape)
 
     @property
+    @memoize_method
     def forc(self):
         return self.f_contiguous or self.c_contiguous
 
@@ -332,6 +335,7 @@ class Array(object):
         self.context = self.data.context
 
     @property
+    @memoize_method
     def flags(self):
         return _ArrayFlags(self)
 
-- 
GitLab