示例#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