arrayfire.blas module

BLAS functions (matmul, dot, etc)

arrayfire.blas.dot(lhs, rhs, lhs_opts=<MATPROP.NONE: 0>, rhs_opts=<MATPROP.NONE: 0>, return_scalar=False)[source]

Dot product of two input vectors.

Parameters
lhsaf.Array

A 1 dimensional, real or complex arrayfire array.

rhsaf.Array

A 1 dimensional, real or complex arrayfire array.

lhs_opts: optional: af.MATPROP. default: af.MATPROP.NONE.
Can be one of
  • af.MATPROP.NONE - If no op should be done on lhs.

  • No other options are currently supported.

rhs_opts: optional: af.MATPROP. default: af.MATPROP.NONE.
Can be one of
  • af.MATPROP.NONE - If no op should be done on rhs.

  • No other options are currently supported.

return_scalar: optional: bool. default: False.
  • When set to true, the input arrays are flattened and the output is a scalar

Returns
outaf.Array or scalar

Output of dot product of lhs and rhs.

arrayfire.blas.gemm(lhs, rhs, alpha=1.0, beta=0.0, lhs_opts=<MATPROP.NONE: 0>, rhs_opts=<MATPROP.NONE: 0>, C=None)[source]

BLAS general matrix multiply (GEMM) of two af_array objects.

This provides a general interface to the BLAS level 3 general matrix multiply (GEMM), which is generally defined as:

C = alpha * opA(A) opB(B) + beta * C

where alpha and beta are both scalars; A and B are the matrix multiply operands; and opA and opB are noop (if AF_MAT_NONE) or transpose (if AF_MAT_TRANS) operations on A or B before the actual GEMM operation. Batched GEMM is supported if at least either A or B have more than two dimensions (see af::matmul for more details on broadcasting). However, only one alpha and one beta can be used for all of the batched matrix operands.

Parameters
lhsaf.Array

A 2 dimensional, real or complex arrayfire array.

rhsaf.Array

A 2 dimensional, real or complex arrayfire array.

alphascalar
betascalar
lhs_opts: optional: af.MATPROP. default: af.MATPROP.NONE.
Can be one of
  • af.MATPROP.NONE - If no op should be done on lhs.

  • af.MATPROP.TRANS - If lhs has to be transposed before multiplying.

  • af.MATPROP.CTRANS - If lhs has to be hermitian transposed before multiplying.

rhs_opts: optional: af.MATPROP. default: af.MATPROP.NONE.
Can be one of
  • af.MATPROP.NONE - If no op should be done on rhs.

  • af.MATPROP.TRANS - If rhs has to be transposed before multiplying.

  • af.MATPROP.CTRANS - If rhs has to be hermitian transposed before multiplying.

Returns
outaf.Array

Output of the matrix multiplication on lhs and rhs.

arrayfire.blas.matmul(lhs, rhs, lhs_opts=<MATPROP.NONE: 0>, rhs_opts=<MATPROP.NONE: 0>)[source]

Generalized matrix multiplication for two matrices.

Parameters
lhsaf.Array

A 2 dimensional, real or complex arrayfire array.

rhsaf.Array

A 2 dimensional, real or complex arrayfire array.

lhs_opts: optional: af.MATPROP. default: af.MATPROP.NONE.
Can be one of
  • af.MATPROP.NONE - If no op should be done on lhs.

  • af.MATPROP.TRANS - If lhs has to be transposed before multiplying.

  • af.MATPROP.CTRANS - If lhs has to be hermitian transposed before multiplying.

rhs_opts: optional: af.MATPROP. default: af.MATPROP.NONE.
Can be one of
  • af.MATPROP.NONE - If no op should be done on rhs.

  • af.MATPROP.TRANS - If rhs has to be transposed before multiplying.

  • af.MATPROP.CTRANS - If rhs has to be hermitian transposed before multiplying.

Returns
outaf.Array

Output of the matrix multiplication on lhs and rhs.

arrayfire.blas.matmulNT(lhs, rhs)[source]

Matrix multiplication after transposing the second matrix.

Parameters
lhsaf.Array

A 2 dimensional, real or complex arrayfire array.

rhsaf.Array

A 2 dimensional, real or complex arrayfire array.

Returns
outaf.Array

Output of the matrix multiplication on lhs and transpose(rhs).

arrayfire.blas.matmulTN(lhs, rhs)[source]

Matrix multiplication after transposing the first matrix.

Parameters
lhsaf.Array

A 2 dimensional, real or complex arrayfire array.

rhsaf.Array

A 2 dimensional, real or complex arrayfire array.

Returns
outaf.Array

Output of the matrix multiplication on transpose(lhs) and rhs.

arrayfire.blas.matmulTT(lhs, rhs)[source]

Matrix multiplication after transposing both inputs.

Parameters
lhsaf.Array

A 2 dimensional, real or complex arrayfire array.

rhsaf.Array

A 2 dimensional, real or complex arrayfire array.

Returns
outaf.Array

Output of the matrix multiplication on transpose(lhs) and transpose(rhs).