Calculate the dot product of a vector. More...

## Functions

template<typename T >
dot (const array &lhs, const array &rhs, const matProp optLhs=AF_MAT_NONE, const matProp optRhs=AF_MAT_NONE)
Dot Product. More...

AFAPI af_err af_dot (af_array *out, const af_array lhs, const af_array rhs, const af_mat_prop optLhs, const af_mat_prop optRhs)
Scalar dot product between two vectors. More...

AFAPI af_err af_dot_all (double *real, double *imag, const af_array lhs, const af_array rhs, const af_mat_prop optLhs, const af_mat_prop optRhs)
Scalar dot product between two vectors. More...

## Detailed Description

Calculate the dot product of a vector.

Scalar dot product between two vectors. Also referred to as the inner product.

This function returns the scalar product of two equal sized vectors or between a matrix and a vector. The second operand needs to be a vector in either case.

## ◆ af_dot()

 AFAPI af_err af_dot ( af_array * out, const af_array lhs, const af_array rhs, const af_mat_prop optLhs, const af_mat_prop optRhs )

Scalar dot product between two vectors.

Also referred to as the inner product.

// compute scalar dot product
array x = randu(100), y = randu(100);
print(dot<float>(x,y));
Parameters
 [out] out The array object with the result of the dot operation [in] lhs The array object on the left hand side [in] rhs The array object on the right hand side [in] optLhs Options for lhs. Currently only AF_MAT_NONE and AF_MAT_CONJ are supported. [in] optRhs Options for rhs. Currently only AF_MAT_NONE and AF_MAT_CONJ are supported
Returns
AF_SUCCESS if the process is successful.

## ◆ af_dot_all()

 AFAPI af_err af_dot_all ( double * real, double * imag, const af_array lhs, const af_array rhs, const af_mat_prop optLhs, const af_mat_prop optRhs )

Scalar dot product between two vectors.

Also referred to as the inner product. Returns the result as a host scalar.

Parameters
 [out] real is the real component of the result of dot operation [out] imag is the imaginary component of the result of dot operation [in] lhs The array object on the left hand side [in] rhs The array object on the right hand side [in] optLhs Options for lhs. Currently only AF_MAT_NONE and AF_MAT_CONJ are supported. [in] optRhs Options for rhs. Currently only AF_MAT_NONE and AF_MAT_CONJ are supported
Returns
AF_SUCCESS if the process is successful.

## ◆ dot()

 AFAPI array dot ( const array & lhs, const array & rhs, const matProp optLhs = AF_MAT_NONE, const matProp optRhs = AF_MAT_NONE )

Dot Product.

Scalar dot product between two vectors. Also referred to as the inner product.

// compute scalar dot product
array x = randu(100),
y = randu(100);
af_print(dot(x, y));
// OR
printf("%f\n", dot<float>(x, y));
Template Parameters
 T The type of the output
Parameters
 [in] lhs The array object on the left hand side [in] rhs The array object on the right hand side [in] optLhs Options for lhs. Currently only AF_MAT_NONE and AF_MAT_CONJ are supported. [in] optRhs Options for rhs. Currently only AF_MAT_NONE and AF_MAT_CONJ are supported
Returns
The result of the dot product of lhs, rhs
Note
optLhs and optRhs can only be one of AF_MAT_NONE or AF_MAT_CONJ
optLhs = AF_MAT_CONJ and optRhs = AF_MAT_NONE will run conjugate dot operation.
This function is not supported in GFOR
Examples
benchmarks/cg.cpp.
af_print
#define af_print(...)
Definition: util.h:148
af::print
AFAPI void print(const char *exp, const array &arr)
afcl::array
static af::array array(af::dim4 idims, cl_mem buf, af::dtype type, bool retain=false)
Create an af::array object from an OpenCL cl_mem buffer.
Definition: opencl.h:327
af::randu
AFAPI array randu(const dim4 &dims, const dtype ty, randomEngine &r)
af::dot
T dot(const array &lhs, const array &rhs, const matProp optLhs=AF_MAT_NONE, const matProp optRhs=AF_MAT_NONE)
Dot Product.