Class CholeskyDecompositionCommon_FDRM

All Implemented Interfaces:
CholeskyDecomposition<FMatrixRMaj>, CholeskyDecomposition_F32<FMatrixRMaj>, DecompositionInterface<FMatrixRMaj>
Direct Known Subclasses:
CholeskyDecompositionBlock_FDRM, CholeskyDecompositionInner_FDRM

public abstract class CholeskyDecompositionCommon_FDRM
extends Object
implements CholeskyDecomposition_F32<FMatrixRMaj>

This is an abstract class for a Cholesky decomposition. It provides the solvers, but the actual decomposition is provided in other classes.

See Also:
  • Field Details

    • maxWidth

      protected int maxWidth
    • n

      protected int n
    • T

      protected FMatrixRMaj T
    • t

      protected float[] t
    • vv

      protected float[] vv
    • lower

      protected boolean lower
    • det

      protected Complex_F32 det
  • Constructor Details

    • CholeskyDecompositionCommon_FDRM

      protected CholeskyDecompositionCommon_FDRM​(boolean lower)
      Specifies if a lower or upper variant should be constructed.
      lower - should a lower or upper triangular matrix be used.
  • Method Details

    • setExpectedMaxSize

      public void setExpectedMaxSize​(int numRows, int numCols)
    • isLower

      public boolean isLower()
      If true the decomposition was for a lower triangular matrix. If false it was for an upper triangular matrix.
      Specified by:
      isLower in interface CholeskyDecomposition<FMatrixRMaj>
      True if lower, false if upper.
    • decompose

      public boolean decompose​(FMatrixRMaj 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. This is an efficient way to check for positive definiteness.

      Specified by:
      decompose in interface DecompositionInterface<FMatrixRMaj>
      mat - A symmetric positive definite matrix with n ≤ widthMax.
      True if it was able to finish the decomposition.
    • inputModified

      public boolean inputModified()
      Description copied from interface: DecompositionInterface
      Is the input matrix to DecompositionInterface.decompose( is modified during the decomposition process.
      Specified by:
      inputModified in interface DecompositionInterface<FMatrixRMaj>
      true if the input matrix to decompose() is modified.
    • decomposeLower

      protected abstract boolean decomposeLower()
      Performs an lower triangular decomposition.
      true if the matrix was decomposed.
    • decomposeUpper

      protected abstract boolean decomposeUpper()
      Performs an upper triangular decomposition.
      true if the matrix was decomposed.
    • getT

      public FMatrixRMaj getT​(@Nullable @Nullable FMatrixRMaj T)
      Description copied from interface: CholeskyDecomposition

      Returns the triangular matrix from the decomposition.

      If an input is provided that matrix is used to write the results to. Otherwise a new matrix is created and the results written to it.

      Specified by:
      getT in interface CholeskyDecomposition<FMatrixRMaj>
      T - If not null then the decomposed matrix is written here.
      A lower or upper triangular matrix.
    • getT

      public FMatrixRMaj getT()
      Returns the triangular matrix from the decomposition.
      A lower or upper triangular matrix.
    • _getVV

      public float[] _getVV()
    • computeDeterminant

      public Complex_F32 computeDeterminant()
      Description copied from interface: CholeskyDecomposition_F32
      Computes the matrix's determinant using the decomposition.
      Specified by:
      computeDeterminant in interface CholeskyDecomposition_F32<FMatrixRMaj>
      The determinant.