Skip to content

cagpjax.linalg

Linear algebra functions.

Modules:

  • congruence

    Congruence transformations for linear operators.

  • eigh

    Hermitian eigenvalue decomposition.

  • lower_cholesky

    Lower Cholesky decomposition of positive semidefinite operators.

  • orthogonalize

    Orthogonalization methods.

  • utils

    Linear algebra utilities.

Classes:

  • Eigh

    Eigh algorithm for eigenvalue decomposition.

  • Lanczos

    Lanczos algorithm for approximate partial eigenvalue decomposition.

  • OrthogonalizationMethod

    Methods for orthogonalizing a matrix.

Functions:

Eigh

Bases: Algorithm

Eigh algorithm for eigenvalue decomposition.

Lanczos

Lanczos(max_iters: int | None = None, /, *, v0: Float[Array, N] | None = None, key: PRNGKeyArray | None = None)

Bases: Algorithm

Lanczos algorithm for approximate partial eigenvalue decomposition.

Parameters:

  • max_iters

    (int | None, default: None ) –

    Maximum number of iterations (number of eigenvalues/vectors to compute). If None, all eigenvalues/eigenvectors are computed.

  • v0

    (Float[Array, N] | None, default: None ) –

    Initial vector. If None, a random vector is generated using key.

  • key

    (PRNGKeyArray | None, default: None ) –

    Random key for generating a random initial vector if v0 is not provided.

Source code in src/cagpjax/linalg/eigh.py
def __init__(
    self,
    max_iters: int | None = None,
    /,
    *,
    v0: Float[Array, "N"] | None = None,
    key: PRNGKeyArray | None = None,
):
    self.max_iters = max_iters
    self.v0 = v0
    self.key = key

OrthogonalizationMethod

Bases: Enum

Methods for orthogonalizing a matrix.

Attributes:

  • CGS

    Classical Gram–Schmidt orthogonalization

  • MGS

    Modified Gram–Schmidt orthogonalization

  • QR

    Householder QR decomposition

CGS class-attribute instance-attribute

CGS = 'cgs'

Classical Gram–Schmidt orthogonalization

MGS class-attribute instance-attribute

MGS = 'mgs'

Modified Gram–Schmidt orthogonalization

QR class-attribute instance-attribute

QR = 'qr'

Householder QR decomposition

congruence_transform

congruence_transform(A: Any, B: Any) -> Any
congruence_transform(A: Diagonal, B: Diagonal) -> Diagonal
congruence_transform(A: BlockDiagonalSparse, B: Diagonal | ScalarMul) -> Diagonal
congruence_transform(A: Any, B: Any) -> Any

Congruence transformation A.T @ B @ A.

Parameters:

  • A

    (Any) –

    Linear operator or array to be applied.

  • B

    (Any) –

    Square linear operator or array to be transformed.

Source code in src/cagpjax/linalg/congruence.py
@cola.dispatch
def congruence_transform(A: Any, B: Any) -> Any:
    """Congruence transformation ``A.T @ B @ A``.

    Args:
        A: Linear operator or array to be applied.
        B: Square linear operator or array to be transformed.
    """
    pass