drasys.or.matrix
Class ContiguousMatrix

java.lang.Object
  |
  +--drasys.or.matrix.RealContainer
        |
        +--drasys.or.matrix.Matrix
              |
              +--drasys.or.matrix.ContiguousMatrix
Direct Known Subclasses:
ColumnMajorMatrix, RowMajorMatrix

public abstract class ContiguousMatrix
extends Matrix
implements ContiguousMatrixI, SizableMatrixI

Abstract base class for contiguous matrices. A contiguous matrix is a dense matrix structure where all the elements are stored in a single one dimensional array.

References:

Matrix Computations (Johns Hopkins Studies in the Mathematical Sciences)
    Gene H. Golub, Charles F. Van Loan (Contributor) / Paperback / Published 1996
Numerical Recipes in C : The Art of Scientific Computing
    William H. Press, et al / Hardcover / Published 1993
Parallel Algorithms for Matrix Computations
    K.A. Gallivan / Paperback / Published 1990

See Also:
Serialized Form

Inner Class Summary
static class ContiguousMatrix.Sub
           
 
Fields inherited from class drasys.or.matrix.RealContainer
_epsilon, _globalEpsilon
 
Constructor Summary
ContiguousMatrix(double[][] array)
           
ContiguousMatrix(int sizeOfRows, int sizeOfColumns, int capacityOfRows, int capacityOfColumns)
           
ContiguousMatrix(MatrixI matrix)
           
ContiguousMatrix(VectorI vector)
           
 
Method Summary
 int capacityOfColumns()
          Returns the number of columns the matrix can hold without allocating more memory.
 int capacityOfRows()
          Returns the number of rows the matrix can hold without allocating more memory.
 java.util.Enumeration columnElements(int column)
          Returns an enumeration of the non-null elements in a column.
 ContiguousVectorI columnVector(int column)
          Returns a reference to the column.
 ContiguousVectorI diagonalVector()
          Returns a reference to the diagonal.
 java.util.Enumeration elements()
          Returns an enumeration of the non-null elements in the matrix.
 double[] getValueArray()
          Returns the internal array that is used to hold the element values.
 boolean isNull(int row, int column)
          Always returns false.
 java.util.Enumeration rowElements(int row)
          Returns an enumeration of the non-null elements in a row.
 ContiguousVectorI rowVector(int row)
          Returns a reference to the row.
 void setElements(double value)
          Sets the value of all the non-null elements.
 int sizeOfColumns()
          Returns the number of columns in the matrix.
 int sizeOfElements()
          Returns the number of non-null elements in the matrix.
 int sizeOfRows()
          Returns the number of rows in the matrix.
 ContiguousMatrixI submatrix(int beginRow, int beginColumn)
          Returns a reference to the submatrix.
 ContiguousMatrixI submatrix(int beginRow, int endRow, int beginColumn, int endColumn)
          Returns a reference to the submatrix.
 double sum(int rowBegin, int rowEnd, int columnBegin, int columnEnd)
          Returns the sum of all of the elements in the sub-matrix.
Computes sum(a[i][j]).
Where: i = {rowBegin,...,(rowEnd-1)}
j = {columBegin,...,(columnEnd-1)}
 double sumOfSquaredDifferences(int rowBegin, int rowEnd, int columnBegin, int columnEnd, double scaler)
          Returns the sum of the squared differences between the elements and a scaler.
Computes sum((a[i][j]-scaler)^2).
Where: i = {rowBegin,...,(rowEnd-1)}
j = {columBegin,...,(columnEnd-1)}
 double sumOfSquares(int rowBegin, int rowEnd, int columnBegin, int columnEnd)
          Returns the sum of all of the elements in the sub-matrix.
Computes sum(a[i][j]^2).
Where: i = {rowBegin,...,(rowEnd-1)}
j = {columBegin,...,(columnEnd-1)}
 
Methods inherited from class drasys.or.matrix.Matrix
equals, equals, getArray, setColumn, setDiagonal, setElements, setRow, sum, sum, sumOfSquaredDifferences, sumOfSquaredDifferences, sumOfSquares, sumOfSquares, toString
 
Methods inherited from class drasys.or.matrix.RealContainer
equals, getEpsilon, getGlobalEpsilon, setEpsilon, setGlobalEpsilon
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ContiguousMatrix

public ContiguousMatrix(int sizeOfRows,
                        int sizeOfColumns,
                        int capacityOfRows,
                        int capacityOfColumns)

