# 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.