Smith normal form : ismith

### 2.46.13 Smith normal form : `ismith`

`ismith` takes as argument a matrix with coefficients in ℤ.
`ismith` returns three matrices `U,B` and `V` such that `B=U*A*V`, `U` and `V` are invertible in ℤ, `B` is diagonal, and `B[i,i]` divides `B[i+1,i+1]`. The coefficients `B[i,i]` are called invariant factors, they are used to describe the structure of finite abelian groups.
Input :

`A:=[[9,-36,30],[-36,192,-180],[30,-180,180]]; U,B,V:=ismith(A)`

Output :

`[[-3,0,1],[6,4,3],[20,15,12]], [[3,0,0],[0,12,0],[0,0,60]], [[1,24,-30],[0,1,0],[0,0,1]]`

The invariant factors are 3, 12 and 60.