public interface RealLinearOperator
double
)
vector spaces. No direct access to the coefficients of the underlying matrix
is provided.
The motivation for such an interface is well stated by Barrett et al. (1994):
We restrict ourselves to iterative methods, which work by repeatedly improving an approximate solution until it is accurate enough. These methods access the coefficient matrix A of the linear system only via the matrix-vector product y = A · x (and perhaps z = AT · x). Thus the user need only supply a subroutine for computing y (and perhaps z) given x, which permits full exploitation of the sparsity or other special structure of A.
Modifier and Type | Method and Description |
---|---|
int |
getColumnDimension()
Returns the dimension of the domain of this operator.
|
int |
getRowDimension()
Returns the dimension of the codomain of this operator.
|
default boolean |
isTransposable()
Returns
true if this operator supports operateTranspose(RealVector) . |
RealVector |
operate(RealVector x)
Returns the result of multiplying
this by the vector x . |
default RealVector |
operateTranspose(RealVector x)
Returns the result of multiplying the transpose of
this operator
by the vector x (optional operation). |
int getRowDimension()
int getColumnDimension()
RealVector operate(RealVector x) throws MathIllegalArgumentException
this
by the vector x
.x
- the vector to operate onthis
instance with x
MathIllegalArgumentException
- if the column dimension does not match
the size of x
default RealVector operateTranspose(RealVector x) throws MathIllegalArgumentException, UnsupportedOperationException
this
operator
by the vector x
(optional operation).
The default implementation throws an UnsupportedOperationException
.
Users overriding this method must also override isTransposable()
.
x
- the vector to operate onthis
instance with x
MathIllegalArgumentException
- if the row dimension does not match the
size of x
UnsupportedOperationException
- if this operation is not supported
by this
operatordefault boolean isTransposable()
true
if this operator supports operateTranspose(RealVector)
.
If true
is returned, operateTranspose(RealVector)
should not throw UnsupportedOperationException
.
The default implementation returns false
.
false
Copyright © 2016-2021 CS GROUP. All rights reserved.