def __init__(self, capacity=1024, load_factor=.75, ksize=1, ktype=nb.int64, vtype=nb.int64): self.capacity = self.find_prime(capacity) self.load = load_factor self.size = 0 self.ksize = ksize N = self.capacity self.keys = np.empty(N * ksize, dtype=ktype) self.values = np.empty(N, dtype=vtype) self.counts = np.zeros(N, dtype=nb.uint8)
def setup(D,I): X = 10 Y = 10 G = [np.array([1] * D) for i in range(X*Y)] DATA = [np.array([2] * D) for i in range(50)] tmp = np.empty(D) return D,I,X,Y,G,DATA,tmp
def setup(D, I): X = 10 Y = 10 G = [np.array([1] * D) for i in range(X * Y)] DATA = [np.array([2] * D) for i in range(50)] tmp = np.empty(D) return D, I, X, Y, G, DATA, tmp
def main(): import _numpypy.multiarray as np arr = np.empty((1024, 16)) ai = arr.flat i = 0 while i < arr.size: ai[i] = 42.0 i += 1 return ai[-1]
def resize(self): # get old arrays N = self.capacity ks = self.ksize keys_old, values_old, counts_old = self.keys, self.values, self.counts # get new arrays self.capacity = self.find_prime(np.int64(N * 1.62)) M = self.capacity keys = np.empty(M * ks, dtype=keys_old.dtype) values = np.empty(M, dtype=values_old.dtype) counts = np.zeros(M, dtype=counts_old.dtype) for i in xrange(N): if counts_old[i] > 0: value = values_old[i] count = counts_old[i] ik = i * ks # new hash j, k = self.hash_(keys_old, ik, ks) % M, 0 j_init = j for k in xrange(N): jk = j * ks if counts[j] == 0 or self.eq(keys, jk, keys_old, ik, ks): break j = (j_init + k * k) % M jk = j * ks keys[jk:jk + ks] = keys_old[ik:ik + ks] values[j] = value counts[j] = count else: continue self.keys = keys self.values = values self.counts = counts del keys_old, values_old, counts_old
def ndot(x, y): r, d = x.shape #r, d = len(x), len(x[1]) d, c = y.shape #d, c = len(y), len(y[1]) z = npy.empty((r, c), dtype=x.dtype) #z = nd((r, c), 'float32') for i in xrange(r): for k in xrange(d): #xik = x[i, k] #xik = x[i][k] #zi = z[i] #yk = y[k] for j in xrange(c): z[i, j] += x[i, k] * y[k, j] #z[i, j] += xik * y[k, j] #zi[j] += xik * yk[j] return z