public final class UDDecompositionImpl extends Object implements UDDecomposition, Decomposition
The UD-decomposition of matrix A is a set of three matrices: U, D and Ut such that A = U×D×Ut. U is a upper triangular matrix and D is an diagonal matrix.
See Flavien Mercier (DCT/SB/OR)Modifier and Type | Field and Description |
---|---|
static double |
DEFAULT_ABSOLUTE_POSITIVITY_THRESHOLD
Default threshold below which diagonal elements are considered null and matrix not positive definite.
|
static double |
DEFAULT_RELATIVE_SYMMETRY_THRESHOLD
Default threshold above which off-diagonal elements are considered too different and matrix not symmetric.
|
Constructor and Description |
---|
UDDecompositionImpl(RealMatrix matrix)
Calling this constructor is equivalent to call
UDDecompositionImpl(RealMatrix, double, double) with the
thresholds set to the default values DEFAULT_RELATIVE_SYMMETRY_THRESHOLD and
DEFAULT_ABSOLUTE_POSITIVITY_THRESHOLD . |
UDDecompositionImpl(RealMatrix matrix,
double relativeSymmetryThreshold,
double absolutePositivityThreshold)
Constructor used to set the relative & absolute thresholds.
|
Modifier and Type | Method and Description |
---|---|
static Function<RealMatrix,Decomposition> |
decompositionBuilder(double relativeSymmetryThreshold,
double absolutePositivityThreshold)
Builder for decomposition.
|
RealMatrix |
getD()
get the D matrix
|
double |
getDeterminant()
get the determinant
|
DecompositionSolver |
getSolver()
Get a solver of the linear equation A × X = B for matrices A.
|
RealMatrix |
getU()
Get the U matrix
|
RealMatrix |
getUT()
get the UT matrix
|
public static final double DEFAULT_RELATIVE_SYMMETRY_THRESHOLD
public static final double DEFAULT_ABSOLUTE_POSITIVITY_THRESHOLD
public UDDecompositionImpl(RealMatrix matrix)
UDDecompositionImpl(RealMatrix, double, double)
with the
thresholds set to the default values DEFAULT_RELATIVE_SYMMETRY_THRESHOLD
and
DEFAULT_ABSOLUTE_POSITIVITY_THRESHOLD
.
The decomposition is directly computed on the input matrix.
matrix
- The matrix to decompose.#UDDecompositionImpl(double, double)
,
DEFAULT_RELATIVE_SYMMETRY_THRESHOLD
,
DEFAULT_ABSOLUTE_POSITIVITY_THRESHOLD
public UDDecompositionImpl(RealMatrix matrix, double relativeSymmetryThreshold, double absolutePositivityThreshold)
The decomposition is directly computed on the input matrix.
matrix
- The matrix to decompose.relativeSymmetryThreshold
- threshold above which off-diagonal elements are considered too different and matrix not symmetricabsolutePositivityThreshold
- threshold below which diagonal elements are considered null and matrix not positive definitepublic RealMatrix getU()
getU
in interface UDDecomposition
public RealMatrix getD()
getD
in interface UDDecomposition
public RealMatrix getUT()
getUT
in interface UDDecomposition
public double getDeterminant()
getDeterminant
in interface UDDecomposition
public DecompositionSolver getSolver()
UDDecomposition
getSolver
in interface Decomposition
getSolver
in interface UDDecomposition
UDDecomposition.getSolver()
public static Function<RealMatrix,Decomposition> decompositionBuilder(double relativeSymmetryThreshold, double absolutePositivityThreshold)
relativeSymmetryThreshold
- threshold above which off-diagonal elements are considered too different and matrix not symmetricabsolutePositivityThreshold
- threshold below which diagonal elements are considered null and matrix not positive definiteCopyright © 2021 CNES. All rights reserved.