Matrix.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 and store the results in calling object elements.
└ indexed: function Round(const Src: TMtxVec; SrcIndex: Integer; Index: Integer; Len: Integer): TMtxVec;
3procedure Round(var Dst: TIntegerArray);Rounds the calling object elements to 4 byte integers and stores the result in the Dst array.

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;
See Also: Matrix.Trunc, Matrix.Frac

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 and store the results in calling object elements.

#NameTypeDescription
1SrcTMtxVec

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

Remarks:

Size and Matrix.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
1SrcTMtxVec
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 Matrix.Complex property of the calling object must be set explicitly. An exception is raised if array borders are overrun/underrun.

Overload 3: procedure Round(var Dst: TIntegerArray);

Rounds the calling object elements to 4 byte integers and stores the result in the Dst array.

#NameTypeDescription
1DstTIntegerArray

Result: stored in self (calling object)

Remarks:

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;