public class CholeskyDecompositionLDL_DDRM
extends java.lang.Object
implements org.ejml.interfaces.decomposition.CholeskyLDLDecomposition_F64<org.ejml.data.DMatrixRMaj>
This variant on the Cholesky decomposition avoid the need to take the square root
by performing the following decomposition:
L*D*LT=A
where L is a lower triangular matrix with zeros on the diagonal. D is a diagonal matrix.
The diagonal elements of L are equal to one.
Unfortunately the speed advantage of not computing the square root is washed out by the increased number of array accesses. There only appears to be a slight speed boost for very small matrices.
Constructor and Description |
---|
CholeskyDecompositionLDL_DDRM() |
Modifier and Type | Method and Description |
---|---|
double[] |
_getVV() |
boolean |
decompose(org.ejml.data.DMatrixRMaj mat)
Performs Choleksy decomposition on the provided matrix.
|
org.ejml.data.DMatrixRMaj |
getD(org.ejml.data.DMatrixRMaj D) |
double[] |
getDiagonal()
Diagonal elements of the diagonal D matrix.
|
org.ejml.data.DMatrixRMaj |
getL()
Returns L matrix from the decomposition.
L*D*LT=A |
org.ejml.data.DMatrixRMaj |
getL(org.ejml.data.DMatrixRMaj L) |
boolean |
inputModified() |
void |
setExpectedMaxSize(int numRows,
int numCols) |
public void setExpectedMaxSize(int numRows, int numCols)
public boolean decompose(org.ejml.data.DMatrixRMaj mat)
Performs Choleksy decomposition on the provided matrix.
If the matrix is not positive definite then this function will return false since it can't complete its computations. Not all errors will be found.
decompose
in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.DMatrixRMaj>
mat
- A symetric n by n positive definite matrix.public boolean inputModified()
inputModified
in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.DMatrixRMaj>
public double[] getDiagonal()
getDiagonal
in interface org.ejml.interfaces.decomposition.CholeskyLDLDecomposition_F64<org.ejml.data.DMatrixRMaj>
public org.ejml.data.DMatrixRMaj getL()
public double[] _getVV()
public org.ejml.data.DMatrixRMaj getL(org.ejml.data.DMatrixRMaj L)
getL
in interface org.ejml.interfaces.decomposition.CholeskyLDLDecomposition<org.ejml.data.DMatrixRMaj>
public org.ejml.data.DMatrixRMaj getD(org.ejml.data.DMatrixRMaj D)
getD
in interface org.ejml.interfaces.decomposition.CholeskyLDLDecomposition<org.ejml.data.DMatrixRMaj>