X-Git-Url: https://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2Fdunshire%2Fmatrices.py;h=1e0f2a5b7970fd19b78a2d136dc0a98dee2547af;hb=002b5370da24f083d2088c3482cf076615a13563;hp=5acc7a876e417beafd259d416f59fc283c1c5f67;hpb=f9c11a761f23f781495171c2b3136a92388a18a1;p=dunshire.git diff --git a/src/dunshire/matrices.py b/src/dunshire/matrices.py index 5acc7a8..1e0f2a5 100644 --- a/src/dunshire/matrices.py +++ b/src/dunshire/matrices.py @@ -55,9 +55,9 @@ def eigenvalues(real_matrix): """ domain_dim = real_matrix.size[0] # Assume ``real_matrix`` is square. - W = matrix(0, (domain_dim, 1), tc='d') - syev(real_matrix, W) - return list(W) + eigs = matrix(0, (domain_dim, 1), tc='d') + syev(real_matrix, eigs) + return list(eigs) def identity(domain_dim): @@ -101,3 +101,26 @@ def norm(matrix_or_vector): """ return sqrt(sum([x**2 for x in matrix_or_vector])) + + +def vec(real_matrix): + """ + Create a long vector in column-major order from ``real_matrix``. + + EXAMPLES: + + >>> A = matrix([[1,2],[3,4]]) + >>> print(A) + [ 1 3] + [ 2 4] + + + >>> print(vec(A)) + [ 1] + [ 2] + [ 3] + [ 4] + + + """ + return matrix(real_matrix, (len(real_matrix), 1))