LinearAlgebra[Modular]
Copy
copy mod m Matrix or Vector to a new or already existing mod m Matrix or Vector
Calling Sequence
Parameters
Description
Examples
Copy(m, ctype, A, B, order)
m
-
modulus
A
input object (copy from), including subspec
B
(optional) output object (copy to), including subspec
order
(optional) ordering of output object
ctype
(optional) copy type; lower, upper, uppernodiag, or lowernodiag
The Copy function copies data from one mod m Matrix or Vector to another, or to a new Matrix or Vector.
If B or order are not specified, a new output object with the same ordering as the input object A is returned. If B is not specified, the returned object has the specified ordering either C_order or Fortran_order.
If order is not specified, the copy is performed into the output object B and NULL is returned. Note that the dimensions of the object specified for 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 copy 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 copy types are only valid for square Matrices.
The Copy function allows the use of sub-Matrix and sub-Vector specifications for both input and output. For example, the function can be used to copy a row of a Matrix to a row of another Matrix, or convert a Matrix into a Vector.
Note: If A and B overlap, the behavior of Copy is undefined.
This command is part of the LinearAlgebra[Modular] package, so it can be used in the form Copy(..) only after executing the command with(LinearAlgebra[Modular]). However, it can always be used in the form LinearAlgebra[Modular][Copy](..).
with⁡LinearAlgebraModular:
A≔Mod⁡13,Matrix⁡4,4,i,j↦rand⁡,integer
A≔10081226011921174111211
Copy entire Matrix.
Copy⁡13,A
10081226011921174111211
Copy row 3 to row Vector.
M≔Copy⁡13,A,3
M≔92117
whattype⁡M
Vectorrow
Copy column 2 to column Vector.
N≔Copy⁡13,A,1..−1,2
N≔06211
whattype⁡N
Vectorcolumn
Copy column 2 to a 4x1 Matrix.
L≔Copy⁡13,A,1..−1,2..2
L≔06211
whattype⁡L
Matrix
Copy row 3,2 of A to row 2,3 of B.
B≔Create⁡13,4,4,integer
B≔0000000000000000
Copy⁡13,A,3,B,2:
Copy⁡13,A,2,B,3:
A,B
10081226011921174111211,000092117260110000
This is an error, as B is too small.
B≔Create⁡13,4,3,integer
B≔000000000000
Error, (in LinearAlgebra:-Modular:-Copy) argument 4 has a different number of columns than required by prior arguments
This example results in an error, as datatypes cannot be mixed.
B≔Create⁡13,4,4,float8
B≔0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.
Error, (in LinearAlgebra:-Modular:-Copy) argument 4 has incorrect datatype
An example of upper and lower copy.
Copy⁡13,upper,A
100812060110011700011
B≔Create⁡13,4,4,integer:
Copy⁡13,lowernodiag,A,B:
000020009200411120
See Also
LinearAlgebra/Details
LinearAlgebra[Modular][Create]
LinearAlgebra[Modular][Fill]
LinearAlgebra[Modular][subspec]
LinearAlgebra[Modular][Swap]
Download Help Document