Overload List
| # | Signature | Description |
|---|---|---|
| 1 | TCplx DotProdc(TOpenCLMtxVec Vec) | Scalar product of two complex arrays. |
| └ indexed: TCplx DotProdc(TOpenCLMtxVec Vec, Int32 VecIndex, Int32 Index, Int32 Len) | ||
| 2 | TCplx DotProdc(TOpenCLMtxVec Vec, Boolean ConjVec) | Returns the scalar product between Vec and calling object complex elements. |
| └ indexed: TCplx DotProdc(TOpenCLMtxVec Vec, Boolean ConjVec, Int32 VecIndex, Int32 Index, Int32 Len) |
Overload 1: TCplx DotProdc(TOpenCLMtxVec Vec)
Scalar product of two complex arrays.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Vec | TOpenCLMtxVec | source TOpenCLVector or TOpenCLMatrix |
Returns: TCplx (complex)
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 Dew.Math.TOpenCLBase.Complex property is false. 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.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
clMtxVec.TOpenCLMatrix a,b;
clMtxVec.CreateIt(out a, out b);
try
{
a.Size(2,2, TclFloatPrecision.clFloat, false);
b.Size(2,2, TclFloatPrecision.clFloat, false);
a.CopyFromArray(new double[] {1,2,3,4});
b.CopyFromArray(new double[] {4,3,2,1});
double prod = a.DotProdc(b); //= (1+2i)*(5+6i)+(3+4i)*(7+8i)
}
finally
{
clMtxVec.FreeIt(ref a,ref b);
}
}
}
Indexed: TCplx DotProdc(TOpenCLMtxVec Vec, Int32 VecIndex, Int32 Index, Int32 Len)
Returns the scalar product between Vec (complex) elements [VecIndex]..[VecIndex+Len-1] and calling object (complex) elements [Index]..[Index+Len-1].
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Vec | TOpenCLMtxVec | source TOpenCLVector or TOpenCLMatrix |
| 2 | VecIndex | Int32 | |
| 3 | Index | Int32 | start index |
| 4 | Len | Int32 | element count |
Returns: TCplx (complex)
An exception is raised if Vec and calling object Dew.Math.TOpenCLBase.Complex property is False. An exception is raised if array borders are overrun or underrun.
Overload 2: TCplx DotProdc(TOpenCLMtxVec Vec, Boolean ConjVec)
Returns the scalar product between Vec and calling object complex elements.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Vec | TOpenCLMtxVec | source TOpenCLVector or TOpenCLMatrix |
| 2 | ConjVec | Boolean |
Returns: TCplx (complex)
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 Dew.Math.TOpenCLBase.Complex property is False.
Indexed: TCplx DotProdc(TOpenCLMtxVec Vec, Boolean ConjVec, Int32 VecIndex, Int32 Index, Int32 Len)
Returns the scalar product between Vec (complex) elements [VecIndex]..[VecIndex+Len-1] and calling object (complex) elements [Index]..[Index+Len-1].
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Vec | TOpenCLMtxVec | source TOpenCLVector or TOpenCLMatrix |
| 2 | ConjVec | Boolean | |
| 3 | VecIndex | Int32 | |
| 4 | Index | Int32 | start index |
| 5 | Len | Int32 | element count |
Returns: TCplx (complex)
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 Dew.Math.TOpenCLBase.Complex property is False. An exception is raised if array borders are overrun or underrun.