## org.apache.commons.math.linear
Class OpenMapRealMatrix

    java.lang.Object
      org.apache.commons.math.linear.AbstractRealMatrix
          org.apache.commons.math.linear.OpenMapRealMatrix

All Implemented Interfaces:
  java.io.Serializable, AnyMatrix, RealMatrix, SparseRealMatrix

    public class OpenMapRealMatrix

extends AbstractRealMatrix
implements SparseRealMatrix, java.io.Serializable

Sparse matrix implementation based on an open addressed map.

Since:
  2.0
Version:
  $Revision: 811685 $ $Date: 2009-09-05 13:36:48 -0400 (Sat, 05 Sep 2009) $
See Also:
  Serialized Form

Field Summary
`private int` `columns` Number of columns of the matrix.
`private OpenIntToDoubleHashMap` `entries` Storage for (sparse) matrix elements.
`private int` `rows` Number of rows of the matrix.
`private static long` `serialVersionUID` Serializable version identifier.

Constructor Summary
`OpenMapRealMatrix(int rowDimension, int columnDimension)` Build a sparse matrix with the supplied row and column dimensions.
`OpenMapRealMatrix(OpenMapRealMatrix matrix)` Build a matrix by copying another one.

Method Summary
`OpenMapRealMatrix` `add(OpenMapRealMatrix m)` Compute the sum of this and `m`.
`OpenMapRealMatrix` `add(RealMatrix m)` Compute the sum of this and m.
`void` `addToEntry(int row, int column, double increment)` Change an entry in the specified row and column.
`private int` `computeKey(int row, int column)` Compute the key to access a matrix element
`OpenMapRealMatrix` `copy()` Returns a (deep) copy of this.
`OpenMapRealMatrix` `createMatrix(int rowDimension, int columnDimension)` Create a new RealMatrix of the same type as the instance with the supplied row and column dimensions.
`int` `getColumnDimension()` Returns the number of columns in the matrix.
`double` `getEntry(int row, int column)` Returns the entry in the specified row and column.
`int` `getRowDimension()` Returns the number of rows in the matrix.
`OpenMapRealMatrix` `multiply(OpenMapRealMatrix m)` Returns the result of postmultiplying this by m.
`RealMatrix` `multiply(RealMatrix m)` Returns the result of postmultiplying this by m.
`void` `multiplyEntry(int row, int column, double factor)` Change an entry in the specified row and column.
`void` `setEntry(int row, int column, double value)` Set the entry in the specified row and column.
`OpenMapRealMatrix` `subtract(OpenMapRealMatrix m)` Compute this minus `m`.
`OpenMapRealMatrix` `subtract(RealMatrix m)` Compute this minus m.

Methods inherited from class org.apache.commons.math.linear.AbstractRealMatrix

`copySubMatrix, copySubMatrix, equals, getColumn, getColumnMatrix, getColumnVector, getData, getDeterminant, getFrobeniusNorm, getNorm, getRow, getRowMatrix, getRowVector, getSubMatrix, getSubMatrix, getTrace, hashCode, inverse, isSingular, isSquare, luDecompose, operate, operate, preMultiply, preMultiply, preMultiply, scalarAdd, scalarMultiply, setColumn, setColumnMatrix, setColumnVector, setRow, setRowMatrix, setRowVector, setSubMatrix, solve, solve, toString, transpose, walkInColumnOrder, walkInColumnOrder, walkInColumnOrder, walkInColumnOrder, walkInOptimizedOrder, walkInOptimizedOrder, walkInOptimizedOrder, walkInOptimizedOrder, walkInRowOrder, walkInRowOrder, walkInRowOrder, walkInRowOrder`

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

Methods inherited from interface org.apache.commons.math.linear.RealMatrix

`copySubMatrix, copySubMatrix, getColumn, getColumnMatrix, getColumnVector, getData, getDeterminant, getFrobeniusNorm, getNorm, getRow, getRowMatrix, getRowVector, getSubMatrix, getSubMatrix, getTrace, inverse, isSingular, operate, operate, preMultiply, preMultiply, preMultiply, scalarAdd, scalarMultiply, setColumn, setColumnMatrix, setColumnVector, setRow, setRowMatrix, setRowVector, setSubMatrix, solve, solve, transpose, walkInColumnOrder, walkInColumnOrder, walkInColumnOrder, walkInColumnOrder, walkInOptimizedOrder, walkInOptimizedOrder, walkInOptimizedOrder, walkInOptimizedOrder, walkInRowOrder, walkInRowOrder, walkInRowOrder, walkInRowOrder`

