LinearAlgebra[Modular]
ZigZag
in place conversion of mod m Matrix to ZigZag form
Calling Sequence
Parameters
Description
Examples
ZigZag(m, A)
m
-
modulus
A
square mod m Matrix
The ZigZag function applies a sequence of similarity transformations to the nxn mod m Matrix A to obtain the ZigZag form of A.
A ZigZag form is an almost block diagonal structure having fewer than 2n 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](..).
withLinearAlgebraModular:
p≔97
A≔Modp,Matrix5,5,i,j↦ifi≤jthenrandelse0endif,integer
A≔7796108658036802244003960390004312000055
A2≔Copyp,A:
ZigZagp,A2:
A2
77100000100000100000104483676
FrobeniusA2modp,FrobeniusAmodp
0000710001001004900104000156,0000710001001004900104000156
See Also
Frobenius
LinearAlgebra/Details
LinearAlgebra[Modular][Copy]
LinearAlgebra[Modular][Mod]
Download Help Document