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

    java.lang.Object
      org.apache.commons.math3.linear.RealLinearOperator
          org.apache.commons.math3.linear.AbstractRealMatrix
              org.apache.commons.math3.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:
  $Id: OpenMapRealMatrix.java 1244107 2012-02-14 16:17:55Z erans $
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 matrix 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 of this matrix.
`double` `getEntry(int row, int column)` Get the entry in the specified row and column.
`int` `getRowDimension()` Returns the number of rows of this matrix.
`OpenMapRealMatrix` `multiply(OpenMapRealMatrix m)` Postmultiply this matrix 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)` Subtract `m` from this matrix.
`OpenMapRealMatrix` `subtract(RealMatrix m)` Compute this minus m.

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

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

Methods inherited from class org.apache.commons.math3.linear.RealLinearOperator
`isTransposable, operateTranspose`

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

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

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

Methods inherited from interface org.apache.commons.math3.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)

  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

### getColumnDimension

    public int getColumnDimension()

  Returns the number of columns of this matrix.

  Specified by:
    `getColumnDimension` in interface `AnyMatrix`
  Specified by:
    `getColumnDimension` in class `AbstractRealMatrix`
  Returns:
    the number of columns.

### add

    public OpenMapRealMatrix add(OpenMapRealMatrix m)

  Compute the sum of this matrix and `m`.

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

### subtract

    public OpenMapRealMatrix subtract(RealMatrix m)

  Compute this minus m.

  Specified by:
    `subtract` in interface `RealMatrix`
  Overrides:
    `subtract` in class `AbstractRealMatrix`
  Parameters:
    `m` - matrix to be subtracted
  Returns:
    this - m

### subtract

    public OpenMapRealMatrix subtract(OpenMapRealMatrix m)

  Subtract `m` from this matrix.

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

### multiply

    public RealMatrix multiply(RealMatrix m)

  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

### multiply

    public OpenMapRealMatrix multiply(OpenMapRealMatrix m)

  Postmultiply this matrix by `m`.

  Parameters:
    `m` - Matrix to postmultiply by.
  Returns:
    `this` * `m`.
  Throws:
    `MatrixDimensionMismatchException` - if the number of rows of `m` differ from the number of columns of this matrix.

### getEntry

    public double getEntry(int row,
                           int column)

  Get the entry in the specified row and column. Row and column indices start at 0.

  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:
    the matrix entry at `(row, column)`.

### getRowDimension

    public int getRowDimension()

  Returns the number of rows of this matrix.

  Specified by:
    `getRowDimension` in interface `AnyMatrix`
  Specified by:
    `getRowDimension` in class `AbstractRealMatrix`
  Returns:
    the number of rows.

### setEntry

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

  Set the entry in the specified row and column. Row and column indices start at 0.

  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.

### addToEntry

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

  Change an entry in the specified row and column. Row and column indices start at 0.

  Specified by:
    `addToEntry` in interface `RealMatrix`
  Overrides:
    `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 matrix entry.

### multiplyEntry

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

  Change an entry in the specified row and column. Row and column indices start at 0.

  Specified by:
    `multiplyEntry` in interface `RealMatrix`
  Overrides:
    `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 matrix entry.

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