LinearAlgebra[Modular][Rank] - compute the rank of a mod m Matrix
LinearAlgebra[Modular][RankProfile] - compute the rank profile of a square mod m Matrix
|
Calling Sequence
|
|
Rank(m, A, meth)
RankProfile(m, A, meth)
|
|
Parameters
|
|
m
|
-
|
modulus
|
A
|
-
|
mod m Matrix
|
meth
|
-
|
(optional) keyword for choice of method
|
|
|
|
|
Description
|
|
•
|
The Rank function returns the rank of the input mod m Matrix, while the RankProfile function returns a list of 'rank' elements describing the rank profile of the input mod m Matrix.
|
|
The rank profile list is simply a list of the location of the first non-zero entry in each nontrivial row in the row reduced form of the Matrix.
|
•
|
The following methods are available:
|
REF
|
(default) Compute using standard row-reduction (Row Echelon Form)
|
inplaceREF
|
Compute using standard row-reduction in-place in the input Matrix
|
RET
|
Compute using a Row Echelon Transformation approach
|
inplaceRET
|
Compute using a Row Echelon Transformation in-place in the input Matrix
|
|
|
•
|
Note that the two inplace methods available will destroy the data in the input Matrix, while the other two methods will generate a copy of the Matrix in which to perform the computation.
|
•
|
The RET methods are likely to be faster for large matrices, but may fail if the modulus is composite.
|
•
|
These commands are part of the LinearAlgebra[Modular] package, so they can be used in the form Rank(..) and RankProfile(..) only after executing the command with(LinearAlgebra[Modular]). However, they can always be used in the form LinearAlgebra[Modular][Rank](..) and LinearAlgebra[Modular][RankProfile](..).
|
|
|
Examples
|
|
>
|
|
>
|
|
| (1) |
>
|
|
| (2) |
>
|
|
| (3) |
With an inplace method the input Matrix is altered
>
|
|
| (4) |
And a case that is not full rank
>
|
|
| (5) |
>
|
|
| (6) |
>
|
|
| (7) |
A composite example where the RET method is unsuccessful
>
|
|
| (8) |
>
|
|
| (9) |
>
|
|
Note that this is only because this is a case where the row echelon form exists, but the row echelon transform cannot be written in the required form.
|
|
Download Help Document
Was this information helpful?