org.jscience.mathematics.algebraic.matrices
Class IntegerMatrix

java.lang.Object
  extended by org.jscience.mathematics.algebraic.AbstractHypermatrix
      extended by org.jscience.mathematics.algebraic.AbstractMatrix
          extended by org.jscience.mathematics.algebraic.matrices.AbstractIntegerMatrix
              extended by org.jscience.mathematics.algebraic.matrices.IntegerMatrix
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Algebra.Member, Ring.Member, AbelianGroup.Member, Hypermatrix, Matrix, Module.Member, VectorSpace.Member, Member

public class IntegerMatrix
extends AbstractIntegerMatrix
implements java.lang.Cloneable, java.io.Serializable

The IntegerMatrix class provides an object for encapsulating integer matrices.

See Also:
Serialized Form

Field Summary
protected  int[][] matrix
          Array containing the elements of the matrix.
 
Constructor Summary
IntegerMatrix(AbstractIntegerVector[] array)
          Constructs a matrix from an array of vectors (columns).
IntegerMatrix(int[][] array)
          Constructs a matrix by wrapping an array.
IntegerMatrix(IntegerMatrix mat)
          Copy constructor.
IntegerMatrix(int rows, int cols)
          Constructs an empty matrix.
 
Method Summary
 AbstractIntegerMatrix add(AbstractIntegerMatrix m)
          Returns the addition of this matrix and another.
 java.lang.Object clone()
          Clone matrix into a new matrix.
 AbstractIntegerMatrix directSum(AbstractIntegerMatrix m)
          Returns the direct sum of this matrix and another.
 boolean equals(AbstractIntegerMatrix m, double tol)
          Compares two ${nativeTyp} matrices for equality.
 double frobeniusNorm()
          Returns the Frobenius or Hilbert-Schmidt (l2) norm.
 AbstractIntegerVector getColumn(int j)
          Returns the ith column.
 int getPrimitiveElement(int i, int j)
          Returns an element of the matrix.
 AbstractIntegerVector getRow(int i)
          Returns the ith row.
 int infNorm()
          Returns the linfinity-norm.
 AbstractIntegerMatrix multiply(AbstractIntegerMatrix m)
          Returns the multiplication of this matrix and another.
 AbstractIntegerVector multiply(AbstractIntegerVector v)
          Returns the multiplication of a vector by this matrix.
 AbstractIntegerMatrix multiply(IntegerMatrix m)
           
 AbelianGroup.Member negate()
          Returns the negative of this matrix.
 AbstractIntegerMatrix scalarMultiply(int x)
          Returns the multiplication of this matrix by a scalar.
 int scalarProduct(AbstractIntegerMatrix m)
          Returns the scalar product of this matrix and another.
 int scalarProduct(IntegerMatrix m)
           
 void setAllElements(int m)
          Sets the value of all elements of the matrix.
 void setElement(int i, int j, int x)
          Sets the value of an element of the matrix.
 AbstractIntegerMatrix subtract(AbstractIntegerMatrix m)
          Returns the subtraction of this matrix by another.
 AbstractIntegerMatrix tensorProduct(AbstractIntegerMatrix m)
          Returns the tensor product of this matrix and another.
 AbstractComplexMatrix toComplexMatrix()
          Converts this matrix to a complex matrix.
 AbstractDoubleMatrix toDoubleMatrix()
          Converts this matrix to a double matrix.
 java.lang.String toString()
          Returns a string representing this matrix.
 Matrix transpose()
          Returns the transpose of this matrix.
 
Methods inherited from class org.jscience.mathematics.algebraic.matrices.AbstractIntegerMatrix
abs, add, equals, equals, getElement, getMatrixAsColumns, getMatrixAsRows, getSet, getSubMatrix, hashCode, horizontalAxisSymmetry, mapElements, mass, max, mean, min, multiply, read, reverse, scalarDivide, scalarMultiply, setColumn, setRow, setSubMatrix, subtract, toPrimitiveArray, verticalAxisSymmetry
 
Methods inherited from class org.jscience.mathematics.algebraic.AbstractMatrix
getElement, getInvalidElementMsg, numColumns, numRows, print, print, print, print, toArray, toArray
 
Methods inherited from class org.jscience.mathematics.algebraic.AbstractHypermatrix
getDimensions, numDimensions, numElements, numElements, toArray
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.jscience.mathematics.algebraic.Hypermatrix
getDimensions, numDimensions, numElements, numElements, toArray
 

Field Detail

matrix

protected final int[][] matrix
Array containing the elements of the matrix.

Constructor Detail

IntegerMatrix

public IntegerMatrix(int[][] array)
Constructs a matrix by wrapping an array.

Parameters:
array - an assigned value

IntegerMatrix

public IntegerMatrix(int rows,
                     int cols)
Constructs an empty matrix.


IntegerMatrix

public IntegerMatrix(AbstractIntegerVector[] array)
Constructs a matrix from an array of vectors (columns).

Parameters:
array - an assigned value

IntegerMatrix

public IntegerMatrix(IntegerMatrix mat)
Copy constructor.

Parameters:
mat - an assigned value
Method Detail

equals

public boolean equals(AbstractIntegerMatrix m,
                      double tol)
Compares two ${nativeTyp} matrices for equality.

