JSci.maths
Class DoubleMatrix

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

public class DoubleMatrix
extends JSci.maths.Matrix

The DoubleMatrix class provides an object for encapsulating double matrix algebras. Hendrik: -added multiplyInto() method and -made matrix[][] public -changed DoubleVector.getComponent(n) to DoubleVector.vector[n] -added setValueFrom(DoubleVector[]);

Version:
2.2
Author:
Mark Hale, Hendrik Dahlkamp
See Also:
Serialized Form

Field Summary
protected static int ARRAY_2D
          Storage format identifier.
 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
 JSci.maths.groups.AbelianGroup.Member add(JSci.maths.groups.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(JSci.maths.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.
 JSci.maths.fields.Ring.Member multiply(JSci.maths.fields.Ring.Member m)
          Returns the multiplication of this matrix and another.
 void multiplyInto(DoubleMatrix m, DoubleMatrix target)
           
 void multiplyInto(DoubleVector v, DoubleVector target)
           
 JSci.maths.groups.AbelianGroup.Member negate()
          Returns the negative of this matrix.
private  DoubleMatrix rawAdd(DoubleMatrix m)
           
private  DoubleMatrix rawMultiply(DoubleMatrix m)
           
private  void rawMultiplyInto(DoubleMatrix m, DoubleMatrix target)
           
private  double rawScalarProduct(DoubleMatrix m)
           
private  DoubleMatrix rawSubtract(DoubleMatrix m)
           
 DoubleMatrix scalarDivide(double x)
          Returns the division of this matrix by a scalar.
 JSci.maths.algebras.VectorSpace.Member scalarDivide(JSci.maths.fields.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.
 JSci.maths.algebras.Module.Member scalarMultiply(JSci.maths.fields.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.
 void setValueFrom(DoubleVector[] array)
           
 JSci.maths.groups.AbelianGroup.Member subtract(JSci.maths.groups.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.
 JSci.maths.ComplexMatrix toComplexMatrix()
          Converts this matrix to a complex matrix.
 JSci.maths.IntegerMatrix toIntegerMatrix()
          Converts this matrix to an integer matrix.
 java.lang.String toString()
          Returns a string representing this matrix.
 JSci.maths.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

public 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

setValueFrom

public void setValueFrom(DoubleVector[] array)

finalize

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

Throws:
java.lang.Throwable - Any that occur.

equals

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

Parameters:
m - a double matrix

toString

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


hashCode

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


toIntegerMatrix

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

Returns:
an integer matrix

toComplexMatrix

public JSci.maths.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 JSci.maths.groups.AbelianGroup.Member negate()
Returns the negative of this matrix.


add

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


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.

rawAdd

private DoubleMatrix rawAdd(DoubleMatrix m)

subtract

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


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.

rawSubtract

private DoubleMatrix rawSubtract(DoubleMatrix m)

scalarMultiply

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


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 JSci.maths.algebras.VectorSpace.Member scalarDivide(JSci.maths.fields.Field.Member x)
Returns the division of this matrix by a scalar.


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.

rawScalarProduct

private double rawScalarProduct(DoubleMatrix m)

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.

multiplyInto

public void multiplyInto(DoubleVector v,
                         DoubleVector target)

multiply

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


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.

rawMultiply

private DoubleMatrix rawMultiply(DoubleMatrix m)

multiplyInto

public void multiplyInto(DoubleMatrix m,
                         DoubleMatrix target)

rawMultiplyInto

private void rawMultiplyInto(DoubleMatrix m,
                             DoubleMatrix target)

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 JSci.maths.Matrix transpose()
Returns the transpose of this matrix.

Returns:
a double matrix

mapElements

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

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