Overload List
| # | Signature | Description |
|---|---|---|
| 1 | double DotProd(TOpenCLMtxVec *Vec) const; | Scalar product of two real arrays. |
| 2 | double DotProd(TOpenCLMtxVec *Vec, int VecIndex, int Index, int Len) const; | Returns the scalar product between Vec elements [VecIndex]..[VecIndex+Len-1] and calling object elements [Index]..[Index+Len-1]. |
| 3 | void DotProd(int DstIndex, TOpenCLMtxVec *Vec1, TOpenCLMtxVec *Vec2, int Vec1Index, int Vec2Index, int Len, TOpenCLMtxVec *Buffer) const; | |
| 4 | void DotProd(int DstIndex, TOpenCLMtxVec *Vec1, TOpenCLMtxVec *Vec2, bool ConjVec, TOpenCLMtxVec *Buffer) const; | Scalar product of two real or complex arrays. |
| 5 | void DotProd(int DstIndex, TOpenCLMtxVec *Vec1, TOpenCLMtxVec *Vec2, TOpenCLMtxVec *Buffer) const; | Scalar product of two real arrays. |
Overload 1: double DotProd(TOpenCLMtxVec *Vec) const;
Scalar product of two real arrays.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Vec | TOpenCLMtxVec * |
Calculates the dot product (scalar value) of the calling object and Vec object and returns a real scalar value. The dot product is defined by the equation:
Both objects must be of equal size. If they are not, the method will return the dot product of the largest sub-array.
Overload 2: double DotProd(TOpenCLMtxVec *Vec, int VecIndex, int Index, int Len) const;
Returns the scalar product between Vec elements [VecIndex]..[VecIndex+Len-1] and calling object elements [Index]..[Index+Len-1].
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Vec | TOpenCLMtxVec * | |
| 2 | VecIndex | int | |
| 3 | Index | int | |
| 4 | Len | int |
An exception is raised if Vec and calling object clVector::Complex property is True. An exception is raised if array borders are overrun or underrun.
Overload 3: void DotProd(int DstIndex, TOpenCLMtxVec *Vec1, TOpenCLMtxVec *Vec2, int Vec1Index, int Vec2Index, int Len, TOpenCLMtxVec *Buffer) const;
| # | Name | Type | Description |
|---|---|---|---|
| 1 | DstIndex | int | |
| 2 | Vec1 | TOpenCLMtxVec * | |
| 3 | Vec2 | TOpenCLMtxVec * | |
| 4 | Vec1Index | int | |
| 5 | Vec2Index | int | |
| 6 | Len | int | |
| 7 | Buffer | TOpenCLMtxVec * |
Overload 4: void DotProd(int DstIndex, TOpenCLMtxVec *Vec1, TOpenCLMtxVec *Vec2, bool ConjVec, TOpenCLMtxVec *Buffer) const;
Scalar product of two real or complex arrays.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | DstIndex | int | |
| 2 | Vec1 | TOpenCLMtxVec * | |
| 3 | Vec2 | TOpenCLMtxVec * | |
| 4 | ConjVec | bool | |
| 5 | Buffer | TOpenCLMtxVec * |
Calculates the dot product (scalar value) of the Vec1 and Vec2 stores the result in calling vector at position DstIndex. ConjVec parameter is ignored if data is real. If ConjVec is true, the function computes: result = Vec1*conj(Vec2)
The dot product is defined by the equation:
Both objects must be of equal size. If they are not, the method will return the dot product of the largest sub-array.
Overload 5: void DotProd(int DstIndex, TOpenCLMtxVec *Vec1, TOpenCLMtxVec *Vec2, TOpenCLMtxVec *Buffer) const;
Scalar product of two real arrays.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | DstIndex | int | |
| 2 | Vec1 | TOpenCLMtxVec * | |
| 3 | Vec2 | TOpenCLMtxVec * | |
| 4 | Buffer | TOpenCLMtxVec * |
Calculates the dot product (scalar value) of the calling object and Vec object and returns a real scalar value. The result is stored at specified index in the calling vector in the GPU memory. This variant of the function is non-blocking (faster), because the result does not have to be copied to the CPU memory to be used.
The dot product is defined by the equation:
Both objects must be of equal size. If they are not, the method will return the dot product of the largest sub-array.