Methods inherited from interface org.apache.commons.math.linear.AnyMatrix
`isSquare`

Field Detail

### serialVersionUID

    private static final long serialVersionUID

  Serializable version identifier.

  See Also:
    Constant Field Values

### rows

    private final int rows

  Number of rows of the matrix.

### columns

    private final int columns

  Number of columns of the matrix.

### entries

    private final OpenIntToDoubleHashMap entries

  Storage for (sparse) matrix elements.

Constructor Detail

### OpenMapRealMatrix

    public OpenMapRealMatrix(int rowDimension,
                             int columnDimension)

  Build a sparse matrix with the supplied row and column dimensions.

  Parameters:
    `rowDimension` - number of rows of the matrix
    `columnDimension` - number of columns of the matrix

### OpenMapRealMatrix

    public OpenMapRealMatrix(OpenMapRealMatrix matrix)

  Build a matrix by copying another one.

  Parameters:
    `matrix` - matrix to copy

Method Detail

### copy

    public OpenMapRealMatrix copy()

  Returns a (deep) copy of this.

  Specified by:
    `copy` in interface `RealMatrix`
  Specified by:
    `copy` in class `AbstractRealMatrix`
  Returns:
    matrix copy

### createMatrix

    public OpenMapRealMatrix createMatrix(int rowDimension,
                                          int columnDimension)
                                   throws java.lang.IllegalArgumentException

  Create a new RealMatrix of the same type as the instance with the supplied row and column dimensions.

  Specified by:
    `createMatrix` in interface `RealMatrix`
  Specified by:
    `createMatrix` in class `AbstractRealMatrix`
  Parameters:
    `rowDimension` - the number of rows in the new matrix
    `columnDimension` - the number of columns in the new matrix
  Returns:
    a new matrix of the same type as the instance
  Throws:
    `java.lang.IllegalArgumentException` - if row or column dimension is not positive

### getColumnDimension

    public int getColumnDimension()

  Returns the number of columns in the matrix.

  Specified by:
    `getColumnDimension` in interface `AnyMatrix`
  Specified by:
    `getColumnDimension` in class `AbstractRealMatrix`
  Returns:
    columnDimension

### add

    public OpenMapRealMatrix add(RealMatrix m)
                          throws java.lang.IllegalArgumentException

  Compute the sum of this and m.

  Specified by:
    `add` in interface `RealMatrix`
  Overrides:
    `add` in class `AbstractRealMatrix`
  Parameters:
    `m` - matrix to be added
  Returns:
    this + m
  Throws:
    `java.lang.IllegalArgumentException` - if m is not the same size as this

### add

    public OpenMapRealMatrix add(OpenMapRealMatrix m)
                          throws java.lang.IllegalArgumentException

  Compute the sum of this and `m`.

  Parameters:
    `m` - matrix to be added
  Returns:
    this + m
  Throws:
    `java.lang.IllegalArgumentException` - if m is not the same size as this

### subtract

    public OpenMapRealMatrix subtract(RealMatrix m)
                               throws java.lang.IllegalArgumentException

  Compute this minus m.

  Specified by:
    `subtract` in interface `RealMatrix`
  Overrides:
    `subtract` in class `AbstractRealMatrix`
  Parameters:
    `m` - matrix to be subtracted
  Returns:
    this - m
  Throws:
    `java.lang.IllegalArgumentException` - if m is not the same size as this

### subtract

    public OpenMapRealMatrix subtract(OpenMapRealMatrix m)
                               throws java.lang.IllegalArgumentException

  Compute this minus `m`.

  Parameters:
    `m` - matrix to be subtracted
  Returns:
    this - m
  Throws:
    `java.lang.IllegalArgumentException` - if m is not the same size as this

