Overload List
| # | Signature | Description |
|---|---|---|
| 1 | procedure SetSubRange; | Sets the subarray size to full size. |
| └ indexed: procedure SetSubRange(Index: Integer; Len: Integer); | ||
| 2 | procedure SetSubRange(const Src: TMtxVecInt; Index: Integer; aRows: Integer; aCols: Integer); | Defines a sub vector/matrix. |
| 3 | procedure SetSubRange(const Src: TMtxVecBase; Index: Integer; Len: Integer); | Define a subvector of the Src vector. |
Overload 1: procedure SetSubRange;
Sets the subarray size to full size.
Result: stored in self (calling object)
This method is the same as the TMtxVecBase.SetFullRange method.
Indexed: procedure SetSubRange(Index: Integer; Len: Integer);
Defines a sub vector/matrix.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Index | Integer | start index |
| 2 | Len | Integer | element count |
Result: stored in self (calling object)
The method will define a subarray starting at Index and ending at Index+Len-1. No copying will occur, only pointers will be shifted or indices adjusted.
All values of the original TMtxVecBase will be preserved. An exception will be raised, if an attempt is made to change the size of calling object.
A sub-vector/matrix is vector/matrix which does not neccessarily have its own memory allocated. Instead it adopts the memory of the source object and all operations done on the either of the objects affect the same elements. The use of subvectors/submatrices increases CPU cache reuse, lower's memory requirements, increases application performance and improves code readability.
To again obtain a view of the full vector/matrix, see TMtxVecBase.SetFullRange
Overload 2: procedure SetSubRange(const Src: TMtxVecInt; Index: Integer; aRows: Integer; aCols: Integer);
Defines a sub vector/matrix.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Src | TMtxVecInt | source TVecInt or TMtxInt |
| 2 | Index | Integer | start index |
| 3 | aRows | Integer | |
| 4 | aCols | Integer |
Result: stored in self (calling object)
The method will define a subarray starting at Index and ending at Index + (aRows*aCols)-1. No copying will occur, only pointers will be shifted or indices adjusted. The subranged matrix will have the size aRows and aCols. Length will be equal to aRows*aCols.
All values of the original TMtxVecBase will be preserved. An exception will be raised if an attempt is made to change the size of calling object.
A sub-vector/matrix is vector/matrix, which does not have its own memory allocated. Instead it adopts the memory of the source object and all operations done on either of the objects affect the same elements. The use of subvectors/submatrices increases CPU cache reuse, lower's memory requirements, increases application performance and improves code readability.
To again obtain a view of the full vector/matrix, see TMtxVecBase.SetFullRange
The routine only makes sense to be used where aCols matches Src.Cols. MtxVec has only limited support for matrices where the matrix rows are not stored strictly consecutively. This overload is to be used with great caution.
The routine should not be mixed with other SetSubRange routines or subrange stack.
Overload 3: procedure SetSubRange(const Src: TMtxVecBase; Index: Integer; Len: Integer);
Define a subvector of the Src vector.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Src | TMtxVecBase | source TVec, TMtx, TVecInt or TMtxInt |
| 2 | Index | Integer | start index |
| 3 | Len | Integer | element count |
Result: stored in self (calling object)
The method will define a subarray starting at Index and ending at Index+Len-1 of Src. No copying will occur, only pointers will be shifted or indices adjusted.
A sub-vector/matrix is vector/matrix which does not neccessarily have its own memory allocated. Instead it adopts the memory of the source object and all operations done on the either of the objects affect the same elements. The use of subvectors/submatrices increases CPU cache reuse, lower's memory requirements, increases application performance and improves code readability.
All values of the original TMtxVecBase will be preserved. An exception will be raised, if an attempt is made to change the size of calling object. No exception will be raised, if Src is resized while subranged. (possibly leading to memory overwrites)
To again obtain a view of the original vector/matrix, call TMtxVecBase.SetFullRange