LinearAlgebra[Modular]
Determinant
compute the determinant of a square mod m Matrix
Calling Sequence
Parameters
Description
Examples
Determinant(m, A, meth)
m
-
modulus
A
square mod m Matrix
meth
(optional) keyword for choice of method
The Determinant function returns the mod m determinant of the input square mod m 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 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.
This command is part of the LinearAlgebra[Modular] package, so it can be used in the form Determinant(..) only after executing the command with(LinearAlgebra[Modular]). However, it can always be used in the form LinearAlgebra[Modular][Determinant](..).
with⁡LinearAlgebraModular:
p≔97
M≔Create⁡p,4,4,random,float8
M≔96.62.93.90.58.16.76.19.7.49.42.78.26.19.21.21.
Determinant⁡p,M,M
5,96.62.93.90.58.16.76.19.7.49.42.78.26.19.21.21.
With inplaceREF the input Matrix is altered
Determinant⁡p,M,inplaceREF,M
5,1.35.4.7.0.1.86.38.0.0.1.96.0.0.0.1.
A composite example where the RET method is unsuccessful
M≔Matrix⁡3,2,2,3,datatype=integer
M≔3223
Determinant⁡6,M,REF
5
Determinant⁡6,M,RET
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.
See Also
LinearAlgebra/Details
LinearAlgebra[Modular][Create]
LinearAlgebra[Modular][RowEchelonTransform]
LinearAlgebra[Modular][RowReduce]
Download Help Document