brahmap.base.MatrixLinearOperator¶
Bases: LinearOperator
A linear operator wrapping a dense or sparse 2D NumPy/SciPy matrix.
While BrahMap typically relies on matrix-free operations for large-scale
data, MatrixLinearOperator allows standard explicitly constructed matrices
(e.g., small covariance blocks or low-resolution masks) to seamlessly
interact with the iterative solvers and operator algebra in the framework.
The operator's dtype is the same as the specified matrix argument.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
matrix
|
NDArray[number]
|
A dense 2D matrix to be wrapped as a LinearOperator |
required |
**kwargs
|
Any
|
Extra keyword arguments |
{}
|
Methods:
| Name | Description |
|---|---|
reset_counters |
Resets matrix-vector product counter to zero. |
dot |
Numpy-like dot() method. |
matvec |
Matrix-vector multiplication method. |
to_array |
Returns the dense form of the linear operator as a 2D NumPy array. |
Attributes:
| Name | Type | Description |
|---|---|---|
dtype |
DTypeLike
|
The data type of the operator. |
nargin |
int
|
Size of the input vector \(x\), i.e. the number of columns of the operator |
nargout |
int
|
Size of the output vector \(A(x)\), i.e. the number of rows of the operator |
symmetric |
bool
|
Indicates whether the operator is symmetric or not |
shape |
tuple[int, int]
|
A tuple |
nMatvec |
int
|
The number of matrix-vector multiplications computed so far |
T |
LinearOperator
|
The transpose operator |
H |
LinearOperator
|
The adjoint operator |
Source code in brahmap/base/linop.py
Attributes¶
dtype: npt.DTypeLike
property
writable
¶
The data type of the operator.
Returns:
| Type | Description |
|---|---|
DTypeLike
|
The NumPy data type of the operator |
nargin: int
property
¶
Size of the input vector \(x\), i.e. the number of columns of the operator
Returns:
| Type | Description |
|---|---|
int
|
The number of input columns |
nargout: int
property
¶
Size of the output vector \(A(x)\), i.e. the number of rows of the operator
Returns:
| Type | Description |
|---|---|
int
|
The number of output rows |
symmetric: bool
property
¶
Indicates whether the operator is symmetric or not
Returns:
| Type | Description |
|---|---|
bool
|
|
shape: Tuple[int, int]
property
¶
A tuple (nargout, nargin) representing the shape of the operator
Returns:
| Type | Description |
|---|---|
tuple[int, int]
|
A tuple |
nMatvec: int
property
¶
The number of matrix-vector multiplications computed so far
Returns:
| Type | Description |
|---|---|
int
|
The number of matrix-vector multiplications performed |
T: LinearOperator
property
¶
The transpose operator
Returns:
| Type | Description |
|---|---|
LinearOperator
|
The transpose of this linear operator |
H: LinearOperator
property
¶
The adjoint operator
Returns:
| Type | Description |
|---|---|
LinearOperator
|
The Hermitian adjoint of this linear operator |
Functions¶
reset_counters() -> None
¶
dot(x) -> npt.NDArray[np.number]
¶
Numpy-like dot() method.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Any
|
The input vector or object to multiply with. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[number]
|
The result of the dot product. |
Source code in brahmap/base/linop.py
matvec(x) -> npt.NDArray[np.number]
¶
Matrix-vector multiplication method.
The matvec method encapsulates the matvec
routine specified at construct time, to ensure the
consistency of the input and output arrays with the
operator's shape.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
NDArray[number]
|
The input vector \(x\) to be multiplied by the operator |
required |
Returns:
| Type | Description |
|---|---|
NDArray[number]
|
The result of the matrix-vector multiplication \(A(x)\) |
Source code in brahmap/base/linop.py
to_array() -> npt.NDArray[np.number]
¶
Returns the dense form of the linear operator as a 2D NumPy array.
Warning
This method first allocates a NumPy array of shape self.shape
and data-type self.dtype, and then fills them with numbers. As
such, for a large linear operator, it can occupy an enormous
amount of memory and crash your system. Don't use it unless you
understand the risk!
Returns:
| Type | Description |
|---|---|
NDArray[number]
|
The dense 2D array representation of the linear operator |