### multiply

    public RealMatrix multiply(RealMatrix m)
                        throws java.lang.IllegalArgumentException

  Returns the result of postmultiplying this by m.

  Specified by:
    `multiply` in interface `RealMatrix`
  Overrides:
    `multiply` in class `AbstractRealMatrix`
  Parameters:
    `m` - matrix to postmultiply by
  Returns:
    this * m
  Throws:
    `java.lang.IllegalArgumentException` - if columnDimension(this) != rowDimension(m)

### multiply

    public OpenMapRealMatrix multiply(OpenMapRealMatrix m)
                               throws java.lang.IllegalArgumentException

  Returns the result of postmultiplying this by m.

  Parameters:
    `m` - matrix to postmultiply by
  Returns:
    this * m
  Throws:
    `java.lang.IllegalArgumentException` - if columnDimension(this) != rowDimension(m)

### getEntry

    public double getEntry(int row,
                           int column)
                    throws MatrixIndexException

  Returns the entry in the specified row and column.

  Row and column indices start at 0 and must satisfy

  - `0 <= row < rowDimension`
  - `0 <= column < columnDimension`
  otherwise a `MatrixIndexException` is thrown.

  Specified by:
    `getEntry` in interface `RealMatrix`
  Specified by:
    `getEntry` in class `AbstractRealMatrix`
  Parameters:
    `row` - row location of entry to be fetched
    `column` - column location of entry to be fetched
  Returns:
    matrix entry in row,column
  Throws:
    `MatrixIndexException` - if the row or column index is not valid

### getRowDimension

    public int getRowDimension()

  Returns the number of rows in the matrix.

  Specified by:
    `getRowDimension` in interface `AnyMatrix`
  Specified by:
    `getRowDimension` in class `AbstractRealMatrix`
  Returns:
    rowDimension

### setEntry

    public void setEntry(int row,
                         int column,
                         double value)
                  throws MatrixIndexException

  Set the entry in the specified row and column.

  Row and column indices start at 0 and must satisfy

  - `0 <= row < rowDimension`
  - `0 <= column < columnDimension`
  otherwise a `MatrixIndexException` is thrown.

  Specified by:
    `setEntry` in interface `RealMatrix`
  Specified by:
    `setEntry` in class `AbstractRealMatrix`
  Parameters:
    `row` - row location of entry to be set
    `column` - column location of entry to be set
    `value` - matrix entry to be set in row,column
  Throws:
    `MatrixIndexException` - if the row or column index is not valid

### addToEntry

    public void addToEntry(int row,
                           int column,
                           double increment)
                    throws MatrixIndexException

  Change an entry in the specified row and column.

  Row and column indices start at 0 and must satisfy

  - `0 <= row < rowDimension`
  - `0 <= column < columnDimension`
  otherwise a `MatrixIndexException` is thrown.

  Specified by:
    `addToEntry` in interface `RealMatrix`
  Specified by:
    `addToEntry` in class `AbstractRealMatrix`
  Parameters:
    `row` - row location of entry to be set
    `column` - column location of entry to be set
    `increment` - value to add to the current matrix entry in row,column
  Throws:
    `MatrixIndexException` - if the row or column index is not valid

### multiplyEntry

    public void multiplyEntry(int row,
                              int column,
                              double factor)
                       throws MatrixIndexException

  Change an entry in the specified row and column.

  Row and column indices start at 0 and must satisfy

  - `0 <= row < rowDimension`
  - `0 <= column < columnDimension`
  otherwise a `MatrixIndexException` is thrown.

  Specified by:
    `multiplyEntry` in interface `RealMatrix`
  Specified by:
    `multiplyEntry` in class `AbstractRealMatrix`
  Parameters:
    `row` - row location of entry to be set
    `column` - column location of entry to be set
    `factor` - multiplication factor for the current matrix entry in row,column
  Throws:
    `MatrixIndexException` - if the row or column index is not valid

### computeKey

    private int computeKey(int row,
                           int column)

  Compute the key to access a matrix element

  Parameters:
    `row` - row index of the matrix element
    `column` - column index of the matrix element
  Returns:
    key within the map to access the matrix element

Copyright (c) 2003-2011 Apache Software Foundation