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

Bases: QSM

A general square order (m1, m2) quasiseparable matrix

  • diag – The diagonal elements.

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

  • upper – The strictly upper triangular elements with order m2.

gram() SymmQSM[source]#

The inner product of this matrix with itself

If this matrix is called A, the Gram matrix is A.T @ A, and that’s what this method computes. The result is a SymmQSM.

inv() SquareQSM[source]#

The inverse of this matrix

matmul(x: tinygp.helpers.JAXArray) tinygp.helpers.JAXArray[source]#

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


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

scale(other: tinygp.helpers.JAXArray) SquareQSM[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() SquareQSM[source]#

The matrix transpose as a QSM