Cremona matrices¶
-
class
sage.libs.eclib.mat.
Matrix
¶ Bases:
object
A Cremona Matrix.
EXAMPLES:
sage: M = CremonaModularSymbols(225) sage: t = M.hecke_matrix(2) sage: type(t) <type 'sage.libs.eclib.mat.Matrix'> sage: t 61 x 61 Cremona matrix over Rational Field
-
add_scalar
(s)¶ Return new matrix obtained by adding s to each diagonal entry of self.
EXAMPLES:
sage: M = CremonaModularSymbols(23, cuspidal=True, sign=1) sage: t = M.hecke_matrix(2); print(t.str()) [ 0 1] [ 1 -1] sage: w = t.add_scalar(3); print(w.str()) [3 1] [1 2]
-
charpoly
(var='x')¶ Return the characteristic polynomial of this matrix, viewed as as a matrix over the integers.
ALGORITHM:
Note that currently, this function converts this matrix into a dense matrix over the integers, then calls the charpoly algorithm on that, which I think is LinBox’s.
EXAMPLES:
sage: M = CremonaModularSymbols(33, cuspidal=True, sign=1) sage: t = M.hecke_matrix(2) sage: t.charpoly() x^3 + 3*x^2 - 4 sage: t.charpoly().factor() (x - 1) * (x + 2)^2
-
ncols
()¶ Return the number of columns of this matrix.
EXAMPLES:
sage: M = CremonaModularSymbols(1234, sign=1) sage: t = M.hecke_matrix(3); t.ncols() 156 sage: M.dimension() 156
-
nrows
()¶ Return the number of rows of this matrix.
EXAMPLES:
sage: M = CremonaModularSymbols(19, sign=1) sage: t = M.hecke_matrix(13); t 2 x 2 Cremona matrix over Rational Field sage: t.nrows() 2
-
sage_matrix_over_ZZ
(sparse=True)¶ Return corresponding Sage matrix over the integers.
INPUT:
sparse
– (default: True) whether the return matrix has a sparse representation
EXAMPLES:
sage: M = CremonaModularSymbols(23, cuspidal=True, sign=1) sage: t = M.hecke_matrix(2) sage: s = t.sage_matrix_over_ZZ(); s [ 0 1] [ 1 -1] sage: type(s) <type 'sage.matrix.matrix_integer_sparse.Matrix_integer_sparse'> sage: s = t.sage_matrix_over_ZZ(sparse=False); s [ 0 1] [ 1 -1] sage: type(s) <type 'sage.matrix.matrix_integer_dense.Matrix_integer_dense'>
-
str
()¶ Return full string representation of this matrix, never in compact form.
EXAMPLES:
sage: M = CremonaModularSymbols(22, sign=1) sage: t = M.hecke_matrix(13) sage: t.str() '[14 0 0 0 0]\n[-4 12 0 8 4]\n[ 0 -6 4 -6 0]\n[ 4 2 0 6 -4]\n[ 0 0 0 0 14]'
-
-
class
sage.libs.eclib.mat.
MatrixFactory
¶ Bases:
object