|
Mechanics of Defect Evolution Library
|
#include <SmithDecomposition.h>
Public Member Functions | |
| SmithDecomposition (const MatrixNi &A) | |
| const MatrixNi & | matrixU () const |
| const MatrixNi & | matrixD () const |
| const MatrixNi & | matrixV () const |
| const MatrixNi & | matrixX () const |
| const MatrixNi & | matrixY () const |
Class template which computes the Smith normal (or canonical) form of a square matrix of integers A.
The decomposition is: A=X*D*Y where X and Y are unimodular integers matrices D is a diagonal ingeter matrix such that D(k,k) divides D(k+1,k+1) The class also computes the matrices U and V such that D=U*A*V where U=inv(X) and V=inv(Y) are also unimodular integer matrices.
Definition at line 30 of file SmithDecomposition.h.
|
inline |
The algorithm follows section 2 in GEORGE HAVAS AND BOHDAN S. MAJEWSKI, Integer Matrix Diagonalization, J. Symbolic Computation (1997) 24, 399–408.
Definition at line 227 of file SmithDecomposition.h.
|
inline |
Definition at line 323 of file SmithDecomposition.h.
|
inline |
Definition at line 317 of file SmithDecomposition.h.
|
inline |
Definition at line 329 of file SmithDecomposition.h.
|
inline |
Definition at line 335 of file SmithDecomposition.h.
|
inline |
Definition at line 341 of file SmithDecomposition.h.