# quimb.linalg.numpy_linalg¶

Numpy base linear algebra.

## Functions¶

 `eigensystem_autoblocked`(A[, sort, return_vecs, isherm]) Perform Hermitian eigen-decomposition, automatically identifying and `eig_numpy`(A[, sort, isherm, return_vecs, autoblock]) Numpy based dense eigensolve. `sort_inds`(a, method[, sigma]) Return the sorting inds of a list `eigs_numpy`(A, k[, B, which, return_vecs, sigma, ...]) Partial eigen-decomposition using numpy's dense linear algebra. `svds_numpy`(a, k[, return_vecs]) Partial singular value decomposition using numpys (full) singular value

## Module Contents¶

quimb.linalg.numpy_linalg.eigensystem_autoblocked(A, sort=True, return_vecs=True, isherm=True)[source]

Perform Hermitian eigen-decomposition, automatically identifying and exploiting symmetries appearing in the current basis as block diagonals formed via permutation of rows and columns. The whole process is accelerated using `numba`.

Parameters:
• A (array_like) – The operator to eigen-decompose.

• sort (bool, optional) – Whether to sort into ascending order, default True.

• isherm (bool, optional) – Whether `A` is hermitian, default True.

• return_vecs (bool, optional) – Whether to return the eigenvectors, default True.

Returns:

• evals (1D-array) – The eigenvalues.

• evecs (qarray) – If `return_vecs=True`, the eigenvectors.

quimb.linalg.numpy_linalg._NUMPY_EIG_FUNCS
quimb.linalg.numpy_linalg.eig_numpy(A, sort=True, isherm=True, return_vecs=True, autoblock=False)[source]

Numpy based dense eigensolve.

Parameters:
• A (array_like) – The operator to decompose.

• sort (bool, optional) – Whether to sort into ascending order.

• isherm (bool, optional) – Whether `A` is hermitian.

• return_vecs (bool, optional) – Whether to return the eigenvectors.

• autoblock (bool, optional) – If true, automatically identify and exploit symmetries appearing in the current basis as block diagonals formed via permutation of rows and columns.

Returns:

• evals (1D-array) – The eigenvalues.

• evecs (qarray) – If `return_vecs=True`, the eigenvectors.

quimb.linalg.numpy_linalg.sort_inds(a, method, sigma=None)[source]

Return the sorting inds of a list

Parameters:
• a (array_like) – List to base sort on.

• method (str) –

Method of sorting list, one of
• ”LM” - Largest magnitude first

• ”SM” - Smallest magnitude first

• ”SA” - Smallest algebraic first

• ”SR” - Smallest real part first

• ”SI” - Smallest imaginary part first

• ”LA” - Largest algebraic first

• ”LR” - Largest real part first

• ”LI” - Largest imaginary part first

• ”TM” - Magnitude closest to target sigma first

• ”TR” - Real part closest to target sigma first

• ”TI” - Imaginary part closest to target sigma first

• sigma (float, optional) – The target if method={“TM”, “TR”, or “TI”}.

Returns:

inds – Indices that would sort a based on method

Return type:

array of int

quimb.linalg.numpy_linalg._DENSE_EIG_METHODS
quimb.linalg.numpy_linalg.eigs_numpy(A, k, B=None, which=None, return_vecs=True, sigma=None, isherm=True, P=None, sort=True, **eig_opts)[source]

Partial eigen-decomposition using numpy’s dense linear algebra.

Parameters:
• A (array_like or quimb.Lazy) – Operator to partially eigen-decompose.

• k (int) – Number of eigenpairs to return.

• B (array_like or quimb.Lazy) – If given, the RHS operator defining a generalized eigen problem.

• which (str, optional) – Which part of the spectrum to target.

• return_vecs (bool, optional) – Whether to return eigenvectors.

• sigma (None or float, optional) – Target eigenvalue.

• isherm (bool, optional) – Whether a is hermitian.

• P (array_like or quimb.Lazy) – Perform the eigensolve in the subspace defined by this projector.

• sort (bool, optional) – Whether to sort reduced list of eigenpairs into ascending order.

• eig_opts – Settings to pass to numpy.eig… functions.

Returns:

lk, (vk)

Return type:

k eigenvalues (and eigenvectors) sorted according to which

quimb.linalg.numpy_linalg.svds_numpy(a, k, return_vecs=True, **_)[source]

Partial singular value decomposition using numpys (full) singular value decomposition.

Parameters:
• a (array_like) – Operator to decompose.

• k (int, optional) – Number of singular value triplets to retrieve.

• return_vecs (bool, optional) – whether to return the computed vecs or values only

Returns:

Singlar value triplets.

Return type:

(uk,) sk (, vkt)