BandMatrix

Overview | Package | Class | Use | Tree | Deprecated | Index | Help

PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## no.uib.cipr.matrix
Class BandMatrix

    java.lang.Object
      no.uib.cipr.matrix.AbstractMatrix
          no.uib.cipr.matrix.BandMatrix

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

    public class BandMatrix

extends AbstractMatrix

Banded matrix. The banded matrix is a useful sparse structure for many kinds of direct computations, however it should only be used if the band is sufficiently narrow as wide bands actually wastes both memory and compute time. The matrix

a11 | a12 |  |  |
a21 | a22 | a23 |  |
a31 | a32 | a33 | a34 |
| a42 | a43 | a44 | a45
|  | a53 | a54 | a55

has two lower diagonals and one upper diagonal. It will be stored in the array

| a11 | a21 | a31 | a21 | a22 | a32 | a42 | a23 | a33 | a43 | a53 | a34 | a44 | a54 |  | a45 | a55 |  |

Empty cells are allocated, but never referenced.

Nested Class Summary

Nested classes/interfaces inherited from interface no.uib.cipr.matrix.Matrix
`Matrix.Norm`

Field Summary

Fields inherited from class no.uib.cipr.matrix.AbstractMatrix
`numColumns, numRows`

Constructor Summary
`BandMatrix(int n, int kl, int ku)` Constructor for BandMatrix
`BandMatrix(Matrix A, int kl, int ku)` Constructor for BandMatrix
`BandMatrix(Matrix A, int kl, int ku, boolean deep)` Constructor for BandMatrix

Method Summary
`void` | `add(int row, int column, double value)` `A(row,column) += value`
`BandMatrix` | `copy()` Creates a deep copy of the matrix
`double` | `get(int row, int column)` Returns `A(row,column)`
`double[]` | `getData()` Returns the matrix contents
`java.util.Iterator<MatrixEntry>` | `iterator()`
`Vector` | `multAdd(double alpha, Vector x, Vector y)` `y = alpha*A*x + y`
`int` | `numSubDiagonals()` Returns the number of lower diagonals
`int` | `numSuperDiagonals()` Returns the number of upper diagonals
`void` | `set(int row, int column, double value)` `A(row,column) = value`
`Matrix` | `set(Matrix B)` `A=B`.
`Matrix` | `solve(Matrix B, Matrix X)` `X = A\B`.
`Vector` | `solve(Vector b, Vector x)` `x = A\b`.
`Vector` | `transMultAdd(double alpha, Vector x, Vector y)` `y = alpha*AT*x + y`
`Matrix` | `transpose()` Transposes the matrix in-place.
`Matrix` | `zero()` Zeros all the entries in the matrix, while preserving any underlying structure.

Methods inherited from class no.uib.cipr.matrix.AbstractMatrix
`add, add, check, checkMultAdd, checkMultAdd, checkRank1, checkRank1, checkRank2, checkRank2, checkSize, checkSolve, checkSolve, checkTransABmultAdd, checkTransAmultAdd, checkTransBmultAdd, checkTransMultAdd, checkTranspose, checkTranspose, checkTransRank1, checkTransRank2, isSquare, max, max, mult, mult, mult, mult, multAdd, multAdd, multAdd, norm, norm1, normF, normInf, numColumns, numRows, rank1, rank1, rank1, rank1, rank1, rank1, rank2, rank2, rank2, rank2, scale, set, toString, transABmult, transABmult, transABmultAdd, transABmultAdd, transAmult, transAmult, transAmultAdd, transAmultAdd, transBmult, transBmult, transBmultAdd, transBmultAdd, transMult, transMult, transMultAdd, transpose, transRank1, transRank1, transRank2, transRank2, transSolve, transSolve`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### BandMatrix

    public BandMatrix(int n,
                      int kl,
                      int ku)

  Constructor for BandMatrix

  Parameters:
    `n` - Size of the matrix. Since the matrix must be square, this equals both the number of rows and columns
    `kl` - Number of bands above the main diagonal (superdiagonals)
    `ku` - Number of bands below the main diagonal (subdiagonals)

### BandMatrix

    public BandMatrix(Matrix A,
                      int kl,
                      int ku)

  Constructor for BandMatrix

  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
    `kl` - Number of bands above the main diagonal (superdiagonals)
    `ku` - Number of bands below the main diagonal (subdiagonals)

### BandMatrix

    public BandMatrix(Matrix A,
                      int kl,
                      int ku,
                      boolean deep)

  Constructor for BandMatrix

  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
    `kl` - Number of bands above the main diagonal (superdiagonals)
    `ku` - Number of bands below the main diagonal (subdiagonals)
    `deep` - True for a deep copy. For shallow copies, `A` must be a banded matrix

Method Detail

### copy

    public BandMatrix 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

### 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

### multAdd

    public Vector multAdd(double alpha,
                          Vector x,
                          Vector y)

  Description copied from interface: `Matrix`
  `y = alpha*A*x + y`

  Specified by:
    `multAdd` in interface `Matrix`
  Overrides:
    `multAdd` in class `AbstractMatrix`
    `x` - Vector of size `A.numColumns()`
    `y` - Vector of size `A.numRows()`
  Returns:
    y

### transMultAdd

    public Vector transMultAdd(double alpha,
                               Vector x,
                               Vector y)

  Description copied from interface: `Matrix`
  `y = alpha*AT*x + y`

  Specified by:
    `transMultAdd` in interface `Matrix`
  Overrides:
    `transMultAdd` in class `AbstractMatrix`
    `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

### transpose

    public Matrix transpose()

  Description copied from interface: `Matrix`
  Transposes the matrix in-place. In most cases, the matrix must be square for this to work.

  Specified by:
    `transpose` in interface `Matrix`
  Overrides:
    `transpose` in class `AbstractMatrix`
  Returns:
    This matrix

### 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

### iterator

    public java.util.Iterator<MatrixEntry> iterator()

  Specified by:
    `iterator` in interface `java.lang.Iterable<MatrixEntry>`
  Overrides:
    `iterator` in class `AbstractMatrix`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help

PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD