Esempio n. 1
0
 def test_float(self):
     n = randint(2, 8)
     A = [[uniform(-10, 10) for j in range(n)] for i in range(n)]
     B = [[uniform(-10, 10) for j in range(n)] for i in range(n)]
     C = [[0 for j in range(n)] for i in range(n)]
     for i in range(n):
         for j in range(n):
             for k in range(n):
                 C[i][j] = C[i][j] + A[i][k] * B[k][j]
     handle = threadMatrixProduct(A, B, n)
     handle.matrixProduct()
     trueSig = True
     for i in range(n):
         for j in range(n):
             trueSig = trueSig and fabs(handle.C[i][j] - C[i][j]) < 10**(-6)
     self.assertTrue(trueSig)
Esempio n. 2
0
 def test_posint(self):
     n = randint(2, 8)
     A = [[randint(0, 10) for j in range(n)] for i in range(n)]
     B = [[randint(0, 10) for j in range(n)] for i in range(n)]
     C = [[0 for j in range(n)] for i in range(n)]
     for i in range(n):
         for j in range(n):
             for k in range(n):
                 C[i][j] = C[i][j] + A[i][k] * B[k][j]
     handle = threadMatrixProduct(A, B, n)
     handle.matrixProduct()
     trueSig = True
     for i in range(n):
         for j in range(n):
             trueSig = trueSig and handle.C[i][j] == C[i][j]
     self.assertTrue(trueSig)
def transitiveClosure(M):  # M is the adjacency matrix of the graph
    # initialising the transitive closure
    T = [[0 for j in range(len(M))] for i in range(len(M))]
    # initialising an iterator
    H = [[M[i][j] for j in range(len(M[i]))] for i in range(len(M))]
    for i in range(len(M)):
        for j in range(len(M)):
            for k in range(len(M)):
                T[j][k] = T[j][k] or H[j][k]
        handle = threadMatrixProduct(H, M, len(M))
        handle.matrixProduct()
        for j in range(len(M)):
            for k in range(len(M)):
                H[j][k] = handle.C[j][k]
    for i in range(len(M)):
        for j in range(len(M)):
            T[i][j] = 1 if T[i][j] > 0 else 0
    return T
Esempio n. 4
0

def mem_usage():
    pid = os.getpid()
    py = psutil.Process(pid)
    mem = py.memory_info()[0] / (2.**30)
    return mem


A1 = range(1, 20)
B1 = [0 for i in range(1, 20)]
for g in range(10):
    for i in range(1, 20):
        A = [[randint(8, 10) for k in range(i)] for j in range(i)]
        B = [[randint(8, 10) for k in range(i)] for j in range(i)]
        handle = threadMatrixProduct(A, B, i)
        start = time()
        handle.interfaceProd()
        end = time()
        if i <= 5:
            B1[i - 1] = B1[i - 1] + (end - start) * (10**3) / (i * i)
        else:
            B1[i - 1] = B1[i - 1] + (end - start) * (10**3) / (i * i * i)
for i in range(1, 20):
    B1[i - 1] = B1[i - 1] / 10
plt.plot(A1, B1)
plt.show()
for i in range(1, 20):
    A = [[randint(2, 10) for j in range(i)] for k in range(i)]
    B = [[randint(2, 10) for j in range(i)] for k in range(i)]
    handle = threadMatrixProduct(A, B, i)