principia_materia.mathematics.smith_normal_form module
Smith Normal Form and Hermite Normal Form
An implementation of Smith Normal Form following the algorithm described in Smith Normal Form - Wikipedia.
Hermite Normal Form is implemented following the definition in Hermite Normal Form - Wikipedia.
- principia_materia.mathematics.smith_normal_form.DiagonalForm(M)
Finds the diagonalized form of the integer matrix M.
- principia_materia.mathematics.smith_normal_form.HermiteNormalForm_AU(M)
Hermite Normal Form of M, Column style
H = ML
- principia_materia.mathematics.smith_normal_form.HermiteNormalForm_UA(M)
Hermite Normal Form of M, Row style
H = LM
- principia_materia.mathematics.smith_normal_form.SmithNormalForm(M)
Finds the Smith Normal Form of the integer matrix M.
The 0 diagonal elements will appear at the end.