as_scipy_operator¶
- odl.operator.oputils.as_scipy_operator(op)[source]¶
Wrap
op
as ascipy.sparse.linalg.LinearOperator
.This is intended to be used with the scipy sparse linear solvers.
- Parameters:
- op
Operator
A linear operator that should be wrapped
- op
- Returns:
- ``scipy.sparse.linalg.LinearOperator``linear_op
The wrapped operator, has attributes
matvec
which callsop
, andrmatvec
which callsop.adjoint
.
Notes
If the data representation of
op
's domain and range is of typeNumpyTensorSpace
this incurs no significant overhead. If the space type isCudaFn
or some other nonlocal type, the overhead is significant.Examples
Wrap operator and solve simple problem (here toy problem
Ix = b
)>>> op = odl.IdentityOperator(odl.rn(3)) >>> scipy_op = as_scipy_operator(op) >>> import scipy.sparse.linalg as scipy_solvers >>> result, status = scipy_solvers.cg(scipy_op, [0, 1, 0]) >>> result array([ 0., 1., 0.])