in tutorials/LinearAlgebra/testing.py [0:0]
def gen_unitary_matrix(n = -1):
if n == -1: n = r.randint(1, 5)
temp = gen_complex_matrix(n, n)
# Split the generated matrix into vectors
vectors = []
for i in range(n):
v = []
for j in range(n):
v.append([temp[j][i]])
vectors.append(v)
vectors2 = []
for i in range(n):
v = matrix_copy(vectors[i])
for j in range(i-1,-1,-1):
v = matrix_add_ref(v, scalar_mult_ref(-1, projection(vectors2[j], vectors[i])))
vectors2.append(v)
ans = []
for i in range(n): ans.append([])
for v in vectors2:
append_vector(ans, normalize_ref(v))
return ans