Class UnitUpperTriangBandMatrix

  • All Implemented Interfaces:
    java.lang.Iterable<MatrixEntry>, Matrix

    public class UnitUpperTriangBandMatrix
    extends UpperTriangBandMatrix
    Unit upper triangular banded matrix. The same storage as LowerTriangBandMatrix, but the main diagonal is assumed to be all ones. It is still allocated, however.
    • Constructor Detail

      • UnitUpperTriangBandMatrix

        public UnitUpperTriangBandMatrix​(int n,
                                         int kd)
        Constructor for UnitUpperTriangBandMatrix
        Parameters:
        n - Size of the matrix. Since the matrix must be square, this equals both the number of rows and columns
        kd - Number of bands above the main diagonal (superdiagonals)
      • UnitUpperTriangBandMatrix

        public UnitUpperTriangBandMatrix​(Matrix A,
                                         int kd)
        Constructor for UnitUpperTriangBandMatrix
        Parameters:
        A - Matrix to copy contents from. Only the parts of A that lie within the allocated band are copied over, the rest is ignored (including main diagonal entries)
        kd - Number of bands above the main diagonal (superdiagonals)
      • UnitUpperTriangBandMatrix

        public UnitUpperTriangBandMatrix​(Matrix A,
                                         int kd,
                                         boolean deep)
        Constructor for UnitUpperTriangBandMatrix
        Parameters:
        A - Matrix to copy contents from. Only the parts of A that lie within the allocated band are copied over, the rest is ignored (including main diagonal entries)
        kd - Number of bands above the main diagonal (superdiagonals)
        deep - True for a deep copy. For shallow copies, A must be a banded 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
      • 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
        Returns:
        A
      • 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
      • 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
      • numSubDiagonals

        public int numSubDiagonals()
        Returns the number of lower diagonals
      • numSuperDiagonals

        public int numSuperDiagonals()
        Returns the number of upper diagonals