ContiguousMatrix

public ContiguousMatrix(double[][] array)

ContiguousMatrix

public ContiguousMatrix(MatrixI matrix)

ContiguousMatrix

public ContiguousMatrix(VectorI vector)
Method Detail

submatrix

public ContiguousMatrixI submatrix(int beginRow,
                                   int beginColumn)
Returns a reference to the submatrix.
Specified by:
submatrix in interface ContiguousMatrixI

submatrix

public ContiguousMatrixI submatrix(int beginRow,
                                   int endRow,
                                   int beginColumn,
                                   int endColumn)
Returns a reference to the submatrix.
Specified by:
submatrix in interface ContiguousMatrixI

rowElements

public java.util.Enumeration rowElements(int row)
Returns an enumeration of the non-null elements in a row. The Enumeration is free to reuse the same object for each call to 'nextElement', so the contents must be use before getting another element.
Overrides:
rowElements in class Matrix
Returns:
an enumeration whose elements are mutable and of type 'MatrixElementI'

columnElements

public java.util.Enumeration columnElements(int column)
Returns an enumeration of the non-null elements in a column. The Enumeration is free to reuse the same object for each call to 'nextElement', so the contents must be use before getting another element.
Overrides:
columnElements in class Matrix
Returns:
an enumeration whose elements are mutable and of type 'MatrixElementI'

elements

public java.util.Enumeration elements()
Returns an enumeration of the non-null elements in the matrix. The Enumeration is free to reuse the same object for each call to 'nextElement', so the contents must be use before getting another element.
Overrides:
elements in class Matrix
Returns:
an enumeration whose elements are mutable and of type 'MatrixElementI'

setElements

public void setElements(double value)
Sets the value of all the non-null elements.

getValueArray

public double[] getValueArray()
Returns the internal array that is used to hold the element values. The element values are stored in a single contiguous block of memory in this array.
Specified by:
getValueArray in interface ContiguousMatrixI

rowVector

public ContiguousVectorI rowVector(int row)
Returns a reference to the row.
Specified by:
rowVector in interface ContiguousMatrixI

columnVector

public ContiguousVectorI columnVector(int column)
Returns a reference to the column.
Specified by:
columnVector in interface ContiguousMatrixI

diagonalVector

public ContiguousVectorI diagonalVector()
Returns a reference to the diagonal.
Specified by:
diagonalVector in interface ContiguousMatrixI

isNull

public boolean isNull(int row,
                      int column)
Always returns false.

sizeOfRows

public int sizeOfRows()
Returns the number of rows in the matrix.

sizeOfColumns

public int sizeOfColumns()
Returns the number of columns in the matrix.

sizeOfElements

public int sizeOfElements()
Returns the number of non-null elements in the matrix.

capacityOfRows

public int capacityOfRows()
Returns the number of rows the matrix can hold without allocating more memory.
Specified by:
capacityOfRows in interface SizableMatrixI

capacityOfColumns

public int capacityOfColumns()
Returns the number of columns the matrix can hold without allocating more memory.
Specified by:
capacityOfColumns in interface SizableMatrixI

sum

public double sum(int rowBegin,
                  int rowEnd,
                  int columnBegin,
                  int columnEnd)
Returns the sum of all of the elements in the sub-matrix.
Computes sum(a[i][j]).
Where: i = {rowBegin,...,(rowEnd-1)}
j = {columBegin,...,(columnEnd-1)}
Overrides:
sum in class Matrix

sumOfSquares

public double sumOfSquares(int rowBegin,
                           int rowEnd,
                           int columnBegin,
                           int columnEnd)
Returns the sum of all of the elements in the sub-matrix.
Computes sum(a[i][j]^2).
Where: i = {rowBegin,...,(rowEnd-1)}
j = {columBegin,...,(columnEnd-1)}
Overrides:
sumOfSquares in class Matrix

sumOfSquaredDifferences

public double sumOfSquaredDifferences(int rowBegin,
                                      int rowEnd,
                                      int columnBegin,
                                      int columnEnd,
                                      double scaler)
Returns the sum of the squared differences between the elements and a scaler.
Computes sum((a[i][j]-scaler)^2).
Where: i = {rowBegin,...,(rowEnd-1)}
j = {columBegin,...,(columnEnd-1)}
Overrides:
sumOfSquaredDifferences in class Matrix


Copyright(C)1997-2000 by DRA Systems all rights reserved. OpsResearch.com