Determinant - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


LinearAlgebra[Modular]

  

Determinant

  

compute the determinant of a square mod m Matrix

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

Determinant(m, A, meth)

Parameters

m

-

modulus

A

-

square mod m Matrix

meth

-

(optional) keyword for choice of method

Description

• 

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](..).

Examples

withLinearAlgebraModular:

p97

p97

(1)

MCreatep,4,4,random,float8

M96.62.93.90.58.16.76.19.7.49.42.78.26.19.21.21.

(2)

Determinantp,M,M

5,96.62.93.90.58.16.76.19.7.49.42.78.26.19.21.21.

(3)

With inplaceREF the input Matrix is altered

Determinantp,M,inplaceREF,M

5,1.35.4.7.0.1.86.38.0.0.1.96.0.0.0.1.

(4)

A composite example where the RET method is unsuccessful

MMatrix3,2,2,3,datatype=integer

M3223

(5)

Determinant6,M,REF

5

(6)

Determinant6,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]

LinearAlgebra[Modular][Create]

LinearAlgebra[Modular][RowEchelonTransform]

LinearAlgebra[Modular][RowReduce]