A high-performance general-purpose compute library

- Main Page
- Tutorials
- Release Notes
- Examples

Functions
product
ArrayFire Functions | ArrayFire Functions by Category » Vector Algorithms » Reduction operations

## Functions
AFAPI array | product (const array &in, const int dim=-1)
| C++ Interface to multiply array elements over a given dimension.
AFAPI array | product (const array &in, const int dim, const double nanval)
| C++ Interface to multiply array elements over a given dimension, replacing any NaNs with a specified value.
template<typename T >
T | product (const array &in)
| C++ Interface to multiply array elements over the first non-singleton dimension.
template<typename T >
T | product (const array &in, double nanval)
| C++ Interface to multiply array elements over the first non-singleton dimension, replacing any NaNs with a specified value.
AFAPI af_err | af_product (af_array *out, const af_array in, const int dim)
| C Interface to multiply array elements over a given dimension.
AFAPI af_err | af_product_all_array (af_array *out, const af_array in)
| C Interface to multiply array elements over all dimensions.
AFAPI af_err | af_product_nan (af_array *out, const af_array in, const int dim, const double nanval)
| C Interface to multiply array elements over a given dimension, replacing any NaNs with a specified value.
AFAPI af_err | af_product_nan_all_array (af_array *out, const af_array in, const double nanval)
| C Interface to multiply array elements over all dimensions, replacing any NaNs with a specified value.
AFAPI af_err | af_product_all (double *real, double *imag, const af_array in)
| C Interface to multiply array elements over all dimensions.
AFAPI af_err | af_product_nan_all (double *real, double *imag, const af_array in, const double nanval)
| C Interface to multiply array elements over all dimensions, replacing any NaNs with a specified value.
AFAPI array | mul (const array &in, const int dim=-1)
| C++ Interface to multiply array elements over a given dimension.
template<typename T >
T | mul (const array &in)
| C++ Interface to multiply array elements over the first non-singleton dimension.

## Detailed Description

Multiply array elements over a given dimension.

This table defines output types for corresponding input types:

Input Type | Output Type
--- | ---
f32, f64, c32, c64 | same as input
s32, u32, s64, u64 | same as input
s16 | s32
u16, u8, b8 | u32

This function runs across all batches in the input simultaneously.

## Function Documentation

## ◆ af_product()

AFAPI af_err af_product | ( | af_array * | out,
|  | const af_array | in,
|  | const int | dim )

C Interface to multiply array elements over a given dimension.

Parameters

  [out] | out | product
  [in] | in | input array
  [in] | dim | dimension along which the product occurs

Returns
  AF_SUCCESS, if function returns successfully, else an af_err code is given

## ◆ af_product_all()

AFAPI af_err af_product_all | ( | double * | real,
|  | double * | imag,
|  | const af_array | in )

C Interface to multiply array elements over all dimensions.

If `in` is real, `imag` will be set to zeros.

Parameters

  [out] | real | product of all real components
  [out] | imag | product of all imaginary components
  [in] | in | input array

Returns
  AF_SUCCESS, if function returns successfully, else an af_err code is given

## ◆ af_product_all_array()

AFAPI af_err af_product_all_array | ( | af_array * | out,
|  | const af_array | in )

C Interface to multiply array elements over all dimensions.

Results in a single element `af::array`.

Parameters

  [out] | out | product
  [in] | in | input array

Returns
  AF_SUCCESS, if function returns successfully, else an af_err code is given

## ◆ af_product_nan()

AFAPI af_err af_product_nan | ( | af_array * | out,
|  | const af_array | in,
|  | const int | dim,
|  | const double | nanval )

C Interface to multiply array elements over a given dimension, replacing any NaNs with a specified value.

Parameters

  [out] | out | product
  [in] | in | input array
  [in] | dim | dimension along with the product occurs
  [in] | nanval | value that replaces NaNs

Returns
  AF_SUCCESS, if function returns successfully, else an af_err code is given

## ◆ af_product_nan_all()

AFAPI af_err af_product_nan_all | ( | double * | real,
|  | double * | imag,
|  | const af_array | in,
|  | const double | nanval )

C Interface to multiply array elements over all dimensions, replacing any NaNs with a specified value.

If `in` is real, `imag` will be set to zeros.

Parameters

  [out] | real | product of all real components
  [out] | imag | product of all imaginary components
  [in] | in | input array
  [in] | nanval | value that replaces NaNs

Returns
  AF_SUCCESS, if function returns successfully, else an af_err code is given

## ◆ af_product_nan_all_array()

AFAPI af_err af_product_nan_all_array | ( | af_array * | out,
|  | const af_array | in,
|  | const double | nanval )

C Interface to multiply array elements over all dimensions, replacing any NaNs with a specified value.

Parameters

  [out] | out | product
  [in] | in | input array
  [in] | nanval | value that replaces NaNs

Returns
  AF_SUCCESS, if function returns successfully, else an af_err code is given

## ◆ mul() [1/2]

template<typename T >

T mul | ( | const array & | in | ) |

C++ Interface to multiply array elements over the first non-singleton dimension.

Parameters

  [in] | in | input array

Returns
  product

Deprecated
  Use product instead

## ◆ mul() [2/2]

AFAPI array mul | ( | const array & | in,
|  | const int | dim = -1 )

C++ Interface to multiply array elements over a given dimension.

Parameters

  [in] | in | input array
  [in] | dim | dimension along which the product occurs, -1 denotes the first non-singleton dimension

Returns
  product

Deprecated
  Use product instead

## ◆ product() [1/4]

template<typename T >

T product | ( | const array & | in | ) |

C++ Interface to multiply array elements over the first non-singleton dimension.

Parameters

  [in] | in | input array

Returns
  product

## ◆ product() [2/4]

AFAPI array product | ( | const array & | in,
|  | const int | dim,
|  | const double | nanval )

C++ Interface to multiply array elements over a given dimension, replacing any NaNs with a specified value.

Parameters

  [in] | in | input array
  [in] | dim | dimension along which the product occurs
  [in] | nanval | value that replaces NaNs

Returns
  product

## ◆ product() [3/4]

AFAPI array product | ( | const array & | in,
|  | const int | dim = -1 )

C++ Interface to multiply array elements over a given dimension.

Parameters

  [in] | in | input array
  [in] | dim | dimension along which the product occurs, -1 denotes the first non-singleton dimension

Returns
  product

## ◆ product() [4/4]

template<typename T >

T product | ( | const array & | in,
|  | double | nanval )

C++ Interface to multiply array elements over the first non-singleton dimension, replacing any NaNs with a specified value.

Parameters

  [in] | in | input array
  [in] | nanval | value that replaces NaNs

Returns
  product