compute the rank of a mod m Matrix
compute the rank profile of a square mod m Matrix
Rank(m, A, meth)
RankProfile(m, A, meth)
mod m Matrix
(optional) keyword for choice of method
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:
(default) Compute using standard row-reduction (Row Echelon Form)
Compute using standard row-reduction in-place in the input Matrix
Compute using a Row Echelon Transformation approach
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](..).
p ≔ 97
M ≔ Mod⁡p,2,11,1,80,31,16,27,36,8,32,32,31,25,4,90,63,integer
With an inplace method the input Matrix is altered
And a case that is not full rank
M ≔ Mod⁡p,2,2,1,80,31,31,27,36,8,8,32,31,25,25,90,63,integer
A composite example where the RET method is unsuccessful
M ≔ Matrix⁡3,2,2,3,datatype=integer
Error, (in LinearAlgebra:-Modular:-RowEchelonTransform) modulus is composite
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
What kind of issue would you like to report? (Optional)