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.