TOpenCLMatrix::DotProd Method

Overload List

#SignatureDescription
1double DotProd(TOpenCLMtxVec *Vec);Scalar product of two real arrays.
2double DotProd(TOpenCLMtxVec *Vec, int VecIndex, int Index, int Len);Returns the scalar product between Vec elements [VecIndex]..[VecIndex+Len-1] and calling object elements [Index]..[Index+Len-1].
3void DotProd(int DstIndex, TOpenCLMtxVec *Vec1, TOpenCLMtxVec *Vec2, int Vec1Index, int Vec2Index, int Len, TOpenCLMtxVec *Buffer);
4void DotProd(int DstIndex, TOpenCLMtxVec *Vec1, TOpenCLMtxVec *Vec2, bool ConjVec, TOpenCLMtxVec *Buffer);Scalar product of two real or complex arrays.
5void DotProd(int DstIndex, TOpenCLMtxVec *Vec1, TOpenCLMtxVec *Vec2, TOpenCLMtxVec *Buffer);Scalar product of two real arrays.

Overload 1: double DotProd(TOpenCLMtxVec *Vec);

Scalar product of two real arrays.

#NameTypeDescription
1VecTOpenCLMtxVec *
Remarks:

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:

VV=k=0Length1V[k]V[k]\text{V}\cdot \text{V} = \sum _{k=0} ^{\text{Length}-1}\text{V}[k]\cdot \text{V}[k]

Both objects must be of equal size. If they are not, the method will return the dot product of the largest sub-array.

See Also: TOpenCLMatrix::DotProdc
Declared in Dew::Math::TOpenCLMtxVec · Dew.Math/clMtxVec.h · Cross-compiler

Overload 2: double DotProd(TOpenCLMtxVec *Vec, int VecIndex, int Index, int Len);

Returns the scalar product between Vec elements [VecIndex]..[VecIndex+Len-1] and calling object elements [Index]..[Index+Len-1].

#NameTypeDescription
1VecTOpenCLMtxVec *
2VecIndexint
3Indexint
4Lenint
Remarks:

An exception is raised if Vec and calling object TOpenCLBase::Complex property is True. An exception is raised if array borders are overrun or underrun.

Declared in Dew::Math::TOpenCLMtxVec · Dew.Math/clMtxVec.h · Cross-compiler

Overload 3: void DotProd(int DstIndex, TOpenCLMtxVec *Vec1, TOpenCLMtxVec *Vec2, int Vec1Index, int Vec2Index, int Len, TOpenCLMtxVec *Buffer);

#NameTypeDescription
1DstIndexint
2Vec1TOpenCLMtxVec *
3Vec2TOpenCLMtxVec *
4Vec1Indexint
5Vec2Indexint
6Lenint
7BufferTOpenCLMtxVec *
Declared in Dew::Math::TOpenCLMtxVec · Dew.Math/clMtxVec.h · Cross-compiler

Overload 4: void DotProd(int DstIndex, TOpenCLMtxVec *Vec1, TOpenCLMtxVec *Vec2, bool ConjVec, TOpenCLMtxVec *Buffer);

Scalar product of two real or complex arrays.

#NameTypeDescription
1DstIndexint
2Vec1TOpenCLMtxVec *
3Vec2TOpenCLMtxVec *
4ConjVecbool
5BufferTOpenCLMtxVec *
Remarks:

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:

VV=k=0Length1V[k]V[k]\text{V}\cdot \text{V} = \sum _{k=0} ^{\text{Length}-1}\text{V}[k]\cdot \text{V}[k]

Both objects must be of equal size. If they are not, the method will return the dot product of the largest sub-array.

Declared in Dew::Math::TOpenCLMtxVec · Dew.Math/clMtxVec.h · Cross-compiler

Overload 5: void DotProd(int DstIndex, TOpenCLMtxVec *Vec1, TOpenCLMtxVec *Vec2, TOpenCLMtxVec *Buffer);

Scalar product of two real arrays.

#NameTypeDescription
1DstIndexint
2Vec1TOpenCLMtxVec *
3Vec2TOpenCLMtxVec *
4BufferTOpenCLMtxVec *
Remarks:

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:

VV=k=0Length1V[k]V[k]\text{V}\cdot \text{V} = \sum _{k=0} ^{\text{Length}-1}\text{V}[k]\cdot \text{V}[k]

Both objects must be of equal size. If they are not, the method will return the dot product of the largest sub-array.

See Also: TOpenCLMatrix::DotProdc
Declared in Dew::Math::TOpenCLMtxVec · Dew.Math/clMtxVec.h · Cross-compiler