in place conversion of mod m Matrix to ZigZag form
square mod m Matrix
The ZigZag function applies a sequence of similarity transformations to the n⁢x⁢n mod m Matrix A to obtain the ZigZag form of A.
A ZigZag form is an almost block diagonal structure having fewer than 2⁢n nonzero entries.
A ZigZag form can be used to obtain the Smith normal form and the Frobenius form of a Matrix. The Frobenius form of a Matrix is the same as the Frobenius form of its ZigZag form.
This command is part of the LinearAlgebra[Modular] package, so it can be used in the form ZigZag(..) only after executing the command with(LinearAlgebra[Modular]). However, it can always be used in the form LinearAlgebra[Modular][ZigZag](..).
p ≔ 97
A ≔ Mod⁡p,Matrix⁡5,5,i,j→ifi≤jthenrand⁡else0end if,integer
A2 ≔ Copy⁡p,A:
Download Help Document