TSparseMtx.Round Method

Overload List

#SignatureDescription
1function Round: TMtxVec;Elements rounded to the nearest whole number.
└ indexed: function Round(Index: Integer; Len: Integer): TMtxVec;
2function Round(const Src: TMtxVec): TMtxVec;Round all Src object elements.
└ indexed: function Round(const Src: TMtxVec; SrcIndex: Integer; Index: Integer; Len: Integer): TMtxVec;
3function Round(var Dst: TIntegerArray): TMtxVec;Rounds the calling object elements to 4 byte integers.

Overload 1: function Round: TMtxVec;

Elements rounded to the nearest whole number.

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

Remarks:

Rounds all calling object elements to the nearest whole number. The result can be stored to an array of integers or as floating point number.

Examples
var
    a, expected: Matrix;
begin
    a := [[1.2, 2.7], [-0.5, 3.9]];
    a.Round;
    expected := [[1.0, 3.0], [-1.0, 4.0]];
    if not a.IsEqual(expected, 1e-10, TCompare.cmpAbsolute) then
        raise Exception.Create('Matrix.Round: mismatch');
end;

Indexed: function Round(Index: Integer; Len: Integer): TMtxVec;

Round calling object elements [Index]..[Index+Len-1] in-place.

#NameTypeDescription
1IndexIntegerstart index
2LenIntegerelement count

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

Remarks:

An exception is raised if array borders are overrun/underrun.

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

Round all Src object elements.

#NameTypeDescription
1SrcTMtxVecsource TVec or TMtx

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

Remarks:

Store the results in calling object elements. Size and TMtxVec.Complex property of calling object are adjusted automatically.

Examples
var
    a, expected: Matrix;
begin
    a := [[1.2, 2.7], [-0.5, 3.9]];
    a.Round;
    expected := [[1.0, 3.0], [-1.0, 4.0]];
    if not a.IsEqual(expected, 1e-10, TCompare.cmpAbsolute) then
        raise Exception.Create('Matrix.Round: mismatch');
end;

Indexed: function Round(const Src: TMtxVec; SrcIndex: Integer; Index: Integer; Len: Integer): TMtxVec;

Round Src object elements [SrcIndex]..[SrcIndex+Len-1].

#NameTypeDescription
1SrcTMtxVecsource TVec or TMtx
2SrcIndexIntegersource start index
3IndexIntegerstart index
4LenIntegerelement count

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

Remarks:

Store the results to calling object elements [Index]..[Index+Len-1]. Size and TMtxVec.Complex property of the calling object must be set explicitly. An exception is raised if array borders are overrun/underrun.

Overload 3: function Round(var Dst: TIntegerArray): TMtxVec;

Rounds the calling object elements to 4 byte integers.

#NameTypeDescription
1DstTIntegerArray

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

Remarks:

Stores the result in the Dst array. The size of the Dst array is set automatically. If the complex property is True then the length of the array will be equal to Self.Length*2.

Examples
var
    a, expected: Matrix;
begin
    a := [[1.2, 2.7], [-0.5, 3.9]];
    a.Round;
    expected := [[1.0, 3.0], [-1.0, 4.0]];
    if not a.IsEqual(expected, 1e-10, TCompare.cmpAbsolute) then
        raise Exception.Create('Matrix.Round: mismatch');
end;