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

  

AddMultiple

  

add multiple of a mod m Matrix or Vector to another

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

AddMultiple(m, mult, A, B, order, 'sparse')

AddMultiple(m, mult, A, B, C, 'sparse')

Parameters

m

-

modulus

A

-

Matrix or Vector, including subspec

B

-

Matrix or Vector, including subspec

order

-

ordering of output object

sparse

-

(optional) controls behavior of operation

mult

-

(optional) multiplier, default is 1

C

-

output Matrix or Vector, including subspec

Description

• 

The AddMultiple function performs the operation  placing the output in a new object, or in C, depending on calling sequence. All of A, B, and C must be mod m Matrices or Vectors, and mult must be a scalar.

  

The first calling sequence returns a new mod m Matrix or Vector for the result with the specified ordering, order, or the ordering of the input objects A and B.

  

Note: If A and B have different ordering, order must be specified.

  

The second calling sequence places the output of the computation into C, returning NULL.

  

Note: The parameter C can be the same Matrix or Vector as A or B as long as the operation is performed with direct overlap.  For example, if A and C are the same Matrix, the operation involving the entry  must have the result going to .

• 

The multiplier, mult, is an optional parameter.  However, if it is not specified, it is assumed to be 1. The multiplier must be in the range .  This function can be used to perform Matrix or Vector subtraction by the selection of . This is coded efficiently, that is, without multiplication.

• 

If specified, the optional keyword 'sparse', is only applicable if the multiplier is not  or  and the datatype is a hardware datatype.  It indicates that the algorithm checks for zero entries before performing multiplications. This typically provides an efficiency gain if matrices have 10% or more entries in B equal to zero. This is not implemented for the integer datatype, as it typically provides very little gain.

  

Note: In cases for which sparse does not apply but has been specified, the option is ignored.

• 

The AddMultiple function allows the use of sub-Matrix and sub-Vector specifications for both input and output Matrices or Vectors. For example, the function can be used to add a row of a Matrix to a row Vector, placing the result in the column of another Matrix.

• 

Note: If the used portion of A or B, and C overlap, but not directly, the behavior of AddMultiple is undefined.

• 

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

Examples

(1)

(2)

Default multiplier and new output Matrix (A+B).

(3)

Chosen multiplier of 2 (A+2*B).

(4)

Replace A with the result.

(5)

Add row 3 of A to row 2 of A, with output in column 1 of B.

(6)

Construct a larger Matrix and identity Matrix, using larger modulus.

Time addition of 327*B to A 2000 times.

(7)

Time addition of 327*B to A 2000 times using sparse.

(8)

See Also

LinearAlgebra/Details

LinearAlgebra[Modular]

LinearAlgebra[Modular][Mod]

LinearAlgebra[Modular][subspec]

 


Download Help Document