LinearAlgebra[Modular]
Swap
swap data between two mod m Matrices or Vectors of the same datatype
Calling Sequence
Parameters
Description
Examples
Swap(m, ctype, A, B)
m
-
modulus
A
mod m Matrix or Vector, including subspec
B
ctype
(optional) swap type
The Swap function exchanges data between two mod m Matrices or Vectors.
Note that the dimensions of the object specified by A must match those specified for B.
In all cases, the datatype of the output object must match the datatype of the input object.
The ctype parameter is used to specify the type of swap to be performed. Valid options are upper for the upper triangular part of a Matrix, lower for the lower triangular part of a Matrix, and uppernodiag and lowernodiag for the corresponding copy operation without the diagonal.
Note: These swap types are only valid for square Matrices.
The Swap function allows the use of sub-Matrix and sub-Vector specifications for both input and output. For example, the function can be used to exchange a row of a Matrix with a row of another Matrix (or the same Matrix), or exchange data between a column in a Matrix and a row Vector.
Note: If A and B overlap, the behavior of Swap is undefined.
This command is part of the LinearAlgebra[Modular] package, so it can be used in the form Swap(..) only after executing the command with(LinearAlgebra[Modular]). However, it can always be used in the form LinearAlgebra[Modular][Swap](..).
with⁡LinearAlgebraModular:
A≔Create⁡13,4,4,random,integer:
B≔Create⁡13,4,4,random,integer:
A,B
67731036610127612011,1210120591235251067510
Swap entire Matrices.
Swap⁡13,A,B:
1210120591235251067510,67731036610127612011
Exchange rows 1 and 4 in A.
1210120591235251067510
Swap⁡13,A,1,A,4:
6751059123525101210120
Swap row vector and third column of A.
V≔Create⁡13,0,4,random,integer
V≔25510
Swap⁡13,V,transpose,A,1..−1,3:
672105953525101210100
Swap transposed upper triangular part of A with self (in-place transpose).
Swap⁡13,upper,A,transpose,A:
655127921025510103100
See Also
LinearAlgebra/Details
LinearAlgebra[Modular][Copy]
LinearAlgebra[Modular][Create]
LinearAlgebra[Modular][Fill]
LinearAlgebra[Modular][subspec]
Download Help Document