arrayfire.lapack module

Dense Linear Algebra functions (solve, inverse, etc).

arrayfire.lapack.cholesky(A, is_upper=True)[source]

Cholesky decomposition

Parameters
A: af.Array

A 2 dimensional, symmetric, positive definite matrix.

is_upper: optional: bool. default: True

Specifies if output R is upper triangular (if True) or lower triangular (if False).

Returns
(R,info): tuple of af.Array, int.
  • R - triangular matrix.

  • info - 0 if decomposition sucessful.

arrayfire.lapack.cholesky_inplace(A, is_upper=True)[source]

In place Cholesky decomposition.

Parameters
A: af.Array
  • a 2 dimensional, symmetric, positive definite matrix.

  • Trinangular matrix on exit.

is_upper: optional: bool. default: True.

Specifies if output R is upper triangular (if True) or lower triangular (if False).

Returns
infoint.

0 if decomposition sucessful.

arrayfire.lapack.det(A)[source]

Determinant of a matrix.

Parameters
A: af.Array
  • A 2 dimensional arrayfire array

Returns
res: scalar
  • Determinant of the matrix.

arrayfire.lapack.inverse(A, options=<MATPROP.NONE: 0>)[source]

Invert a matrix.

Parameters
A: af.Array
  • A 2 dimensional arrayfire array

options: optional: af.MATPROP. default: af.MATPROP.NONE.
  • Additional options to speed up computations.

  • Currently needs to be one of af.MATPROP.NONE.

Returns
AI: af.Array
  • A 2 dimensional array that is the inverse of A

arrayfire.lapack.is_lapack_available()[source]

Function to check if the arrayfire library was built with lapack support.

arrayfire.lapack.lu(A)[source]

LU decomposition.

Parameters
A: af.Array

A 2 dimensional arrayfire array.

Returns
(L,U,P): tuple of af.Arrays
  • L - Lower triangular matrix.

  • U - Upper triangular matrix.

  • P - Permutation array.

arrayfire.lapack.lu_inplace(A, pivot='lapack')[source]

In place LU decomposition.

Parameters
A: af.Array
  • a 2 dimensional arrayfire array on entry.

  • Contains L in the lower triangle on exit.

  • Contains U in the upper triangle on exit.

Returns
P: af.Array
  • Permutation array.

arrayfire.lapack.norm(A, norm_type=<NORM.VECTOR_2: 2>, p=1.0, q=1.0)[source]

Norm of an array or a matrix.

Parameters
A: af.Array
  • A 1 or 2 dimensional arrayfire array

norm_type: optional: af.NORM. default: af.NORM.EUCLID.
  • Type of norm to be calculated.

p: scalar. default 1.0.
  • Used only if norm_type is one of af.NORM.VECTOR_P, af.NORM_MATRIX_L_PQ

q: scalar. default 1.0.
  • Used only if norm_type is af.NORM_MATRIX_L_PQ

Returns
res: scalar
  • norm of the input

arrayfire.lapack.pinverse(A, tol=1e-06, options=<MATPROP.NONE: 0>)[source]

Find pseudo-inverse(Moore-Penrose) of a matrix.

Parameters
A: af.Array
  • A 2 dimensional arrayfire input matrix array

tol: optional: scalar. default: 1E-6.
  • Tolerance for calculating rank

options: optional: af.MATPROP. default: af.MATPROP.NONE.
  • Currently needs to be af.MATPROP.NONE.

  • Additional options may speed up computation in the future

Returns
AI: af.Array
  • A 2 dimensional array that is the pseudo-inverse of A

arrayfire.lapack.qr(A)[source]

QR decomposition.

Parameters
A: af.Array

A 2 dimensional arrayfire array.

Returns
(Q,R,T): tuple of af.Arrays
  • Q - Orthogonal matrix.

  • R - Upper triangular matrix.

  • T - Vector containing additional information to solve a least squares problem.

arrayfire.lapack.qr_inplace(A)[source]

In place QR decomposition.

Parameters
A: af.Array
  • a 2 dimensional arrayfire array on entry.

  • Packed Q and R matrices on exit.

Returns
T: af.Array
  • Vector containing additional information to solve a least squares problem.

arrayfire.lapack.rank(A, tol=1e-05)[source]

Rank of a matrix.

Parameters
A: af.Array
  • A 2 dimensional arrayfire array

tol: optional: scalar. default: 1E-5.
  • Tolerance for calculating rank

Returns
r: int
  • Rank of A within the given tolerance

arrayfire.lapack.solve(A, B, options=<MATPROP.NONE: 0>)[source]

Solve a system of linear equations.

Parameters
A: af.Array

A 2 dimensional arrayfire array representing the coefficients of the system.

B: af.Array

A 1 or 2 dimensional arrayfire array representing the constants of the system.

options: optional: af.MATPROP. default: af.MATPROP.NONE.
  • Additional options to speed up computations.

  • Currently needs to be one of af.MATPROP.NONE, af.MATPROP.LOWER, af.MATPROP.UPPER.

Returns
X: af.Array

A 1 or 2 dimensional arrayfire array representing the unknowns in the system.

arrayfire.lapack.solve_lu(A, P, B, options=<MATPROP.NONE: 0>)[source]

Solve a system of linear equations, using LU decomposition.

Parameters
A: af.Array
  • A 2 dimensional arrayfire array representing the coefficients of the system.

  • This matrix should be decomposed previously using lu_inplace(A).

P: af.Array
  • Permutation array.

  • This array is the output of an earlier call to lu_inplace(A)

B: af.Array

A 1 or 2 dimensional arrayfire array representing the constants of the system.

Returns
X: af.Array

A 1 or 2 dimensional arrayfire array representing the unknowns in the system.

arrayfire.lapack.svd(A)[source]

Singular Value Decomposition

Parameters
A: af.Array

A 2 dimensional arrayfire array.

Returns
(U,S,Vt): tuple of af.Arrays
  • U - A unitary matrix

  • S - An array containing the elements of diagonal matrix

  • Vt - A unitary matrix

arrayfire.lapack.svd_inplace(A)[source]

Singular Value Decomposition

Parameters
A: af.Array

A 2 dimensional arrayfire array.

Returns
(U,S,Vt): tuple of af.Arrays
  • U - A unitary matrix

  • S - An array containing the elements of diagonal matrix

  • Vt - A unitary matrix