TVecSmallInt.Rotate Method

Overload List

#SignatureDescription
1function Rotate(const Src: TMtxVecInt; Offset: Integer): TVecInt;A cyclic shift on vector elements in range.
└ indexed: function Rotate(const Src: TMtxVecInt; Offset: Integer; SrcIndex: Integer; Index: Integer; Len: Integer): TMtxVecInt;
2function Rotate(Offset: Integer): TVecInt;A cyclic shift on all calling vector elements.
└ indexed: function Rotate(Offset: Integer; Index: Integer; Len: Integer): TMtxVecInt;

Overload 1: function Rotate(const Src: TMtxVecInt; Offset: Integer): TVecInt;

A cyclic shift on vector elements in range.

#NameTypeDescription
1SrcTMtxVecIntsource TVecInt or TMtxInt
2OffsetInteger

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

Remarks:

Performs cyclic shift on all source vector elements and stores them to calling vector elements [Index .. Index+Len-1]. The number of elements to shift is specified in the Offset parameter. Offset can be any integer number, positive or negative.

An exception is raised if array borders are overrun/underrun.

Indexed: function Rotate(const Src: TMtxVecInt; Offset: Integer; SrcIndex: Integer; Index: Integer; Len: Integer): TMtxVecInt;

A cyclic shift on vector elements in range.

#NameTypeDescription
1SrcTMtxVecIntsource TVecInt or TMtxInt
2OffsetInteger
3SrcIndexIntegersource start index
4IndexIntegerstart index
5LenIntegerelement count

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

Remarks:

Performs cyclic shift on source vector elements in specified range [SrcIndex .. SrcIndex+Len-1] and stores them to calling vector elements [Index .. Index+Len-1]. The number of elements to shift is specified in the Offset parameter. Offset can be any integer number, positive or negative.

An exception is raised if array borders are overrun/underrun.

Overload 2: function Rotate(Offset: Integer): TVecInt;

A cyclic shift on all calling vector elements.

#NameTypeDescription
1OffsetInteger

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

Remarks:

Performs cyclic shift on all calling vector elements. Offset can be any integer number, positive or negative.

Examples
var a: TVec;
begin
    CreateIt(a);
    try
        a.SetIt(False,[1,2,3,4]);
        a.Rotate(2);   // a = [3,4,1,2]
    finally
        FreeIt(a);
    end;
end;

Indexed: function Rotate(Offset: Integer; Index: Integer; Len: Integer): TMtxVecInt;

A cyclic shift on vector elements in range.

#NameTypeDescription
1OffsetInteger
2IndexIntegerstart index
3LenIntegerelement count

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

Remarks:

Performs cyclic shift on vector elements in specified range [Index..Index+Len-1]. The number of elements to shift is specified in the Offset parameter. Offset can be any integer number, positive or negative.

An exception is raised if array borders are overrun/underrun.