Vector.DotProdc Method

Overload List

#SignatureDescription
1function DotProdc(const Vec: TMtxVec): TCplx;Scalar product of two complex arrays.
└ indexed: function DotProdc(const Vec: TMtxVec; VecIndex: Integer; Index: Integer; Len: Integer): TCplx;
2function DotProdc(const Vec: TMtxVec; ConjVec: Boolean): TCplx;Returns the scalar product between Vec and calling object complex elements.
└ indexed: function DotProdc(const Vec: TMtxVec; ConjVec: Boolean; VecIndex: Integer; Index: Integer; Len: Integer): TCplx;

Overload 1: function DotProdc(const Vec: TMtxVec): TCplx;

Scalar product of two complex arrays.

#NameTypeDescription
1VecTMtxVec

Returns: TCplx (complex)

Remarks:

Calculates the dot product (scalar value) of the calling object and Vec object and returns a complex scalar value. An exception is raised if calling or Vec object Vector.Complex property is false. 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]

Note
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: Vector;
prod: TCplx;
begin
    a.SetIt(True,[1,2,3,4]);
    b.SetIt(True,[5,6,7,8]);
    prod := a.DotProdc(b); //= (1+2i)*(5+6i)+(3+4i)*(7+8i)
end;
See Also: Vector.DotProd

Indexed: function DotProdc(const Vec: TMtxVec; VecIndex: Integer; Index: Integer; Len: Integer): TCplx;

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

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

Returns: TCplx (complex)

Remarks:

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

Overload 2: function DotProdc(const Vec: TMtxVec; ConjVec: Boolean): TCplx;

Returns the scalar product between Vec and calling object complex elements.

#NameTypeDescription
1VecTMtxVec
2ConjVecBoolean

Returns: TCplx (complex)

Remarks:

If ConjVec is True, scalar product between calling object and conjugated Vec object elements is calculated. An exception is raised if Vec and calling object Vector.Complex property is False.

Indexed: function DotProdc(const Vec: TMtxVec; ConjVec: Boolean; VecIndex: Integer; Index: Integer; Len: Integer): TCplx;

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

#NameTypeDescription
1VecTMtxVec
2ConjVecBoolean
3VecIndexInteger
4IndexIntegerstart index
5LenIntegerelement count

Returns: TCplx (complex)

Remarks:

If ConjVec is True, scalar product between calling object and conjugated Vec object elements is calculated. An exception is raised if Vec and calling object Vector.Complex property is False. An exception is raised if Vector.ConditionCheck is True and array borders are overrun or underrun.