next up previous contents
Next: Data structures Up: Other tools Previous: Linear Diophantine equations   Contents

Smith decomposition

Theorem 2   Smith Decomposition. If $A$ is an $n \times n$ non-singular integer matrix, there exist unimodular matrices $U$ and $V$ such that:

\begin{displaymath}
\begin{array}{rl}
i. & UAV = \Delta\\
ii. & \Delta\ is\ a\ ...
...a_{1}\ \vert\ \delta_{2}\ \ldots\ \vert\ \delta_{n}
\end{array}\end{displaymath}

$\Delta$ is unique and is called the Smith normal form of $A$.

For example, consider the matrix:


\begin{displaymath}
M = \left( \begin{array}{ccc}
1 & 2 & 3 \\
-3 & 2 & 0 \\
1 & 0 & 0
\end {array}
\right)\
\end{displaymath}

Its Smith normal decomposition is: $UMV=\Delta$ where:

\begin{displaymath}
\Delta = \left( \begin{array}{ccc}
1 & 0 & 0 \\
0 & 1 & 0 \...
...}
1 & -1 & 0 \\
0& -1 & 3 \\
0 & 1 & -2
\end {array}
\right)
\end{displaymath}

In [NRi00], and affine smith normal form has been defined for affine matrices. The corresponding function in Polylib is:

void AffineSmith (Lattice *A, Lattice **U, Lattice **V, Lattice **Diag)
: compute the Smith normal form of a matrix



Sorin Olaru 2002-04-24