Double DotProd(TOpenCLMtxVec Vec)
Scalar product of two real arrays.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Vec | TOpenCLMtxVec | source TOpenCLVector or TOpenCLMatrix |
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:
Both objects must be of equal size. If they are not, the method will return the dot product of the largest sub-array.
Examples
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.DotProd(b); // = 1*5 + 2*6 + * 3*7 + 4*8
}
finally
{
clMtxVec.FreeIt(ref a,ref b);
}
}
}
See Also: clMatrix.DotProdc
Indexed: Double DotProd(TOpenCLMtxVec Vec, Int32 VecIndex, Int32 Index, Int32 Len)
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 | source TOpenCLVector or TOpenCLMatrix |
| 2 | VecIndex | Int32 | |
| 3 | Index | Int32 | start index |
| 4 | Len | Int32 | element count |
Returns: Double
Remarks:
An exception is raised if Vec and calling object Dew.Math.clMatrix.Complex property is True. An exception is raised if array borders are overrun or underrun.