def gen_eigenmatrix()

in tutorials/LinearAlgebra/testing.py [0:0]


def gen_eigenmatrix(n = -1):
    if n == -1: n = r.randint(2, 5)
    
    ans = [[0]]
    while ans[0][-1] == 0:
        ans = gen_complex_matrix(n, n)
    eigen = ans[0][-1]
    ans[0][-1] = 0
    
    for i in range(n):
        ans[i][i] -= eigen
    
    part_det = determinant(ans)
    topright = part_det / determinant(ans[1:])
    if n % 2 == 1: topright *= -1
    
    ans[0][-1] = topright
    for i in range(n):
        ans[i][i] += eigen
    
    return (ans, eigen)