## 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 13:36:48 -0400 (Sat, 05 Sep 2009) $

Field Summary
`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
`SparseFieldMatrix(Field<T> field)` Creates a matrix with no data.
`SparseFieldMatrix(Field<T> field, int rowDimension, int columnDimension)` Create a new SparseFieldMatrix<T> with the supplied row and column dimensions.
`SparseFieldMatrix(FieldMatrix<T> other)` Generic copy constructor.
`SparseFieldMatrix(SparseFieldMatrix<T> other)` Copy constructor.

Method Summary
`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<T> 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 java.lang.IllegalArgumentException

  Create a new SparseFieldMatrix<T> 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:
    `java.lang.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 java.lang.IllegalArgumentException

  Create a new FieldMatrix<T> 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:
    `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 `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-2010 Apache Software Foundation