Class LowerTriangBandMatrix

java.lang.Object
no.uib.cipr.matrix.AbstractMatrix
no.uib.cipr.matrix.LowerTriangBandMatrix
All Implemented Interfaces:
Iterable<MatrixEntry>, Matrix
Direct Known Subclasses:
UnitLowerTriangBandMatrix

public class LowerTriangBandMatrix extends AbstractMatrix
Lower triangular banded matrix. The same storage as BandMatrix, but without superdiagonals.
  • Constructor Details

    • LowerTriangBandMatrix

      public LowerTriangBandMatrix(int n, int kd)
      Constructor for LowerTriangBandMatrix
      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 below the main diagonal (subdiagonals)
    • LowerTriangBandMatrix

      public LowerTriangBandMatrix(Matrix A, int kd)
      Constructor for LowerTriangBandMatrix
      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
      kd - Number of bands below the main diagonal (subdiagonals)
    • LowerTriangBandMatrix

      public LowerTriangBandMatrix(Matrix A, int kd, boolean deep)
      Constructor for LowerTriangBandMatrix
      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
      kd - Number of bands below the main diagonal (subdiagonals)
      deep - True for a deep copy. For shallow copies, A must be a banded matrix
  • Method Details

    • copy

      public LowerTriangBandMatrix copy()
      Description copied from interface: Matrix
      Creates a deep copy of the matrix
      Specified by:
      copy in interface Matrix
      Overrides:
      copy in class AbstractMatrix
      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
      Parameters:
      x - Vector of size A.numColumns()
      y - Vector of size A.numRows()
      Returns:
      y
    • transMult

      public Vector transMult(double alpha, Vector x, Vector y)
      Description copied from interface: Matrix
      y = alpha*AT*x
      Specified by:
      transMult in interface Matrix
      Overrides:
      transMult in class AbstractMatrix
      Parameters:
      x - Vector of size A.numRows()
      y - Vector of size A.numColumns()
      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
    • 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
      Overrides:
      add in class AbstractMatrix
    • 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
      Overrides:
      set in class AbstractMatrix
    • get

      public double get(int row, int column)
      Description copied from interface: Matrix
      Returns A(row,column)
      Specified by:
      get in interface Matrix
      Overrides:
      get in class AbstractMatrix
    • numSubDiagonals

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

      public int numSuperDiagonals()
      Returns the number of upper diagonals
    • set

      public Matrix set(Matrix B)
      Description copied from interface: Matrix
      A=B. The matrices must be of the same size
      Specified by:
      set in interface Matrix
      Overrides:
      set in class AbstractMatrix
      Returns:
      A
    • 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
    • iterator

      public Iterator<MatrixEntry> iterator()
      Specified by:
      iterator in interface Iterable<MatrixEntry>
      Overrides:
      iterator in class AbstractMatrix