SmithReduce[m]
gives the Smith normal form of an integer matrix .


SmithReduce
SmithReduce[m]
gives the Smith normal form of an integer matrix .
Details

- The result is a diagonal matrix with each diagonal entry dividing the next one.
- This result is the second element of the result given by SmithDecomposition.
Examples
open all close allBasic Examples (1)
Scope (12)
Basic Uses (8)
Find the Smith reduction of an integer square matrix:
Smith reduction of a singular matrix:
The number of nonzero rows in r is equal to the rank of m:
Smith reduction for a rectangular matrix:
Use SmithReduce with a rational matrix:
Smith reduction for a Gaussian integer matrix:
Smith reduction for a Gaussian rational matrix:
Smith reduction works only with exact matrices:

The Smith reduction for a large, integer matrix is computed efficiently:
Special Matrices (4)
Find the Smith reduction for sparse matrices:
Smith reduction of structured matrices:
Smith reduction of an IdentityMatrix is simply an identity matrix:
Smith reduction of HilbertMatrix:
Applications (2)
The Smith reduction gives a canonical representation for finitely generated Abelian groups. Consider the quotient group of integer 2‐vectors modulo the relations
and
. That is to say, consider two points in the plane equivalent if they differ by integer multiples of the vectors
and
. Compute the Smith reduction of the matrix
whose rows are the
:
From , it can be seen that the structure of the group is
, or simply
, as
is the trivial group:
Use SmithReduce to compute the extended GCD of two integers and
:
Let be the column matrix with entries
and
:
The Smith reduction gives the GCD as well as a zero entry:
Compare to GCD:
Properties & Relations (6)
The Smith reduction is a diagonal, rectangular matrix of the same dimensions as :
Each diagonal entry in divides its successor:
The Smith reduction is the second matrix in the result of SmithDecomposition:
The matrix has integer values if the input matrix is integer:
If the input matrix has noninteger rational elements, so will the matrix:
For a rational-valued input, the diagonal entries of the matrix are non-negative:
For complex-valued input, the real and imaginary parts of the entries are non-negative:
The Smith reduction can often be found by two iterations of HermiteReduce:
The first use of HermiteReduce gives an upper triangular matrix:
Applying HermiteReduce to the Transpose of the triangular matrix gives :
See Also
Related Guides
History
Text
Wolfram Research (2025), SmithReduce, Wolfram Language function, https://reference.wolfram.com/language/ref/SmithReduce.html.
CMS
Wolfram Language. 2025. "SmithReduce." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SmithReduce.html.
APA
Wolfram Language. (2025). SmithReduce. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SmithReduce.html
BibTeX
@misc{reference.wolfram_2025_smithreduce, author="Wolfram Research", title="{SmithReduce}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/SmithReduce.html}", note=[Accessed: 04-August-2025]}
BibLaTeX
@online{reference.wolfram_2025_smithreduce, organization={Wolfram Research}, title={SmithReduce}, year={2025}, url={https://reference.wolfram.com/language/ref/SmithReduce.html}, note=[Accessed: 04-August-2025]}