Overrides:
equals in class AbstractIntegerMatrix
Parameters:
m - a int matrix

toString

public java.lang.String toString()
Returns a string representing this matrix.

Overrides:
toString in class AbstractIntegerMatrix

toDoubleMatrix

public AbstractDoubleMatrix toDoubleMatrix()
Converts this matrix to a double matrix.

Overrides:
toDoubleMatrix in class AbstractIntegerMatrix
Returns:
a double matrix

toComplexMatrix

public AbstractComplexMatrix toComplexMatrix()
Converts this matrix to a complex matrix.

Overrides:
toComplexMatrix in class AbstractIntegerMatrix
Returns:
a complex matrix

getPrimitiveElement

public int getPrimitiveElement(int i,
                               int j)
Returns an element of the matrix.

Specified by:
getPrimitiveElement in class AbstractIntegerMatrix
Parameters:
i - row index of the element
j - column index of the element
Throws:
IllegalDimensionException - If attempting to access an invalid element.

getRow

public AbstractIntegerVector getRow(int i)
Returns the ith row.

Specified by:
getRow in interface Matrix
Overrides:
getRow in class AbstractIntegerMatrix
Parameters:
i - DOCUMENT ME!
Returns:
DOCUMENT ME!

getColumn

public AbstractIntegerVector getColumn(int j)
Returns the ith column.

Specified by:
getColumn in interface Matrix
Overrides:
getColumn in class AbstractIntegerMatrix
Parameters:
j - DOCUMENT ME!
Returns:
DOCUMENT ME!

setElement

public void setElement(int i,
                       int j,
                       int x)
Sets the value of an element of the matrix. Should only be used to initialise this matrix.

Specified by:
setElement in class AbstractIntegerMatrix
Parameters:
i - row index of the element
j - column index of the element
x - a number
Throws:
IllegalDimensionException - If attempting to access an invalid element.

setAllElements

public void setAllElements(int m)
Sets the value of all elements of the matrix.

Overrides:
setAllElements in class AbstractIntegerMatrix
Parameters:
m - a complex element

infNorm

public int infNorm()
Returns the linfinity-norm.

Overrides:
infNorm in class AbstractIntegerMatrix

frobeniusNorm

public double frobeniusNorm()
Returns the Frobenius or Hilbert-Schmidt (l2) norm.

Overrides:
frobeniusNorm in class AbstractIntegerMatrix

negate

public AbelianGroup.Member negate()
Returns the negative of this matrix.

Specified by:
negate in interface AbelianGroup.Member
Overrides:
negate in class AbstractIntegerMatrix
Returns:
DOCUMENT ME!

add

public AbstractIntegerMatrix add(AbstractIntegerMatrix m)
Returns the addition of this matrix and another.

Overrides:
add in class AbstractIntegerMatrix
Parameters:
m - a int matrix
Throws:
IllegalDimensionException - If the matrices are different sizes.

subtract

public AbstractIntegerMatrix subtract(AbstractIntegerMatrix m)
Returns the subtraction of this matrix by another.

Overrides:
subtract in class AbstractIntegerMatrix
Parameters:
m - a int matrix
Throws:
IllegalDimensionException - If the matrices are different sizes.

scalarMultiply

public AbstractIntegerMatrix scalarMultiply(int x)
Returns the multiplication of this matrix by a scalar.

Overrides:
scalarMultiply in class AbstractIntegerMatrix
Parameters:
x - a int.
Returns:
a int matrix.

scalarProduct

public int scalarProduct(AbstractIntegerMatrix m)
Returns the scalar product of this matrix and another.

Overrides:
scalarProduct in class AbstractIntegerMatrix
Parameters:
m - a int matrix.
Throws:
IllegalDimensionException - If the matrices are different sizes.

scalarProduct

public int scalarProduct(IntegerMatrix m)

multiply

public AbstractIntegerVector multiply(AbstractIntegerVector v)
Returns the multiplication of a vector by this matrix.

Overrides:
multiply in class AbstractIntegerMatrix
Parameters:
v - a int vector.
Throws:
IllegalDimensionException - If the matrix and vector are incompatible.

multiply

public AbstractIntegerMatrix multiply(AbstractIntegerMatrix m)
Returns the multiplication of this matrix and another.

Overrides:
multiply in class AbstractIntegerMatrix
Parameters:
m - a int matrix
Returns:
a AbstractIntegerMatrix or a AbstractIntegerSquareMatrix as appropriate
Throws:
IllegalDimensionException - If the matrices are incompatible.

multiply

public AbstractIntegerMatrix multiply(IntegerMatrix m)

directSum

public AbstractIntegerMatrix directSum(AbstractIntegerMatrix m)
Returns the direct sum of this matrix and another.

Overrides:
directSum in class AbstractIntegerMatrix

tensorProduct

public AbstractIntegerMatrix tensorProduct(AbstractIntegerMatrix m)
Returns the tensor product of this matrix and another.

Overrides:
tensorProduct in class AbstractIntegerMatrix

transpose

public Matrix transpose()
Returns the transpose of this matrix.

Specified by:
transpose in interface Matrix
Overrides:
transpose in class AbstractIntegerMatrix
Returns:
a int matrix

clone

public java.lang.Object clone()
Clone matrix into a new matrix.

Overrides:
clone in class java.lang.Object
Returns:
the cloned matrix.