public class JacobiPreconditioner extends Object implements RealLinearOperator
Constructor and Description |
---|
JacobiPreconditioner(double[] diag,
boolean deep)
Creates a new instance of this class.
|
Modifier and Type | Method and Description |
---|---|
static JacobiPreconditioner |
create(RealLinearOperator a)
Creates a new instance of this class.
|
int |
getColumnDimension()
Returns the dimension of the domain of this operator.
|
int |
getRowDimension()
Returns the dimension of the codomain of this operator.
|
RealVector |
operate(RealVector x)
Returns the result of multiplying
this by the vector x . |
RealLinearOperator |
sqrt()
Returns the square root of
this diagonal operator. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
isTransposable, operateTranspose
public JacobiPreconditioner(double[] diag, boolean deep)
diag
- the diagonal coefficients of the linear operator to be
preconditioneddeep
- true
if a deep copy of the above array should be
performedpublic static JacobiPreconditioner create(RealLinearOperator a) throws MathIllegalArgumentException
a
does not
extend AbstractRealMatrix
, then the coefficients of the
underlying matrix are not accessible, coefficient extraction is made by
matrix-vector products with the basis vectors (and might therefore take
some time). With matrices, direct entry access is carried out.a
- the linear operator for which the preconditioner should be builtMathIllegalArgumentException
- if a
is not squarepublic int getColumnDimension()
getColumnDimension
in interface RealLinearOperator
public int getRowDimension()
getRowDimension
in interface RealLinearOperator
public RealVector operate(RealVector x)
this
by the vector x
.operate
in interface RealLinearOperator
x
- the vector to operate onthis
instance with x
public RealLinearOperator sqrt()
this
diagonal operator. More
precisely, this method returns
P = diag(1 / √A11, 1 / √A22, …).this
preconditionerCopyright © 2016-2021 CS GROUP. All rights reserved.