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:
    Serializable, AnyMatrix, RealMatrix, SparseRealMatrix

      public class OpenMapRealMatrix
      extends AbstractRealMatrix
      implements SparseRealMatrix, Serializable

  Sparse matrix implementation based on an open addressed map.
  Since:
    2.0
  Version:
    $Revision: 811685 $ $Date: 2009-09-05 19:36:48 +0200 (sam. 05 sept. 2009) $
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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

    Constructors
    Constructor and Description
    `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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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 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:
        `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 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:
        `IllegalArgumentException` - if m is not the same size as this

    - #### add

          public OpenMapRealMatrix add(OpenMapRealMatrix m)
                                throws IllegalArgumentException

      Compute the sum of this and `m`.
      Parameters:
        `m` - matrix to be added
      Returns:
        this + m
      Throws:
        `IllegalArgumentException` - if m is not the same size as this

    - #### subtract

          public OpenMapRealMatrix subtract(RealMatrix m)
                                     throws 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:
        `IllegalArgumentException` - if m is not the same size as this

    - #### subtract

          public OpenMapRealMatrix subtract(OpenMapRealMatrix m)
                                     throws IllegalArgumentException

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

    - #### multiply

          public RealMatrix multiply(RealMatrix m)
                              throws 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:
        `IllegalArgumentException` - if columnDimension(this) != rowDimension(m)

    - #### multiply

          public OpenMapRealMatrix multiply(OpenMapRealMatrix m)
                                     throws IllegalArgumentException

      Returns the result of postmultiplying this by m.
      Parameters:
        `m` - matrix to postmultiply by
      Returns:
        this * m
      Throws:
        `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-2013 Apache Software Foundation