TMtxByte.CumSum Method

Overload List

#SignatureDescription
1function CumSum: TMtxInt;Cumulative sum for each of the matrix columns.
└ indexed: function CumSum(Index: Integer; Len: Integer): TMtxVecInt;
2function CumSum(const Mtx: TMtxInt): TMtxInt;Calculate the cumulative sum for each of the X matrix columns.
3function CumSum(const Vec: TMtxVecInt; VecIndex: Integer; Index: Integer; Len: Integer): TMtxVecInt;Calculate the cumulative sum for Vec elements [VecIndex]..[VecIndex+Len-1].

Overload 1: function CumSum: TMtxInt;

Cumulative sum for each of the matrix columns.

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

Remarks:

Calculate the cumulative sum for each of the calling matrix columns in-place. Function performs no overflow checking. It is users responsibility to ensure that the sum does not overflow the range of the used integer storage type.

Examples
var Mtx: TMtx;
begin
    Mtx := TMtx.Create;
    try
        Mtx.Size(3,2,false,[1,2,
            2,5,
            3,1]);
        Mtx.CumSum;
        // Mtx becomes:
        // 1, 2
        // 3, 7
        // 6, 8
    finally
        Mtx.Free;
    end;
end;

Indexed: function CumSum(Index: Integer; Len: Integer): TMtxVecInt;

Cumulative sum.

#NameTypeDescription
1IndexIntegerstart index
2LenIntegerelement count

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

Remarks:

Calculate the cumulative sum for calling object elements [Index]..[Index+Len-1] in-place. An exception is raised if TMtxVecBase.ConditionCheck is true and array borders are overrun.

Examples
var a: Matrix;
begin
    a.SetIt(2,2,false,[1,2,3,4];
    a.CumSum(0,4); // a = [1,3,6,10]
end;

Overload 2: function CumSum(const Mtx: TMtxInt): TMtxInt;

Calculate the cumulative sum for each of the X matrix columns.

#NameTypeDescription
1MtxTMtxIntsource TMtxInt

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

Remarks:

Store the results in calling matrix. The TMtxInt.Rows, TMtxInt.Cols and TMtxVecInt.IntPrecision properties of the callig matrix are adjusted implicitly to match those of Mtx matrix.

Overload 3: function CumSum(const Vec: TMtxVecInt; VecIndex: Integer; Index: Integer; Len: Integer): TMtxVecInt;

Calculate the cumulative sum for Vec elements [VecIndex]..[VecIndex+Len-1].

#NameTypeDescription
1VecTMtxVecIntsource TVecInt or TMtxInt
2VecIndexInteger
3IndexIntegerstart index
4LenIntegerelement count

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

Remarks:

Store the results in calling object elements [Index]..[Index+Len-1]. Size and TMtxVecInt.IntPrecision properties of the calling object must be set explicitly. Exception is raised if TMtxVecBase.ConditionCheck property is True and array borders are overrun.