TOpenCLVector.Rotate Method

function Rotate(const Src: TOpenCLMtxVec; Offset: Integer): TOpenCLVector;

A cyclic shift on vector elements.

#NameTypeDescription
1SrcTOpenCLMtxVec
2OffsetInteger

Returns: TOpenCLVector

Remarks:

Performs cyclic shift on vector elements. The number of elements to shift is specified in the Offset parameter. Offset can be any integer number, positive or negative.

Examples
var a: TOpenCLVector;
begin
    CreateIt(a);
    try
        a.CopyFromArray(TSingleArray.Create(1,2,3,4));
        b.Rotate(a, 2);   // b = [3,4,1,2]
    finally
        FreeIt(a);
    end;
end;
See Also: TOpenCLVector.Reverse, TOpenCLVector.Shift

Indexed: function Rotate(const Vec: TOpenCLMtxVec; Offset: Integer; VecIndex: Integer; Index: Integer; Len: Integer): TOpenCLMtxVec;

A cyclic shift on vector elements in range.

#NameTypeDescription
1VecTOpenCLMtxVecsource TOpenCLVector or TOpenCLMatrix
2OffsetInteger
3VecIndexInteger
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 [Index..Index+Len] and stores them to calling vector. The number of elements to shift is specified in the Offset parameter. Offset can be any integer number, positive or negative.