TSparseMtx.Copy Method

Overload List

#SignatureDescription
1procedure Copy(const Src: TSparseMtx; StripZeros: Boolean);Copies sparse matrix from Src to the calling object.
2function Copy(const Src: TMtxVec): TMtxVec;Copy object values.
└ indexed: function Copy(const Vec: TMtxVec; VecIndex: Integer; Index: Integer; Len: Integer): TMtxVec;
3function Copy(const Src: TMtxVec; const dstFloatPrecision: TMtxFloatPrecision): TMtxVec;Copy object values.
4function Copy(const Src: TMtxVecInt; const dstFloatPrecision: TMtxFloatPrecision): TMtxVec;Copy and convert values from TVecInt.
5function Copy(const Src: TMtxVecInt; SrcIndex: Integer; Index: Integer; Len: Integer): TMtxVec;Copy and convert values from TVecInt at indexes [SrcIndex]...[SrcIndex+Len-1].

Overload 1: procedure Copy(const Src: TSparseMtx; StripZeros: Boolean);

Copies sparse matrix from Src to the calling object.

#NameTypeDescription
1SrcTSparseMtx
2StripZerosBoolean

Result: stored in self (calling object)

Overload 2: function Copy(const Src: TMtxVec): TMtxVec;

Copy object values.

#NameTypeDescription
1SrcTMtxVecsource TVec or TMtx

Result: stored in self (calling object), returns self for chaining

Remarks:

Copy each of Vec elements to the calling object. Size and TMtxVec.Complex properties of the calling object are set implicitly to match Vec object.

Examples
var a,b,c: Matrix;
begin
    a.SetIt(1,2,True,[1,2,3,4]);  // a = [1,2,3,4]
    b.Copy(a);                // b = [1,2,3,4]
    c.Copy(a,b);  //concatenate a and b and store in c = [1,2,3,4,1,2,3,4]
end;
var
    a, x: Matrix;
begin
    x := [[1.0, 2.0], [3.0, 4.0]];
    a.Copy(x);
    if not a.IsEqual(x, 1e-10, TCompare.cmpAbsolute) then
        raise Exception.Create('Matrix.Copy: mismatch');
end;

Indexed: function Copy(const Vec: TMtxVec; VecIndex: Integer; Index: Integer; Len: Integer): TMtxVec;

Copy Vec elements [VecIndex]..[VecIndex+Len-1] in the calling object elements [Index]..[Index+Len-1].

#NameTypeDescription
1VecTMtxVecsource TVec or TMtx
2VecIndexInteger
3IndexIntegerstart index
4LenIntegerelement count

Result: stored in self (calling object), returns self for chaining

Remarks:

Size and TMtxVec.Complex properties must be set explicitly. An exception is raised if TMtxVecBase.ConditionCheck is True and array borders are overrun or underrun.

Overload 3: function Copy(const Src: TMtxVec; const dstFloatPrecision: TMtxFloatPrecision): TMtxVec;

Copy object values.

#NameTypeDescription
1SrcTMtxVecsource TVec or TMtx
2dstFloatPrecisionTMtxFloatPrecision

Result: stored in self (calling object), returns self for chaining

Remarks:

Copy each of Vec elements to the calling object. Size and TMtxVec.Complex properties of the calling object are set implicitly to match Vec object.

Examples
begin
    TVec a,b,c;
    CreateIt(a, b, c);
    try
        a.SetIt(True,[1,2,3,4]);  // a = [1,2,3,4] i.e 1+2i ; 3+4i
        b.Copy(a, mvSingle);                // convert to single precision
    finally
        FreeIt(a, b, c);
    end;
end;

Overload 4: function Copy(const Src: TMtxVecInt; const dstFloatPrecision: TMtxFloatPrecision): TMtxVec;

Copy and convert values from TVecInt.

#NameTypeDescription
1SrcTMtxVecIntsource TVecInt or TMtxInt
2dstFloatPrecisionTMtxFloatPrecision

Result: stored in self (calling object), returns self for chaining

Remarks:

Applies appropriate conversion and copy data from TVecInt. The destinaton data format is determined with dstFloatPrecision.

Overload 5: function Copy(const Src: TMtxVecInt; SrcIndex: Integer; Index: Integer; Len: Integer): TMtxVec;

Copy and convert values from TVecInt at indexes [SrcIndex]...[SrcIndex+Len-1].

#NameTypeDescription
1SrcTMtxVecIntsource TVecInt or TMtxInt
2SrcIndexIntegersource start index
3IndexIntegerstart index
4LenIntegerelement count

Result: stored in self (calling object), returns self for chaining

Remarks:

Applies appropriate conversion and copy data from TVecInt. The results are stored in calling object elements [Index]...[Index+Len-1]. Size and TMtxVec.Complex properties of the calling object must be set explicitly. An exception is raised if array borders are overrun.