org.apache.commons.math.linear

## Class SparseFieldMatrix<T extends FieldElement<T>>

- java.lang.Object
- - org.apache.commons.math.linear.AbstractFieldMatrix<T>
  - - org.apache.commons.math.linear.SparseFieldMatrix<T>

- Type Parameters:
    `T` - the type of the field elements
  All Implemented Interfaces:
    AnyMatrix, FieldMatrix<T>

      public class SparseFieldMatrix<T extends FieldElement<T>>
      extends AbstractFieldMatrix<T>

  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) $

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private int` | `columns` column dimension
    `private OpenIntToFieldHashMap<T>` | `entries` Storage for (sparse) matrix elements.
    `private int` | `rows` row dimension
    `private static long` | `serialVersionUID` Serial id

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SparseFieldMatrix(Field<T> field)` Creates a matrix with no data.
    `SparseFieldMatrix(Field<T> field, int rowDimension, int columnDimension)` Create a new SparseFieldMatrix with the supplied row and column dimensions.
    `SparseFieldMatrix(FieldMatrix<T> other)` Generic copy constructor.
    `SparseFieldMatrix(SparseFieldMatrix<T> other)` Copy constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addToEntry(int row, int column, T 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
    `FieldMatrix<T>` | `copy()` Returns a (deep) copy of this.
    `FieldMatrix<T>` | `createMatrix(int rowDimension, int columnDimension)` Create a new FieldMatrix of the same type as the instance with the supplied row and column dimensions.
    `int` | `getColumnDimension()` Returns the number of columns in the matrix.
    `T` | `getEntry(int row, int column)` Returns the entry in the specified row and column.
    `int` | `getRowDimension()` Returns the number of rows in the matrix.
    `void` | `multiplyEntry(int row, int column, T factor)` Change an entry in the specified row and column.
    `void` | `setEntry(int row, int column, T value)` Set the entry in the specified row and column.

    - ### Methods inherited from class org.apache.commons.math.linear.AbstractFieldMatrix

      `add, buildArray, buildArray, checkAdditionCompatible, checkColumnIndex, checkMultiplicationCompatible, checkRowIndex, checkSubMatrixIndex, checkSubMatrixIndex, checkSubtractionCompatible, copySubMatrix, copySubMatrix, equals, extractField, extractField, getColumn, getColumnMatrix, getColumnVector, getData, getField, getRow, getRowMatrix, getRowVector, getSubMatrix, getSubMatrix, getTrace, hashCode, isSquare, multiply, operate, operate, preMultiply, preMultiply, preMultiply, scalarAdd, scalarMultiply, setColumn, setColumnMatrix, setColumnVector, setRow, setRowMatrix, setRowVector, setSubMatrix, subtract, 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`

- - ### Field Detail

    - #### serialVersionUID

          private static final long serialVersionUID

      Serial id
      See Also:
        Constant Field Values

    - #### entries

          private final OpenIntToFieldHashMap<T extends FieldElement<T>> entries

      Storage for (sparse) matrix elements.

    - #### rows

          private final int rows

      row dimension

    - #### columns

          private final int columns

      column dimension

  - ### Constructor Detail

    - #### SparseFieldMatrix

          public SparseFieldMatrix(Field<T> field)

      Creates a matrix with no data.
      Parameters:
        `field` - field to which the elements belong

    - #### SparseFieldMatrix

          public SparseFieldMatrix(Field<T> field,
                           int rowDimension,
                           int columnDimension)
                            throws IllegalArgumentException

      Create a new SparseFieldMatrix with the supplied row and column dimensions.
      Parameters:
        `field` - field to which the elements belong
        `rowDimension` - the number of rows in the new matrix
        `columnDimension` - the number of columns in the new matrix
      Throws:
        `IllegalArgumentException` - if row or column dimension is not positive

    - #### SparseFieldMatrix

          public SparseFieldMatrix(SparseFieldMatrix<T> other)

      Copy constructor.
      Parameters:
        `other` - The instance to copy

    - #### SparseFieldMatrix

          public SparseFieldMatrix(FieldMatrix<T> other)

      Generic copy constructor.
      Parameters:
        `other` - The instance to copy

  - ### Method Detail

    - #### addToEntry

          public void addToEntry(int row,
                        int column,
                        T 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 `FieldMatrix<T extends FieldElement<T>>`
      Specified by:
        `addToEntry` in class `AbstractFieldMatrix<T extends FieldElement<T>>`
      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

    - #### copy

          public FieldMatrix<T> copy()

      Returns a (deep) copy of this.
      Specified by:
        `copy` in interface `FieldMatrix<T extends FieldElement<T>>`
      Specified by:
        `copy` in class `AbstractFieldMatrix<T extends FieldElement<T>>`
      Returns:
        matrix copy

    - #### createMatrix

          public FieldMatrix<T> createMatrix(int rowDimension,
                                    int columnDimension)
                                                              throws IllegalArgumentException

      Create a new FieldMatrix of the same type as the instance with the supplied row and column dimensions.
      Specified by:
        `createMatrix` in interface `FieldMatrix<T extends FieldElement<T>>`
      Specified by:
        `createMatrix` in class `AbstractFieldMatrix<T extends FieldElement<T>>`
      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 `AbstractFieldMatrix<T extends FieldElement<T>>`
      Returns:
        columnDimension

    - #### getEntry

          public T 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 `FieldMatrix<T extends FieldElement<T>>`
      Specified by:
        `getEntry` in class `AbstractFieldMatrix<T extends FieldElement<T>>`
      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 `AbstractFieldMatrix<T extends FieldElement<T>>`
      Returns:
        rowDimension

    - #### multiplyEntry

          public void multiplyEntry(int row,
                           int column,
                           T 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 `FieldMatrix<T extends FieldElement<T>>`
      Specified by:
        `multiplyEntry` in class `AbstractFieldMatrix<T extends FieldElement<T>>`
      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

    - #### setEntry

          public void setEntry(int row,
                      int column,
                      T 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 `FieldMatrix<T extends FieldElement<T>>`
      Specified by:
        `setEntry` in class `AbstractFieldMatrix<T extends FieldElement<T>>`
      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

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