Linear Operator Base Class

The base class of all linear operators is LinearOperator. It implements the basic machinery for matrix vector multiplies.

To implement a new linear operator, you need to implement or call __init__(dtype,shape), and implement _matmat().

The methods _rmatmat(), to_dense(), T(), and H() will all be defined automatically.

class cola.ops.LinearOperator(dtype, shape, matmat=None, annotations={})[source]

Linear Operator base class

__init__(dtype, shape, matmat=None, annotations={})[source]
abstract _matmat(X)[source]

Defines multiplication AX of the LinearOperator A with a dense array X (d,k) where A (self) is shape (c,d)

Return type:

Any

_rmatmat(X)[source]

Defines multiplication XA of the LinearOperator A with a dense array X (k,d) where A (self) is shape (d,c). By default uses jvp to compute the transpose.

Return type:

Any

to_dense()[source]

Produces a dense array representation of the linear operator.

Return type:

Any

property T

Matrix Transpose

property H

Matrix complex conjugate transpose (aka hermitian conjugate, adjoint)