# arrayfire.blas module

BLAS functions (matmul, dot, etc)

`arrayfire.blas.``dot`(lhs, rhs, lhs_opts=<MATPROP.NONE: 0>, rhs_opts=<MATPROP.NONE: 0>)

  Dot product of two input vectors.

  Parameters:

  lhs : af.Array

  > A 1 dimensional, real or complex arrayfire array.

  rhs : af.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.

  Returns:

  out : af.Array

  > Output of dot product of lhs and rhs.

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

  Generalized matrix multiplication for two matrices.

  Parameters:

  lhs : af.Array

  > A 2 dimensional, real or complex arrayfire array.

  rhs : af.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:

  out : af.Array

  > Output of the matrix multiplication on lhs and rhs.

`arrayfire.blas.``matmulNT`(lhs, rhs)

  Matrix multiplication after transposing the second matrix.

  Parameters:

  lhs : af.Array

  > A 2 dimensional, real or complex arrayfire array.

  rhs : af.Array

  > A 2 dimensional, real or complex arrayfire array.

  Returns:

  out : af.Array

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

`arrayfire.blas.``matmulTN`(lhs, rhs)

  Matrix multiplication after transposing the first matrix.

  Parameters:

  lhs : af.Array

  > A 2 dimensional, real or complex arrayfire array.

  rhs : af.Array

  > A 2 dimensional, real or complex arrayfire array.

  Returns:

  out : af.Array

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

`arrayfire.blas.``matmulTT`(lhs, rhs)

  Matrix multiplication after transposing both inputs.

  Parameters:

  lhs : af.Array

  > A 2 dimensional, real or complex arrayfire array.

  rhs : af.Array

  > A 2 dimensional, real or complex arrayfire array.

  Returns:

  out : af.Array

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