Class CholeskyDecompositionBlock_FDRM

  • All Implemented Interfaces:
    org.ejml.interfaces.decomposition.CholeskyDecomposition<org.ejml.data.FMatrixRMaj>, org.ejml.interfaces.decomposition.CholeskyDecomposition_F32<org.ejml.data.FMatrixRMaj>, org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.FMatrixRMaj>

    public class CholeskyDecompositionBlock_FDRM
    extends CholeskyDecompositionCommon_FDRM
    This is an implementation of Cholesky that processes internal submatrices as blocks. This is done to reduce the number of cache issues.
    • Constructor Detail

      • CholeskyDecompositionBlock_FDRM

        public CholeskyDecompositionBlock_FDRM​(int blockWidth)
        Creates a CholeksyDecomposition capable of decomposing a matrix that is n by n, where n is the width.
        Parameters:
        blockWidth - The width of a block.
    • Method Detail

      • decomposeLower

        protected boolean decomposeLower()

        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.

        Specified by:
        decomposeLower in class CholeskyDecompositionCommon_FDRM
        Returns:
        True if it was able to finish the decomposition.
      • solveL_special

        public static void solveL_special​(float[] L,
                                          org.ejml.data.FMatrixRMaj b_src,
                                          int indexSrc,
                                          int indexDst,
                                          org.ejml.data.FMatrixRMaj B)
        This is a variation on the TriangularSolver_FDRM.solveL(float[], float[], int) function. It grabs the input from the top right row rectangle of the source matrix then writes the results to the lower bottom column rectangle. The rectangle matrices just matrices are submatrices of the matrix that is being decomposed. The results are also written to B.
        Parameters:
        L - A lower triangular matrix.
        b_src - matrix with the vectors that are to be solved for
        indexSrc - First index of the submatrix where the inputs are coming from.
        indexDst - First index of the submatrix where the results are going to.
        B -
      • symmRankTranA_sub

        public static void symmRankTranA_sub​(org.ejml.data.FMatrixRMaj a,
                                             org.ejml.data.FMatrixRMaj c,
                                             int startIndexC)

        Performs this operation:

        c = c - aTa
        where c is a submatrix.

        Only the upper triangle is updated.
        Parameters:
        a - A matrix.
        c - A matrix.
        startIndexC - start of the submatrix in c.