pylops.BlockDiag#
- class pylops.BlockDiag(ops, nproc=1, forceflat=None, dtype=None)[source]#
Block-diagonal operator.
Create a block-diagonal operator from N linear operators.
- Parameters
- ops
list
Linear operators to be stacked. Alternatively,
numpy.ndarray
orscipy.sparse
matrices can be passed in place of one or more operators.- nproc
int
, optional Number of processes used to evaluate the N operators in parallel using
multiprocessing
. Ifnproc=1
, work in serial mode.- forceflat
bool
, optional New in version 2.2.0.
Force an array to be flattened after matvec and rmatvec.
- dtype
str
, optional Type of elements in input array.
- ops
Notes
A block-diagonal operator composed of N linear operators is created such as its application in forward mode leads to
\[\begin{split}\begin{bmatrix} \mathbf{L}_1 & \mathbf{0} & \ldots & \mathbf{0} \\ \mathbf{0} & \mathbf{L}_2 & \ldots & \mathbf{0} \\ \vdots & \vdots & \ddots & \vdots \\ \mathbf{0} & \mathbf{0} & \ldots & \mathbf{L}_N \end{bmatrix} \begin{bmatrix} \mathbf{x}_{1} \\ \mathbf{x}_{2} \\ \vdots \\ \mathbf{x}_{N} \end{bmatrix} = \begin{bmatrix} \mathbf{L}_1 \mathbf{x}_{1} \\ \mathbf{L}_2 \mathbf{x}_{2} \\ \vdots \\ \mathbf{L}_N \mathbf{x}_{N} \end{bmatrix}\end{split}\]while its application in adjoint mode leads to
\[\begin{split}\begin{bmatrix} \mathbf{L}_1^H & \mathbf{0} & \ldots & \mathbf{0} \\ \mathbf{0} & \mathbf{L}_2^H & \ldots & \mathbf{0} \\ \vdots & \vdots & \ddots & \vdots \\ \mathbf{0} & \mathbf{0} & \ldots & \mathbf{L}_N^H \end{bmatrix} \begin{bmatrix} \mathbf{y}_{1} \\ \mathbf{y}_{2} \\ \vdots \\ \mathbf{y}_{N} \end{bmatrix} = \begin{bmatrix} \mathbf{L}_1^H \mathbf{y}_{1} \\ \mathbf{L}_2^H \mathbf{y}_{2} \\ \vdots \\ \mathbf{L}_N^H \mathbf{y}_{N} \end{bmatrix}\end{split}\]- Attributes
Methods
__init__
(ops[, nproc, forceflat, dtype])adjoint
()apply_columns
(cols)Apply subset of columns of operator
cond
([uselobpcg])Condition number of linear operator.
conj
()Complex conjugate operator
div
(y[, niter, densesolver])Solve the linear problem \(\mathbf{y}=\mathbf{A}\mathbf{x}\).
dot
(x)Matrix-matrix or matrix-vector multiplication.
eigs
([neigs, symmetric, niter, uselobpcg])Most significant eigenvalues of linear operator.
matmat
(X)Matrix-matrix multiplication.
matvec
(x)Matrix-vector multiplication.
reset_count
()Reset counters
rmatmat
(X)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
()