SymmQSM#

class tinygp.solvers.quasisep.core.SymmQSM(diag: DiagQSM, lower: StrictLowerTriQSM)[source]#

Bases: QSM

A symmetric order m quasiseparable matrix

Parameters:
  • diag – The diagonal elements.

  • lower – The strictly lower triangular elements with order m.

cholesky(*, parallel: bool = False) LowerTriQSM[source]#

The Cholesky decomposition of this matrix

If this matrix is called A, this method returns the LowerTriQSM L such that L @ L.T = A.

Parameters:

parallel – If True, use a parallel associative-scan algorithm.

inv(*, parallel: bool = False) SymmQSM[source]#

The inverse of this matrix

Parameters:

parallel – If True, use a parallel associative-scan algorithm.

matmul(x: tinygp.helpers.JAXArray, *, parallel: bool = False) tinygp.helpers.JAXArray[source]#

The dot product of this matrix with a dense vector or matrix

Parameters:
  • x (n, ...) – A matrix or vector with leading dimension matching this matrix.

  • parallel – If True, use a parallel associative-scan algorithm instead of the default sequential scan.

scale(other: tinygp.helpers.JAXArray) SymmQSM[source]#

The multiplication of this matrix times a scalar, as a QSM

property shape: tuple[int, int]#

The shape of the matrix

to_dense() tinygp.helpers.JAXArray#

Render this representation to a dense matrix

This implementation is not optimized and should really only ever be used for testing purposes.

transpose() SymmQSM[source]#

The matrix transpose as a QSM