Overload List
| # | Signature | Description |
|---|---|---|
| 1 | function Trunc: TMtxVec; | Rounds a real number towards zero. |
| └ indexed: function Trunc(Index: Integer; Len: Integer): TMtxVec; | ||
| 2 | function Trunc(const Src: TMtxVec): TMtxVec; | Truncate all Src object elements and store the results in calling object elements. |
| └ indexed: function Trunc(const Src: TMtxVec; SrcIndex: Integer; Index: Integer; Len: Integer): TMtxVec; | ||
| 3 | procedure Trunc(var Dst: TIntegerArray); | Truncate all calling object elements and store the result in the Dst integer array. |
Overload 1: function Trunc: TMtxVec;
Rounds a real number towards zero.
Result: stored in self (calling object), returns self for chaining
Rounds all calling object elements towards zero to an integer and stores the result in the calling object again as floating point numbers.
var
a, expected: Matrix;
begin
a := [[1.2, 2.7], [-0.5, 3.9]];
a.Trunc;
expected := [[1.0, 2.0], [-0.0, 3.0]];
if not a.IsEqual(expected, 1e-10, TCompare.cmpAbsolute) then
raise Exception.Create('Matrix.Trunc: mismatch');
end;
Indexed: function Trunc(Index: Integer; Len: Integer): TMtxVec;
Truncate calling object elements [Index]..[Index+Len-1] in-place.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Index | Integer | start index |
| 2 | Len | Integer | element count |
Result: stored in self (calling object), returns self for chaining
An exception is raised if array borders are overrun/underrun.
Overload 2: function Trunc(const Src: TMtxVec): TMtxVec;
Truncate all Src object elements and store the results in calling object elements.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Src | TMtxVec |
Result: stored in self (calling object), returns self for chaining
Size and Matrix.Complex property of calling object are adjusted automatically.
var
a, expected: Matrix;
begin
a := [[1.2, 2.7], [-0.5, 3.9]];
a.Trunc;
expected := [[1.0, 2.0], [-0.0, 3.0]];
if not a.IsEqual(expected, 1e-10, TCompare.cmpAbsolute) then
raise Exception.Create('Matrix.Trunc: mismatch');
end;
Indexed: function Trunc(const Src: TMtxVec; SrcIndex: Integer; Index: Integer; Len: Integer): TMtxVec;
Truncate Src object elements [SrcIndex]..[SrcIndex+Len-1].
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Src | TMtxVec | |
| 2 | SrcIndex | Integer | source start index |
| 3 | Index | Integer | start index |
| 4 | Len | Integer | element count |
Result: stored in self (calling object), returns self for chaining
Store the results to calling object elemenents [Index]..[Index+Len-1]. Size and Matrix.Complex property of calling object must be set explicitly to match those of Src object. An exception is raised if array borders are overrun/underrun.
Overload 3: procedure Trunc(var Dst: TIntegerArray);
Truncate all calling object elements and store the result in the Dst integer array.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Dst | TIntegerArray |
Result: stored in self (calling object)
Length of the array is automatically adjusted. If the calling object is Complex, the length of the Dst array is equal to 2*Matrix.Length.
var
a, expected: Matrix;
begin
a := [[1.2, 2.7], [-0.5, 3.9]];
a.Trunc;
expected := [[1.0, 2.0], [-0.0, 3.0]];
if not a.IsEqual(expected, 1e-10, TCompare.cmpAbsolute) then
raise Exception.Create('Matrix.Trunc: mismatch');
end;