LUApply - 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]

  

LUApply

  

apply PLU Decomposition to a mod m Matrix or Vector

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

LUApply(m, A, pvec, B)

Parameters

m

-

modulus

A

-

mod m Matrix (from LUDecomposition)

pvec

-

permutation vector (from LUDecomposition)

B

-

mod m Matrix or Vector representing right-hand side of problem

Description

• 

The LUApply function applies the permutation pvec and the forward and backward substitutions encoded in A directly to the right-hand side mod m Matrix or Vector B, where pvec and A are the output of the LUDecomposition function.

  

B must have the same number of rows as columns in A.

• 

The function works directly on B, returning the solution in B on successful completion. If the function fails, B can be altered.

• 

LUApply is simply the application of Permute, ForwardSubstitute, and then BackwardSubstitute.

• 

This command is part of the LinearAlgebra[Modular] package, so it can be used in the form LUApply(..) only after executing the command with(LinearAlgebra[Modular]).  However, it can always be used in the form LinearAlgebra[Modular][LUApply](..).

Examples

Compute LU decomposition of a random 5 x 5 Matrix, and use LUApply to obtain a solution.

withLinearAlgebraModular:

p97

p97

(1)

AModp,Matrix5,5,i,jrand,integer:

A

779610865836802244396039431255224714529214873357

(2)

A2Copyp,A:

pvVector4:

LUDecompositionp,A2,pv,0:

A2,pv

77961086583720406327946017964295663778625440105,1234

(3)

BModp,Matrix5,2,i,jrand,integer

B65169396714470582529

(4)

XCopyp,B:

LUApplyp,A2,pv,X:

X

1137122057118368111

(5)

Check the solution.

Multiplyp,A,XB

0000000000

(6)

Use float[8] with a nontrivial permutation.

p13:

AMod13,0,0,12,12,0,3,1,1,1,float8

A0.0.12.12.0.3.1.1.1.

(7)

A2Copyp,A:

pvVector2:

LUDecompositionp,A2,pv,0:

A2,pv

12.0.3.12.1.4.0.0.12.,23

(8)

Now apply to a random vector and check it.

BModp,Vector3,irand,float8

B5.3.5.

(9)

XCopyp,B:

LUApplyp,A2,pv,X:

X

8.2.8.

(10)

Multiplyp,A,XB

0.0.0.

(11)

See Also

LinearAlgebra/Details

LinearAlgebra[Modular]

LinearAlgebra[Modular][BackwardSubstitute]

LinearAlgebra[Modular][Copy]

LinearAlgebra[Modular][ForwardSubstitute]

LinearAlgebra[Modular][LUDecomposition]

LinearAlgebra[Modular][Mod]

LinearAlgebra[Modular][Multiply]

LinearAlgebra[Modular][Permute]