JSci.maths
Class DoubleMatrix

java.lang.Object
  extended by JSci.maths.Matrix
      extended by JSci.maths.DoubleMatrix
All Implemented Interfaces:
java.io.Serializable, Algebra.Member, Module.Member, VectorSpace.Member, Ring.Member, AbelianGroup.Member, Member
Direct Known Subclasses:
DoubleSparseMatrix, DoubleSquareMatrix

public class DoubleMatrix
extends Matrix

The DoubleMatrix class provides an object for encapsulating double matrix algebras.

Version:
2.2
Author:
Mark Hale
See Also:
Serialized Form

Field Summary
protected static int ARRAY_2D
          Storage format identifier.
protected  double[][] matrix
          Array containing the elements of the matrix.
 
Fields inherited from class JSci.maths.Matrix
CLASS_SPECIFIC, numCols, numRows, storageFormat
 
Constructor Summary
  DoubleMatrix(double[][] array)
          Constructs a matrix by wrapping an array.
  DoubleMatrix(DoubleVector[] array)
          Constructs a matrix from an array of vectors (columns).
  DoubleMatrix(int rows, int cols)
          Constructs an empty matrix.
protected DoubleMatrix(int rows, int cols, int storeID)
          Constructs a matrix.
 
Method Summary
 AbelianGroup.Member add(AbelianGroup.Member m)
          Returns the addition of this matrix and another.
 DoubleMatrix add(DoubleMatrix m)
          Returns the addition of this matrix and another.
 DoubleMatrix directSum(DoubleMatrix m)
          Returns the direct sum of this matrix and another.
 boolean equals(java.lang.Object m)
          Compares two double matrices for equality.
protected  void finalize()
          Finalize.
 double frobeniusNorm()
          Returns the Frobenius (l2) norm.
 double getElement(int i, int j)
          Returns an element of the matrix.
 int hashCode()
          Returns a hashcode for this matrix.
 double infNorm()
          Returns the linfinity-norm.
 DoubleMatrix mapElements(Mapping f)
          Applies a function on all the matrix elements.
 DoubleMatrix multiply(DoubleMatrix m)
          Returns the multiplication of this matrix and another.
 DoubleVector multiply(DoubleVector v)
          Returns the multiplication of a vector by this matrix.
 Ring.Member multiply(Ring.Member m)
          Returns the multiplication of this matrix and another.
 AbelianGroup.Member negate()
          Returns the negative of this matrix.
 DoubleMatrix scalarDivide(double x)
          Returns the division of this matrix by a scalar.
 VectorSpace.Member scalarDivide(Field.Member x)
          Returns the division of this matrix by a scalar.
 DoubleMatrix scalarMultiply(double x)
          Returns the multiplication of this matrix by a scalar.
 Module.Member scalarMultiply(Ring.Member x)
          Returns the multiplication of this matrix by a scalar.
 double scalarProduct(DoubleMatrix m)
          Returns the scalar product of this matrix and another.
 void setElement(int i, int j, double x)
          Sets the value of an element of the matrix.
 AbelianGroup.Member subtract(AbelianGroup.Member m)
          Returns the subtraction of this matrix by another.
 DoubleMatrix subtract(DoubleMatrix m)
          Returns the subtraction of this matrix by another.
 DoubleMatrix tensorProduct(DoubleMatrix m)
          Returns the tensor product of this matrix and another.
 ComplexMatrix toComplexMatrix()
          Converts this matrix to a complex matrix.
 IntegerMatrix toIntegerMatrix()
          Converts this matrix to an integer matrix.
 java.lang.String toString()
          Returns a string representing this matrix.
 Matrix transpose()
          Returns the transpose of this matrix.
 
Methods inherited from class JSci.maths.Matrix
columns, getInvalidElementMsg, rows
 
Methods inherited from class java.lang.Object
clone, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

ARRAY_2D

protected static final int ARRAY_2D
Storage format identifier.

See Also:
Constant Field Values

matrix

protected double[][] matrix
Array containing the elements of the matrix.

Constructor Detail

DoubleMatrix

protected DoubleMatrix(int rows,
                       int cols,
                       int storeID)
Constructs a matrix.


DoubleMatrix

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

Parameters:
rows - the number of rows
cols - the number of columns

DoubleMatrix

public DoubleMatrix(double[][] array)
Constructs a matrix by wrapping an array.

Parameters:
array - an assigned value

DoubleMatrix

public DoubleMatrix(DoubleVector[] array)
Constructs a matrix from an array of vectors (columns).

Parameters:
array - an assigned value
Method Detail

finalize

protected void finalize()
                 throws java.lang.Throwable
Finalize.

Overrides:
finalize in class java.lang.Object
Throws:
java.lang.Throwable - Any that occur.

equals

public boolean equals(java.lang.Object m)
Compares two double matrices for equality.

Overrides:
equals in class java.lang.Object
Parameters:
m - a double matrix

toString

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

Overrides:
toString in class java.lang.Object

hashCode

public int hashCode()
Returns a hashcode for this matrix.

Overrides:
hashCode in class java.lang.Object

toIntegerMatrix

public IntegerMatrix toIntegerMatrix()
Converts this matrix to an integer matrix.

Returns:
an integer matrix

toComplexMatrix

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

Returns:
a complex matrix

getElement

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

Parameters:
i - row index of the element
j - column index of the element
Throws:
MatrixDimensionException - If attempting to access an invalid element.

setElement

public void setElement(int i,
                       int j,
                       double x)
Sets the value of an element of the matrix.

Parameters:
i - row index of the element
j - column index of the element
x - a number
Throws:
MatrixDimensionException - If attempting to access an invalid element.

infNorm

public double infNorm()
Returns the linfinity-norm.


frobeniusNorm

public double frobeniusNorm()
Returns the Frobenius (l2) norm.


negate

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


add

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

Parameters:
m - a group member

add

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

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

subtract

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

Parameters:
m - a group member

subtract

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

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

scalarMultiply

public Module.Member scalarMultiply(Ring.Member x)
Returns the multiplication of this matrix by a scalar.

Parameters:
x - a ring member

scalarMultiply

public DoubleMatrix scalarMultiply(double x)
Returns the multiplication of this matrix by a scalar.

Parameters:
x - a double.
Returns:
a double matrix.

scalarDivide

public VectorSpace.Member scalarDivide(Field.Member x)
Returns the division of this matrix by a scalar.

Parameters:
x - a field member

scalarDivide

public DoubleMatrix scalarDivide(double x)
Returns the division of this matrix by a scalar.

Parameters:
x - a double.
Returns:
a double matrix.

scalarProduct

public double scalarProduct(DoubleMatrix m)
Returns the scalar product of this matrix and another.

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

multiply

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

Parameters:
v - a double vector.
Throws:
DimensionException - If the matrix and vector are incompatible.

multiply

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

Parameters:
m - a ring member

multiply

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

Parameters:
m - a double matrix
Returns:
a DoubleMatrix or a DoubleSquareMatrix as appropriate
Throws:
MatrixDimensionException - If the matrices are incompatible.

directSum

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


tensorProduct

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


transpose

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

Specified by:
transpose in class Matrix
Returns:
a double matrix

mapElements

public DoubleMatrix mapElements(Mapping f)
Applies a function on all the matrix elements.

Parameters:
f - a user-defined function
Returns:
a double matrix