Cremona matrices¶
- class sage.libs.eclib.mat.Matrix[source]¶
- Bases: - object- A Cremona Matrix. - EXAMPLES: - sage: M = CremonaModularSymbols(225) sage: t = M.hecke_matrix(2) sage: type(t) <class 'sage.libs.eclib.mat.Matrix'> sage: t 61 x 61 Cremona matrix over Rational Field - >>> from sage.all import * >>> M = CremonaModularSymbols(Integer(225)) >>> t = M.hecke_matrix(Integer(2)) >>> type(t) <class 'sage.libs.eclib.mat.Matrix'> >>> t 61 x 61 Cremona matrix over Rational Field - add_scalar(s)[source]¶
- 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] - >>> from sage.all import * >>> M = CremonaModularSymbols(Integer(23), cuspidal=True, sign=Integer(1)) >>> t = M.hecke_matrix(Integer(2)); print(t.str()) [ 0 1] [ 1 -1] >>> w = t.add_scalar(Integer(3)); print(w.str()) [3 1] [1 2] 
 - charpoly(var='x')[source]¶
- 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 - >>> from sage.all import * >>> M = CremonaModularSymbols(Integer(33), cuspidal=True, sign=Integer(1)) >>> t = M.hecke_matrix(Integer(2)) >>> t.charpoly() x^3 + 3*x^2 - 4 >>> t.charpoly().factor() (x - 1) * (x + 2)^2 
 - ncols()[source]¶
- 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 - >>> from sage.all import * >>> M = CremonaModularSymbols(Integer(1234), sign=Integer(1)) >>> t = M.hecke_matrix(Integer(3)); t.ncols() 156 >>> M.dimension() 156 
 - nrows()[source]¶
- 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 - >>> from sage.all import * >>> M = CremonaModularSymbols(Integer(19), sign=Integer(1)) >>> t = M.hecke_matrix(Integer(13)); t 2 x 2 Cremona matrix over Rational Field >>> t.nrows() 2 
 - sage_matrix_over_ZZ(sparse=True)[source]¶
- Return corresponding Sage matrix over the integers. - INPUT: - sparse– boolean (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) <class '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) <class 'sage.matrix.matrix_integer_dense.Matrix_integer_dense'> - >>> from sage.all import * >>> M = CremonaModularSymbols(Integer(23), cuspidal=True, sign=Integer(1)) >>> t = M.hecke_matrix(Integer(2)) >>> s = t.sage_matrix_over_ZZ(); s [ 0 1] [ 1 -1] >>> type(s) <class 'sage.matrix.matrix_integer_sparse.Matrix_integer_sparse'> >>> s = t.sage_matrix_over_ZZ(sparse=False); s [ 0 1] [ 1 -1] >>> type(s) <class 'sage.matrix.matrix_integer_dense.Matrix_integer_dense'> 
 - str()[source]¶
- 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]' - >>> from sage.all import * >>> M = CremonaModularSymbols(Integer(22), sign=Integer(1)) >>> t = M.hecke_matrix(Integer(13)) >>> 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