1 | initial version |

Indeed, when you write:

```
sage: M=matrix([[2+I,0],[0,1]])
```

The number `I`

belongs to the symbolic ring, hence the matrix `M`

is defined over the symbolic ring:

```
sage: M.parent()
Full MatrixSpace of 2 by 2 dense matrices over Symbolic Ring
```

You can chant this by redefining `I`

to belong to the gaussian integers:

```
sage: R = ZZ[I] ; R
Gaussian Integers in Number Field in I with defining polynomial x^2 + 1
sage: I = R.basis()[1]
sage: M=matrix([[2+I,0],[0,1]])
sage: M.parent()
Full MatrixSpace of 2 by 2 dense matrices over Gaussian Integers in Number Field in I with defining polynomial x^2 + 1
```

Then, you can ask for the Smith form:

```
sage: M.smith_form()
(
[ 1 0] [ 0 1] [ 1 -1]
[ 0 I + 2], [ -1 I + 2], [ 1 0]
)
```

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.