smith form, gaussian integers
Hello there, I would like to be able to compute smith normal forms for matrices with coefficients in some specific ring, to be choosen each time.
I am not able to properly creat a matrix in $\mathbb{Z}[\sqrt{-1}]$. For instance
M=matrix([[2+I,0],[0,1]])
then
M.change_ring(ZZ[I])
Would lead to an error. On the ogher hand, M=matrix([[2+I,0],[0,1]])
followed by M.smith_form()
would lso lead to an error since this time my matrix has coefficients in SR
, the symbolic ring, and the normal_form()
is not implemented.
However,
A = QQ['x']
#delcaring the ring
M=matrix(A,[[x-1,0,1],[0,x-2,2],[0,0,x-3]])
# building the matrix
M.smith_form()
# computing the normal form
Actually works.