pylops.MemoizeOperator

class pylops.MemoizeOperator(Op, max_neval=10)[source]

Memoize Operator.

This operator can be used to wrap any PyLops operator and add a memoize functionality - i.e., store the last max_neval model/data vector pairs for forward and adjoint evaluations. Note that cache hits require identical input values and dtype; nearby vectors are evaluated independently.

Parameters:
Oppylops.LinearOperator

PyLops linear operator

max_nevalint, optional

Maximum number of previous evaluations stored, use np.inf for infinite memory

Attributes:
storelist

List of stored (x, y) pairs.

nevalint

Number of evaluations of the operator.

shapetuple

Operator shape. \([n \times m]\).

Methods

__init__(Op[, max_neval])

adjoint()

apply_columns(cols)

Apply subset of columns of operator

cond([uselobpcg, backend])

Condition number of linear operator.

conj()

Complex conjugate operator

div(y[, niter, densesolver])

Solve the linear problem or divide by a scalar

dot(x)

Dot-product

eigs([neigs, symmetric, niter, uselobpcg, ...])

N-most significant eigenvalues of a linear operator.

matmat(X[, pool])

Matrix-matrix multiplication.

matvec(x)

Matrix-vector multiplication.

reset_count()

Reset counters

rmatmat(X[, pool])

Matrix-matrix multiplication.

rmatvec(x)

Adjoint matrix-vector multiplication.

todense([backend])

Return dense matrix.

toimag([forw, adj])

Imag operator

toreal([forw, adj])

Real operator

tosparse()

Return sparse matrix.

trace([neval, method, backend])

Trace of linear operator.

transpose()

Examples using pylops.MemoizeOperator

Memoized forward and adjoint evaluations

Memoized forward and adjoint evaluations

17. Real/Complex Inversion

17. Real/Complex Inversion