public abstract class RealLinearOperator extends Object
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.
Constructor and Description |
---|
RealLinearOperator() |
Modifier and Type | Method and Description |
---|---|
abstract int |
getColumnDimension()
Returns the dimension of the domain of this operator.
|
abstract int |
getRowDimension()
Returns the dimension of the codomain of this operator.
|
boolean |
isTransposable()
Returns
true if this operator supports
operateTranspose(RealVector) . |
abstract RealVector |
operate(RealVector x)
Returns the result of multiplying
this by the vector x . |
RealVector |
operateTranspose(RealVector x)
Returns the result of multiplying the transpose of
this operator
by the vector x (optional operation). |
public abstract int getRowDimension()
public abstract int getColumnDimension()
public abstract RealVector operate(RealVector x) throws DimensionMismatchException
this
by the vector x
.x
- the vector to operate onthis
instance with x
DimensionMismatchException
- if the column dimension does not match
the size of x
public RealVector operateTranspose(RealVector x) throws DimensionMismatchException, 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
DimensionMismatchException
- if the row dimension does not match the size of x
UnsupportedOperationException
- if this operation is not supported
by this
operatorpublic 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 © 2003–2016 The Apache Software Foundation. All rights reserved.