LinearAlgebra
Multiply
compute the product of Matrices, Vectors, and scalars
Calling Sequence
Parameters
Description
Examples
Multiply(A, B, ip, outopt)
A
-
Matrix, Vector, or scalar
B
ip
(optional) equation of the form inplace=true or false; specifies if output overwrites input
outopt
(optional); constructor options for the result object
The Multiply(A, B) function computes the product A·B. The type of result that is returned depends on the type of A and B (see the table under Programming Note below).
The inplace option (ip) determines where the result is returned. If given as inplace=true, the result overwrites the first argument. If given as inplace=false, or if this option is not included in the calling sequence, the result is returned in a new Matrix (or Vector).
If the first argument is a scalar, the computation is performed in place on the second argument (if possible). If both arguments are scalars, the inplace and constructor options parameters are ignored.
The condition inplace=true can be abbreviated to inplace.
The inplace option must be used with caution since, if the operation fails, the original Matrix (or Vector) argument may be corrupted.
The constructor options provide additional information (readonly, shape, storage, order, datatype, and attributes) to the Matrix or Vector constructor that builds the result. These options may also be provided in the form outputoptions=[...], where [...] represents a Maple list. If a constructor option is provided in both the calling sequence directly and in an outputoptions option, the latter takes precedence (regardless of the order).
The inplace and constructor options are mutually exclusive.
This function is part of the LinearAlgebra package, and so it can be used in the form Multiply(..) only after executing the command with(LinearAlgebra). However, it can always be accessed through the long form of the command by using LinearAlgebra[Multiply](..).
This function has an equivalent shortcut notation, A.B (with the exception that LinearAlgebra[Multiply] treats any expression which is of type algebraic and not of type rtable as a scalar, while the dot operator only considers objects of type constant to be scalars). For more information, see the dot operator.
Programming Note
This routine uses the types of A and B to choose the corresponding binary multiplication routine in the LinearAlgebra package. The parameter types, the corresponding result type, and the LinearAlgebra multiplication routine that is called are shown in the following table.
qXn
1Xn
qX1
Matrix
row Vector
col Vector
scalar
mXq
mXn Matrix
ERROR
mX1 col Vector
mXq Matrix
MatrixMatrixMultiply
MatrixVectorMultiply
MatrixScalarMultiply
1Xq
1Xn row Vector
1Xq Vector
VectorMatrixMultiply
VectorScalarMultiply
mX1
mXn Matrix (outer product)
mX1 Vector
OuterProductMatrix
qXn Matrix
qX1 col Vector
standard multiplication
Notes:
* If either A or B are unrecognized types (not a Matrix, Vector, or scalar), an error is returned.
* In the outer product case, the result is not constructed as a Matrix with the OuterProduct shape, but rather it is generated as a full rectangular Matrix.
with⁡LinearAlgebra:
A≔n,0|0,n
A≔n00n
Multiply⁡A,A
n200n2
Multiply⁡A,−2,inplace
−2⁢n00−2⁢n
r1≔3|2|1
r1≔321
c1≔x,y,z
c1≔xyz
Multiply⁡r1,c1
3⁢x+2⁢y+z
B≔Multiply⁡c1,r1
B≔3⁢x2⁢xx3⁢y2⁢yy3⁢z2⁢zz
Multiply⁡B,0,0,1
xyz
See Also
dot
LinearAlgebra[MatrixMatrixMultiply]
LinearAlgebra[MatrixVectorMultiply]
LinearAlgebra[ScalarMultiply]
type/scalar
Vector
Download Help Document