Пример #1
0
def cohom_test(x,y,z,n):
    for i in range(n):
        AA = ModMatrix.random(y,z)
        BB = ModMatrix.random(x,y)

        if (BB * AA).is_zero():
            print"BB\n", BB, "\n"
            print "AA\n", AA, "\n"
            coh = Cohomology(BB, AA)
            print coh.get_cohomology()
Пример #2
0
def cohom_test(x, y, z, n):
    for i in range(n):
        AA = ModMatrix.random(y, z)
        BB = ModMatrix.random(x, y)

        if (BB * AA).is_zero():
            print "BB\n", BB, "\n"
            print "AA\n", AA, "\n"
            coh = Cohomology(BB, AA)
            print coh.get_cohomology()
Пример #3
0
def matrix_add(i, j, n):
    for a in range(n):
        xx = ModMatrix.random(i, j)
        yy = ModMatrix.random(i, j)
        print xx, "\n", yy, "\n", xx + yy, "\n"
    xx = ModMatrix.random(i, j)
    yy = ModMatrix.random(i + 1, j + 1)
    try:
        print xx + yy
    except TypeError:
        print xx, "\n", "wrong size", "\n", yy
Пример #4
0
def matrix_add(i, j, n):
    for a in range(n):
        xx = ModMatrix.random(i, j)
        yy = ModMatrix.random(i, j)
        print xx, "\n", yy, "\n",  xx + yy, "\n"
    xx = ModMatrix.random(i, j)
    yy = ModMatrix.random(i+1, j+1)
    try:
        print xx + yy
    except TypeError:
        print xx, "\n", "wrong size", "\n",  yy
Пример #5
0
def inv_test(x, n):
    for i in range(n):
        AA = ModMatrix.random(x, x)
        print "AA\n", AA, "\n"
        print "inv\n", AA.get_inverse(), "\n"
        if AA.get_inverse():
            print "Ix\n", AA * AA.get_inverse(), "\n"
Пример #6
0
def append_test(x,y,n):
    for i in range(n):
        AA = ModMatrix.random(x,y)
        zz = ModVector.random(x)
        print "AA\n", AA, "\n"
        print "zz\n", zz, "\n"
        print "append\n", AA.get_append_columns([zz,zz + zz]), "\n"
Пример #7
0
def inv_test(x,n):
    for i in range(n):
        AA = ModMatrix.random(x,x)
        print "AA\n", AA, "\n"
        print "inv\n", AA.get_inverse(), "\n"
        if AA.get_inverse():
            print "Ix\n", AA * AA.get_inverse(), "\n"
Пример #8
0
def append_test(x, y, n):
    for i in range(n):
        AA = ModMatrix.random(x, y)
        zz = ModVector.random(x)
        print "AA\n", AA, "\n"
        print "zz\n", zz, "\n"
        print "append\n", AA.get_append_columns([zz, zz + zz]), "\n"
Пример #9
0
def ker_test(x,y,n):
    for i in range(n):
        AA = ModMatrix.random(x,y)
        print AA.get_rref(), "\n"
        ker = AA.get_kernel()
        for xx in ker:
            print "soln\n", xx, "\n"
            print "result\n", AA * xx
Пример #10
0
def ker_test(x, y, n):
    for i in range(n):
        AA = ModMatrix.random(x, y)
        print AA.get_rref(), "\n"
        ker = AA.get_kernel()
        for xx in ker:
            print "soln\n", xx, "\n"
            print "result\n", AA * xx
Пример #11
0
def rref_test(x,y,n):
    for i in range(n):
        xx = ModMatrix.random(x,y)
        xx.compute_rref()
        print xx, "\n"
        print xx.rref, "\n"
        print xx.basis_change, "\n"
        pp = xx.basis_change
        print pp * xx
        rr = pp * xx
        print rr == xx.rref
Пример #12
0
def rref_test(x, y, n):
    for i in range(n):
        xx = ModMatrix.random(x, y)
        xx.compute_rref()
        print xx, "\n"
        print xx.rref, "\n"
        print xx.basis_change, "\n"
        pp = xx.basis_change
        print pp * xx
        rr = pp * xx
        print rr == xx.rref
Пример #13
0
def solve_test(x, y, n):
    for i in range(n):
        AA = ModMatrix.random(x, y)
        bb = ModVector.random(x)
        print AA.can_solve(bb)
        xx = AA.solve(bb)
        print "A\n", AA, "\n"
        print "rrefA\n", AA.get_rref(), "\n"
        print "b\n", bb, "\n"
        print "x\n", xx, "\n"
        print "Ax\n", AA * xx
        print AA * xx == ModMatrix([bb]).get_transpose()
Пример #14
0
def solve_test(x,y,n):
    for i in range(n):
        AA = ModMatrix.random(x,y)
        bb = ModVector.random(x)
        print AA.can_solve(bb)
        xx = AA.solve(bb)
        print "A\n",  AA, "\n"
        print "rrefA\n", AA.get_rref(), "\n"
        print "b\n", bb, "\n"
        print "x\n", xx, "\n"
        print "Ax\n", AA * xx
        print AA * xx == ModMatrix([bb]).get_transpose()
Пример #15
0
def matrix_mul(i, j, k, n):
    for a in range(n):
        xx = ModMatrix.random(i, j)
        yy = ModMatrix.random(j, k)
        print xx, "\n\n", yy, "\n\n", xx * yy, "\n"
Пример #16
0
def rank_test(x,y,n):
    for i in range(n):
        AA = ModMatrix.random(x,y)
        print "AA\n", AA, "\n"
        print AA.get_rank()
Пример #17
0
def row_op_test(x,y,n):
    for i in range(n):
        xx = ModMatrix.random(x,y)
        print xx
        xx.el_row_op( random.randrange(opts.prime), 0, 1) 
        print xx
Пример #18
0
def rank_test(x, y, n):
    for i in range(n):
        AA = ModMatrix.random(x, y)
        print "AA\n", AA, "\n"
        print AA.get_rank()
Пример #19
0
def matrix_mul(i,j,k,n):
    for a in range(n):
        xx = ModMatrix.random(i,j)
        yy = ModMatrix.random(j,k)
        print xx, "\n\n", yy, "\n\n", xx*yy, "\n"
Пример #20
0
def row_op_test(x, y, n):
    for i in range(n):
        xx = ModMatrix.random(x, y)
        print xx
        xx.el_row_op(random.randrange(opts.prime), 0, 1)
        print xx