MatrixInt.Size Method

Overload List

#SignatureDescription
1function Size(const Src: TMtxVecBase): TMtxInt;Size the object.
2function Size(const Src: TMtxVecBase; const aPrecision: TIntPrecision): TMtxInt;Size the object.
3function Size(const ARows: Integer; const ACols: Integer): TMtxInt;Specifies size of an integer matrix.
4function Size(const ARows: Integer; const ACols: Integer; const aPrecision: TIntPrecision): TMtxInt;Sets the size of matrix.

Overload 1: function Size(const Src: TMtxVecBase): TMtxInt;

Size the object.

#NameTypeDescription
1SrcTMtxVecBase

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

Remarks:

Assigns the size of the Src object to the calling object. If both objects have a matching MatrixInt.Length, MatrixInt.Rows, MatrixInt.Cols properties, only the MatrixInt.IntPrecision property of the calling object will changed, while all other properties describing the size of the object will be preserved.

Overload 2: function Size(const Src: TMtxVecBase; const aPrecision: TIntPrecision): TMtxInt;

Size the object.

#NameTypeDescription
1SrcTMtxVecBase
2aPrecisionTIntPrecision

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

Remarks:

Assigns the size of the Src object to the calling object and changes the IntPrecision to new value.

Overload 3: function Size(const ARows: Integer; const ACols: Integer): TMtxInt;

Specifies size of an integer matrix.

#NameTypeDescription
1ARowsInteger
2AColsInteger

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

Remarks:

The Value of IntPrecision property is preserved.

Overload 4: function Size(const ARows: Integer; const ACols: Integer; const aPrecision: TIntPrecision): TMtxInt;

Sets the size of matrix.

#NameTypeDescription
1ARowsInteger
2AColsInteger
3aPrecisionTIntPrecision

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

Remarks:

Set the calling matrix properties:

Calling the Size method does not preserve the contents of the matrix. Use the Resize method, if you want to preserve existing values.

Note
The Size method performs an out-of-memory safe resize, if the matrix already has memory allocated. This prevents out of memory message for example when redefining the size of the matrix from single column to single row:

A.Rows := 10000; // matrix size = 0
A.Cols := 1;     // matrix size = 10000
// ...
A.Cols := 10000; // matrix size = 100 000 000 (problems here)
A.Rows := 1;     // matrix size = 10 000
Examples
var  A: TMtxInt;
begin
    CreateIt(A);
    try
        A.Size(2,1); // 2x1 integer matrix
        A.SetZero;
        // A becomes:
        // [0]
        // [0]
    finally
        FreeIt(A);
    end;
end;
See Also: MatrixInt.Rows, MatrixInt.Cols, TMtxVecInt.IntPrecision