Interface Cholesky<N extends Comparable<N>>
- All Superinterfaces:
DeterminantTask<N>, InverterTask<N>, InvertibleFactor<N>, LDU<N>, MatrixDecomposition<N>, MatrixDecomposition.Determinant<N>, MatrixDecomposition.Hermitian<N>, MatrixDecomposition.Ordered<N>, MatrixDecomposition.RankRevealing<N>, MatrixDecomposition.Solver<N>, MatrixTask<N>, Provider2D, Provider2D.Determinant<N>, Provider2D.Inverse<Optional<MatrixStore<N>>>, Provider2D.Rank, Provider2D.Solution<Optional<MatrixStore<N>>>, SolverTask<N>, Structure1D, Structure2D
- All Known Implementing Classes:
DenseCholesky, DenseCholesky.C128, DenseCholesky.H256, DenseCholesky.Q128, DenseCholesky.R064, DenseCholesky.R128, RawCholesky
Cholesky: [A] = [L][L]H (or [R]H[R])
[A]H = [A] = [L][L]H
If [A] is symmetric and positive definite then the general LU decomposition - [P][L][D][U] - becomes [I][L][D][L]T (or [I][U]T[D][U]). [I] can be left out and [D] is normally split in halves and merged with [L] (and/or [U]). We'll express it as [A] = [L][L]T.
A cholesky decomposition is still/also an LU decomposition where [P][L][D][U] => [L][L]T.
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface InvertibleFactor
InvertibleFactor.IdentityFactor<N>Nested classes/interfaces inherited from interface MatrixDecomposition
MatrixDecomposition.Determinant<N>, MatrixDecomposition.EconomySize<N>, MatrixDecomposition.Hermitian<N>, MatrixDecomposition.Ordered<N>, MatrixDecomposition.Pivoting<N>, MatrixDecomposition.RankRevealing<N>, MatrixDecomposition.Solver<N>, MatrixDecomposition.Updatable<N>, MatrixDecomposition.Values<N>Nested classes/interfaces inherited from interface Provider2D
Provider2D.Condition, Provider2D.Determinant<N>, Provider2D.Eigenpairs, Provider2D.Hermitian, Provider2D.Inverse<M>, Provider2D.Rank, Provider2D.Solution<M>, Provider2D.Symmetric, Provider2D.Trace<N>Nested classes/interfaces inherited from interface Structure1D
Structure1D.BasicMapper<T>, Structure1D.IndexMapper<T>, Structure1D.IntIndex, Structure1D.LongIndex, Structure1D.LoopCallbackNested classes/interfaces inherited from interface Structure2D
Structure2D.IntRowColumn, Structure2D.Logical<S,B>, Structure2D.LongRowColumn, Structure2D.ReducibleTo1D<R>, Structure2D.Reshapable, Structure2D.RowColumnKey<R, C>, Structure2D.RowColumnMapper<R, C> -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Cholesky.Factory<ComplexNumber> static final Cholesky.Factory<Quaternion> static final Cholesky.Factory<RationalNumber> static final Cholesky.Factory<Double> static final Cholesky.Factory<Quadruple> Fields inherited from interface MatrixDecomposition
TYPICAL -
Method Summary
Modifier and TypeMethodDescriptionstatic <N extends Comparable<N>>
booleanequals(MatrixStore<N> matrix, Cholesky<N> decomposition, NumberContext context) default MatrixStore<N> getL()default MatrixStore<N> getR()booleanisSPD()To use the Cholesky decomposition rather than the LU decomposition the matrix must be symmetric and positive definite.default MatrixStore<N> Methods inherited from interface DeterminantTask
calculateDeterminantMethods inherited from interface InverterTask
invert, invert, preallocateMethods inherited from interface InvertibleFactor
btran, btran, ftran, ftranMethods inherited from interface MatrixDecomposition
decompose, isComputed, resetMethods inherited from interface MatrixDecomposition.Determinant
getDeterminant, toDeterminantProviderMethods inherited from interface MatrixDecomposition.Hermitian
checkAndDecomposeMethods inherited from interface MatrixDecomposition.RankRevealing
countSignificant, getRank, getRankThreshold, isFullRankMethods inherited from interface MatrixDecomposition.Solver
compute, getInverse, getInverse, getSolution, getSolution, invert, isSolvable, preallocate, solve, toInverseProvider, toSolutionProviderMethods inherited from interface SolverTask
preallocate, preallocate, solve, solveMethods inherited from interface Structure2D
count, countColumns, countRows, firstInColumn, firstInRow, getColDim, getMaxDim, getMinDim, getRowDim, isEmpty, isFat, isScalar, isSquare, isTall, isVector, limitOfColumn, limitOfRow, size
-
Field Details
-
C128
-
H256
-
Q128
-
R064
-
R128
-
-
Method Details
-
equals
static <N extends Comparable<N>> boolean equals(MatrixStore<N> matrix, Cholesky<N> decomposition, NumberContext context) -
getL
-
getR
-
isSPD
boolean isSPD()To use the Cholesky decomposition rather than the LU decomposition the matrix must be symmetric and positive definite. It is recommended that the decomposition algorithm checks for this during calculation. Possibly the matrix could be assumed to be symmetric (to improve performance) but tests should be made to assure the matrix is positive definite.- Returns:
- true if the tests did not fail.
-
reconstruct
- Specified by:
reconstructin interfaceMatrixDecomposition<N extends Comparable<N>>
-