Finite-dimensional Linear Operators.

This package implements finite dimensional linear operators. It can be used to represent linear maps between finite-dimensional vector spaces without explicitly constructing their matrix representation in memory. This is particularly useful for sparse and structured matrices and often allows for the definition of a more efficient matrix-vector product. Linear operators support common algebraic operations, including matrix-vector products, addition, multiplication, and transposition.

Several algorithms in the probnum.linalg subpackage are able to operate on LinearOperator instances.



Return A as a LinearOperator.


LinearOperator(*args, **kwargs)

Composite base class for finite-dimensional linear operators.

Identity(*args, **kwargs)

The identity operator.

ScalarMult(shape, scalar[, dtype])

A linear operator representing scalar multiplication.

MatrixMult(*args, **kwargs)

A linear operator defined via a matrix.

Kronecker(*args, **kwargs)

Kronecker product of two linear operators.

SymmetricKronecker(*args, **kwargs)

Symmetric Kronecker product of two linear operators.

Symmetrize(*args, **kwargs)

Symmetrizes a vector in its matrix representation.

Vec(*args, **kwargs)

Vectorization operator.

Svec(*args, **kwargs)

Symmetric vectorization operator.

Class Inheritance Diagram

Inheritance diagram of probnum.linops.LinearOperator, probnum.linops.Identity, probnum.linops.ScalarMult, probnum.linops.MatrixMult, probnum.linops.Kronecker, probnum.linops.SymmetricKronecker, probnum.linops.Symmetrize, probnum.linops.Vec, probnum.linops.Svec