clMatrix.DotProd Method

function DotProd(const Vec: TOpenCLMtxVec): Double;

Scalar product of two real arrays.

#NameTypeDescription
1VecTOpenCLMtxVec

Returns: Double

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:

V⋅V=∑k=0Length−1V[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.

Examples
var a,b: clMatrix;
prod: double;
begin
    a.Size(2,2, clFloat, false);
    b.Size(2,2, clFloat, false);
    a.CopyFromAray(TDoubleArray.Create(1,2,3,4));
    b.CopyFromAray(TDoubleArray.Create(5,6,7,8));
    prod := a.DotProd(b); // = 1*5 + 2*6 + * 3*7 + 4*8
end;
See Also: clMatrix.DotProdc

Indexed: function DotProd(const Vec: TOpenCLMtxVec; VecIndex: Integer; Index: Integer; Len: Integer): Double;

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

#NameTypeDescription
1VecTOpenCLMtxVec
2VecIndexInteger
3IndexIntegerstart index
4LenIntegerelement count

Returns: Double

Remarks:

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