Class LowerTriangDenseMatrix

  • All Implemented Interfaces:
    java.lang.Iterable<MatrixEntry>, Matrix
    Direct Known Subclasses:
    UnitLowerTriangDenseMatrix

    public class LowerTriangDenseMatrix
    extends AbstractMatrix
    Lower triangular dense matrix. It has the same storage layout as the DenseMatrix, but only refers to elements below or on the main diagonal. The remaining elements are assumed to be zero, but since they are never accessed, they need not be.
    • Constructor Detail

      • LowerTriangDenseMatrix

        public LowerTriangDenseMatrix​(int n)
        Constructor for LowerTriangDenseMatrix
        Parameters:
        n - Size of the matrix. Since the matrix must be square, this equals both the number of rows and columns
      • LowerTriangDenseMatrix

        public LowerTriangDenseMatrix​(Matrix A)
        Constructor for LowerTriangDenseMatrix
        Parameters:
        A - Matrix to copy from. Only the lower triangular part is copied
      • LowerTriangDenseMatrix

        public LowerTriangDenseMatrix​(Matrix A,
                                      boolean deep)
        Constructor for LowerTriangDenseMatrix
        Parameters:
        A - Matrix to copy from. Only the lower triangular part is copied
        deep - If true, A is copied, else a shallow copy is made and the matrices share underlying storage. For this, A must be a dense matrix
      • LowerTriangDenseMatrix

        public LowerTriangDenseMatrix​(Matrix A,
                                      int k)
        Constructor for LowerTriangDenseMatrix
        Parameters:
        A - Matrix to copy from. Only the lower triangular part is copied
        k - Size of matrix to refer. k<min(numRows,numColumns)
      • LowerTriangDenseMatrix

        public LowerTriangDenseMatrix​(Matrix A,
                                      int k,
                                      boolean deep)
        Constructor for LowerTriangDenseMatrix
        Parameters:
        A - Matrix to copy from. Only the lower triangular part is copied
        k - Size of matrix to refer. k<min(numRows,numColumns)
        deep - If true, A is copied, else a shallow copy is made and the matrices share underlying storage. For this, A must be a dense matrix
    • Method Detail

      • add

        public void add​(int row,
                        int column,
                        double value)
        Description copied from interface: Matrix
        A(row,column) += value
        Specified by:
        add in interface Matrix
      • get

        public double get​(int row,
                          int column)
        Description copied from interface: Matrix
        Returns A(row,column)
        Specified by:
        get in interface Matrix
      • set

        public void set​(int row,
                        int column,
                        double value)
        Description copied from interface: Matrix
        A(row,column) = value
        Specified by:
        set in interface Matrix
      • mult

        public Vector mult​(double alpha,
                           Vector x,
                           Vector y)
        Description copied from interface: Matrix
        y = alpha*A*x
        Specified by:
        mult in interface Matrix
        Overrides:
        mult in class AbstractMatrix
        x - Vector of size A.numColumns()
        y - Vector of size A.numRows()
        Returns:
        y
      • mult

        public Matrix mult​(double alpha,
                           Matrix B,
                           Matrix C)
        Description copied from interface: Matrix
        C = alpha*A*B
        Specified by:
        mult in interface Matrix
        Overrides:
        mult in class AbstractMatrix
        B - Matrix such that B.numRows() == A.numColumns() and B.numColumns() == C.numColumns()
        C - Matrix such that C.numRows() == A.numRows() and B.numColumns() == C.numColumns()
        Returns:
        C
      • transAmult

        public Matrix transAmult​(double alpha,
                                 Matrix B,
                                 Matrix C)
        Description copied from interface: Matrix
        C = alpha*AT*B
        Specified by:
        transAmult in interface Matrix
        Overrides:
        transAmult in class AbstractMatrix
        B - Matrix such that B.numRows() == A.numRows() and B.numColumns() == C.numColumns()
        C - Matrix such that C.numRows() == A.numColumns() and B.numColumns() == C.numColumns()
        Returns:
        C
      • solve

        public Matrix solve​(Matrix B,
                            Matrix X)
        Description copied from interface: Matrix
        X = A\B. Not all matrices support this operation, those that do not throw UnsupportedOperationException. Note that it is often more efficient to use a matrix decomposition and its associated solver
        Specified by:
        solve in interface Matrix
        Overrides:
        solve in class AbstractMatrix
        Parameters:
        B - Matrix with the same number of rows as A, and the same number of columns as X
        X - Matrix with a number of rows equal A.numColumns(), and the same number of columns as B
        Returns:
        X
      • solve

        public Vector solve​(Vector b,
                            Vector x)
        Description copied from interface: Matrix
        x = A\b. Not all matrices support this operation, those that do not throw UnsupportedOperationException. Note that it is often more efficient to use a matrix decomposition and its associated solver
        Specified by:
        solve in interface Matrix
        Overrides:
        solve in class AbstractMatrix
        Parameters:
        b - Vector of size A.numRows()
        x - Vector of size A.numColumns()
        Returns:
        x
      • transSolve

        public Matrix transSolve​(Matrix B,
                                 Matrix X)
        Description copied from interface: Matrix
        X = AT\B. Not all matrices support this operation, those that do not throw UnsupportedOperationException. Note that it is often more efficient to use a matrix decomposition and its associated transpose solver
        Specified by:
        transSolve in interface Matrix
        Overrides:
        transSolve in class AbstractMatrix
        Parameters:
        B - Matrix with a number of rows equal A.numColumns(), and the same number of columns as X
        X - Matrix with the same number of rows as A, and the same number of columns as B
        Returns:
        X
      • transSolve

        public Vector transSolve​(Vector b,
                                 Vector x)
        Description copied from interface: Matrix
        x = AT\b. Not all matrices support this operation, those that do not throw UnsupportedOperationException. Note that it is often more efficient to use a matrix decomposition and its associated solver
        Specified by:
        transSolve in interface Matrix
        Overrides:
        transSolve in class AbstractMatrix
        Parameters:
        b - Vector of size A.numColumns()
        x - Vector of size A.numRows()
        Returns:
        x
      • getData

        public double[] getData()
        Returns the matrix contents. Ordering depends on the underlying storage assumptions
      • zero

        public Matrix zero()
        Description copied from interface: Matrix
        Zeros all the entries in the matrix, while preserving any underlying structure. Useful for general, unstructured matrices.
        Specified by:
        zero in interface Matrix
        Overrides:
        zero in class AbstractMatrix
        Returns:
        A