Package org.hipparchus.linear
Class JacobiPreconditioner
java.lang.Object
org.hipparchus.linear.JacobiPreconditioner
- All Implemented Interfaces:
RealLinearOperator
This class implements the standard Jacobi (diagonal) preconditioner. For a
matrix Aij, this preconditioner is
M = diag(1 / A11, 1 / A22, …).
-
Constructor Summary
ConstructorDescriptionJacobiPreconditioner
(double[] diag, boolean deep) Creates a new instance of this class. -
Method Summary
Modifier and TypeMethodDescriptionstatic JacobiPreconditioner
Creates a new instance of this class.int
Returns the dimension of the domain of this operator.int
Returns the dimension of the codomain of this operator.Returns the result of multiplyingthis
by the vectorx
.sqrt()
Returns the square root ofthis
diagonal operator.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.hipparchus.linear.RealLinearOperator
isTransposable, operateTranspose
-
Constructor Details
-
JacobiPreconditioner
public JacobiPreconditioner(double[] diag, boolean deep) Creates a new instance of this class.- Parameters:
diag
- the diagonal coefficients of the linear operator to be preconditioneddeep
-true
if a deep copy of the above array should be performed
-
-
Method Details
-
create
Creates a new instance of this class. This method extracts the diagonal coefficients of the specified linear operator. Ifa
does not extendAbstractRealMatrix
, 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.- Parameters:
a
- the linear operator for which the preconditioner should be built- Returns:
- the diagonal preconditioner made of the inverse of the diagonal coefficients of the specified linear operator
- Throws:
MathIllegalArgumentException
- ifa
is not square
-
getColumnDimension
public int getColumnDimension()Returns the dimension of the domain of this operator.- Specified by:
getColumnDimension
in interfaceRealLinearOperator
- Returns:
- the number of columns of the underlying matrix
-
getRowDimension
public int getRowDimension()Returns the dimension of the codomain of this operator.- Specified by:
getRowDimension
in interfaceRealLinearOperator
- Returns:
- the number of rows of the underlying matrix
-
operate
Returns the result of multiplyingthis
by the vectorx
.- Specified by:
operate
in interfaceRealLinearOperator
- Parameters:
x
- the vector to operate on- Returns:
- the product of
this
instance withx
-
sqrt
Returns the square root ofthis
diagonal operator. More precisely, this method returns P = diag(1 / √A11, 1 / √A22, …).- Returns:
- the square root of
this
preconditioner
-