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
- 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:
- _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:
- property T
Matrix Transpose
- property H
Matrix complex conjugate transpose (aka hermitian conjugate, adjoint)