Example #1
0
    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)
Example #2
0
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
Example #3
0
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
Example #4
0
 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]
Example #5
0
 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]
Example #6
0
    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
Example #7
0
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