JSci.maths.matrices
Class AbstractIntegerSquareMatrix

java.lang.Object
  extended by JSci.maths.matrices.Matrix
      extended by JSci.maths.matrices.AbstractIntegerMatrix
          extended by JSci.maths.matrices.AbstractIntegerSquareMatrix
All Implemented Interfaces:
java.io.Serializable, Algebra.Member, Module.Member, VectorSpace.Member, Ring.Member, AbelianGroup.Member, SquareMatrix, Member
Direct Known Subclasses:
IntegerDiagonalMatrix, IntegerSquareMatrix, IntegerTridiagonalMatrix

public abstract class AbstractIntegerSquareMatrix
extends AbstractIntegerMatrix
implements SquareMatrix

The AbstractIntegerSquareMatrix class provides an object for encapsulating integer square matrices.

See Also:
Serialized Form

Field Summary
protected  DoubleLUCache luCache
           
 
Fields inherited from class JSci.maths.matrices.Matrix
numCols, numRows
 
Constructor Summary
protected AbstractIntegerSquareMatrix(int size)
          Constructs a matrix.
 
Method Summary
 AbstractIntegerMatrix add(AbstractIntegerMatrix m)
          Returns the addition of this matrix and another.
 AbstractIntegerSquareMatrix add(AbstractIntegerSquareMatrix m)
          Returns the addition of this matrix and another.
 AbstractDoubleSquareMatrix[] choleskyDecompose()
          Returns the Cholesky decomposition of this matrix.
 int det()
          Returns the determinant.
 AbstractIntegerSquareMatrix directSum(AbstractIntegerSquareMatrix m)
          Returns the direct sum of this matrix and another.
 AbstractDoubleSquareMatrix inverse()
          Returns the inverse of this matrix.
 boolean isSymmetric()
          Returns true if this matrix is symmetric.
 boolean isUnitary()
          Returns true if this matrix is unitary.
protected  AbstractDoubleSquareMatrix[] luDecompose_cache(int[] pivot)
           
 AbstractDoubleSquareMatrix[] luDecompose()
          Returns the LU decomposition of this matrix.
 AbstractDoubleSquareMatrix[] luDecompose(int[] pivot)
          Returns the LU decomposition of this matrix.
 AbstractIntegerSquareMatrix multiply(AbstractIntegerSquareMatrix m)
          Returns the multiplication of this matrix and another.
 AbelianGroup.Member negate()
          Returns the negative of this matrix.
 AbstractDoubleSquareMatrix[] qrDecompose()
          Returns the QR decomposition 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(AbstractIntegerSquareMatrix m)
          Returns the scalar product of this matrix and another.
 AbstractDoubleSquareMatrix[] singularValueDecompose()
          Returns the singular value decomposition of this matrix.
 AbstractIntegerMatrix subtract(AbstractIntegerMatrix m)
          Returns the subtraction of this matrix and another.
 AbstractIntegerSquareMatrix subtract(AbstractIntegerSquareMatrix m)
          Returns the subtraction of this matrix by another.
 AbstractIntegerSquareMatrix tensor(AbstractIntegerSquareMatrix 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.
 int trace()
          Returns the trace.
 Matrix transpose()
          Returns the transpose of this matrix.
 
Methods inherited from class JSci.maths.matrices.AbstractIntegerMatrix
add, directSum, equals, equals, equals, frobeniusNorm, getElement, getSet, hashCode, infNorm, multiply, multiply, multiply, scalarDivide, scalarMultiply, setElement, subtract, tensor, toString
 
Methods inherited from class JSci.maths.matrices.Matrix
columns, getInvalidElementMsg, rows
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

luCache

protected transient DoubleLUCache luCache
Constructor Detail

AbstractIntegerSquareMatrix

protected AbstractIntegerSquareMatrix(int size)
Constructs a matrix.

Method Detail

toDoubleMatrix

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

Overrides:
toDoubleMatrix in class AbstractIntegerMatrix
Returns:
a double square matrix

toComplexMatrix

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

Overrides:
toComplexMatrix in class AbstractIntegerMatrix
Returns:
a complex square matrix

isSymmetric

public boolean isSymmetric()
Returns true if this matrix is symmetric.


isUnitary

public boolean isUnitary()
Returns true if this matrix is unitary.


det

public int det()
Returns the determinant.


trace

public int trace()
Returns the trace.


negate

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

Specified by:
negate in interface AbelianGroup.Member
Overrides:
negate in class AbstractIntegerMatrix

add

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

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

add

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

Parameters:
m - a int square matrix
Throws:
MatrixDimensionException - If the matrices are different sizes.

subtract

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

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

subtract

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

Parameters:
m - a int square matrix
Throws:
MatrixDimensionException - 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 square matrix.

scalarProduct

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

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

scalarProduct

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

Parameters:
m - a int square matrix.
Throws:
MatrixDimensionException - If the matrices are different sizes.

multiply

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

Parameters:
m - a int square matrix
Throws:
MatrixDimensionException - If the matrices are different sizes.

directSum

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


tensor

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


transpose

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

Overrides:
transpose in class AbstractIntegerMatrix
Returns:
a int square matrix

inverse

public AbstractDoubleSquareMatrix inverse()
Returns the inverse of this matrix.

Returns:
a double square matrix.

luDecompose

public AbstractDoubleSquareMatrix[] luDecompose(int[] pivot)
Returns the LU decomposition of this matrix.

Parameters:
pivot - an empty array of length rows()+1 to hold the pivot information (null if not interested). The last array element will contain the parity.
Returns:
an array with [0] containing the L-matrix and [1] containing the U-matrix.
PlanetMath references:
LUDecomposition

luDecompose_cache

protected AbstractDoubleSquareMatrix[] luDecompose_cache(int[] pivot)

luDecompose

public AbstractDoubleSquareMatrix[] luDecompose()
Returns the LU decomposition of this matrix. Warning: no pivoting.

Returns:
an array with [0] containing the L-matrix and [1] containing the U-matrix.
PlanetMath references:
LUDecomposition

choleskyDecompose

public AbstractDoubleSquareMatrix[] choleskyDecompose()
Returns the Cholesky decomposition of this matrix. Matrix must be symmetric and positive definite.

Returns:
an array with [0] containing the L-matrix and [1] containing the U-matrix.
PlanetMath references:
CholeskyDecomposition

qrDecompose

public AbstractDoubleSquareMatrix[] qrDecompose()
Returns the QR decomposition of this matrix. Based on the code from JAMA (public domain).

Returns:
an array with [0] containing the Q-matrix and [1] containing the R-matrix.
PlanetMath references:
QRDecomposition

singularValueDecompose

public AbstractDoubleSquareMatrix[] singularValueDecompose()
Returns the singular value decomposition of this matrix. Based on the code from JAMA (public domain).

Returns:
an array with [0] containing the U-matrix, [1] containing the S-matrix and [2] containing the V-matrix.
PlanetMath references:
SingularValueDecomposition