Class LUDecompositionBase_ZDRM

  • All Implemented Interfaces:
    org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.ZMatrixRMaj>, org.ejml.interfaces.decomposition.LUDecomposition<org.ejml.data.ZMatrixRMaj>, org.ejml.interfaces.decomposition.LUDecomposition_F64<org.ejml.data.ZMatrixRMaj>
    Direct Known Subclasses:
    LUDecompositionAlt_ZDRM

    public abstract class LUDecompositionBase_ZDRM
    extends java.lang.Object
    implements org.ejml.interfaces.decomposition.LUDecomposition_F64<org.ejml.data.ZMatrixRMaj>

    Contains common data structures and operations for LU decomposition algorithms.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected double[] dataLU  
      protected org.ejml.data.Complex_F64 det  
      protected int[] indx  
      protected org.ejml.data.ZMatrixRMaj LU  
      protected int m  
      protected int maxWidth  
      protected int n  
      protected int[] pivot  
      protected double pivsign  
      protected int stride  
      protected double[] vv  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      double[] _getVV()  
      void _solveVectorInternal​(double[] vv)
      a specialized version of solve that avoid additional checks that are not needed.
      org.ejml.data.Complex_F64 computeDeterminant()
      Computes the determinant from the LU decomposition.
      protected void decomposeCommonInit​(org.ejml.data.ZMatrixRMaj a)  
      int[] getIndx()  
      org.ejml.data.ZMatrixRMaj getLower​(org.ejml.data.ZMatrixRMaj lower)
      Writes the lower triangular matrix into the specified matrix.
      org.ejml.data.ZMatrixRMaj getLU()  
      int[] getPivot()  
      org.ejml.data.ZMatrixRMaj getRowPivot​(org.ejml.data.ZMatrixRMaj pivot)  
      int[] getRowPivotV​(org.ejml.data.IGrowArray pivot)  
      org.ejml.data.ZMatrixRMaj getUpper​(org.ejml.data.ZMatrixRMaj upper)
      Writes the upper triangular matrix into the specified matrix.
      boolean inputModified()  
      boolean isSingular()
      Determines if the decomposed matrix is singular.
      double quality()  
      void setExpectedMaxSize​(int numRows, int numCols)  
      protected void solveL​(double[] vv)
      Solve the using the lower triangular matrix in LU.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.ejml.interfaces.decomposition.DecompositionInterface

        decompose
    • Field Detail

      • LU

        protected org.ejml.data.ZMatrixRMaj LU
      • maxWidth

        protected int maxWidth
      • m

        protected int m
      • n

        protected int n
      • stride

        protected int stride
      • dataLU

        protected double[] dataLU
      • vv

        protected double[] vv
      • indx

        protected int[] indx
      • pivot

        protected int[] pivot
      • pivsign

        protected double pivsign
      • det

        protected org.ejml.data.Complex_F64 det
    • Constructor Detail

      • LUDecompositionBase_ZDRM

        public LUDecompositionBase_ZDRM()
    • Method Detail

      • setExpectedMaxSize

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

        public org.ejml.data.ZMatrixRMaj getLU()
      • getIndx

        public int[] getIndx()
      • getPivot

        public int[] getPivot()
      • inputModified

        public boolean inputModified()
        Specified by:
        inputModified in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.ZMatrixRMaj>
      • getLower

        public org.ejml.data.ZMatrixRMaj getLower​(org.ejml.data.ZMatrixRMaj lower)
        Writes the lower triangular matrix into the specified matrix.
        Specified by:
        getLower in interface org.ejml.interfaces.decomposition.LUDecomposition<org.ejml.data.ZMatrixRMaj>
        Parameters:
        lower - Where the lower triangular matrix is written to.
      • getUpper

        public org.ejml.data.ZMatrixRMaj getUpper​(org.ejml.data.ZMatrixRMaj upper)
        Writes the upper triangular matrix into the specified matrix.
        Specified by:
        getUpper in interface org.ejml.interfaces.decomposition.LUDecomposition<org.ejml.data.ZMatrixRMaj>
        Parameters:
        upper - Where the upper triangular matrix is writen to.
      • getRowPivot

        public org.ejml.data.ZMatrixRMaj getRowPivot​(org.ejml.data.ZMatrixRMaj pivot)
        Specified by:
        getRowPivot in interface org.ejml.interfaces.decomposition.LUDecomposition<org.ejml.data.ZMatrixRMaj>
      • getRowPivotV

        public int[] getRowPivotV​(org.ejml.data.IGrowArray pivot)
        Specified by:
        getRowPivotV in interface org.ejml.interfaces.decomposition.LUDecomposition<org.ejml.data.ZMatrixRMaj>
      • decomposeCommonInit

        protected void decomposeCommonInit​(org.ejml.data.ZMatrixRMaj a)
      • isSingular

        public boolean isSingular()
        Determines if the decomposed matrix is singular. This function can return false and the matrix be almost singular, which is still bad.
        Specified by:
        isSingular in interface org.ejml.interfaces.decomposition.LUDecomposition<org.ejml.data.ZMatrixRMaj>
        Returns:
        true if singular false otherwise.
      • computeDeterminant

        public org.ejml.data.Complex_F64 computeDeterminant()
        Computes the determinant from the LU decomposition.
        Specified by:
        computeDeterminant in interface org.ejml.interfaces.decomposition.LUDecomposition_F64<org.ejml.data.ZMatrixRMaj>
        Returns:
        The matrix's determinant.
      • quality

        public double quality()
      • _solveVectorInternal

        public void _solveVectorInternal​(double[] vv)
        a specialized version of solve that avoid additional checks that are not needed.
      • solveL

        protected void solveL​(double[] vv)
        Solve the using the lower triangular matrix in LU. Diagonal elements are assumed to be 1
      • _getVV

        public double[] _getVV()