JSci.maths.vectors
Class DoubleVector

java.lang.Object
  extended by JSci.maths.vectors.MathVector
      extended by JSci.maths.vectors.AbstractDoubleVector
          extended by JSci.maths.vectors.DoubleVector
All Implemented Interfaces:
java.io.Serializable, BanachSpace.Member, Module.Member, VectorSpace.Member, AbelianGroup.Member, Member

public class DoubleVector
extends AbstractDoubleVector

An array-based implementation of a double vector.

See Also:
Serialized Form

Field Summary
protected  double[] vector
          Array containing the components of the vector.
 
Fields inherited from class JSci.maths.vectors.MathVector
N
 
Constructor Summary
DoubleVector(double[] array)
          Constructs a vector by wrapping an array.
DoubleVector(int dim)
          Constructs an empty vector.
 
Method Summary
 AbelianGroup.Member add(AbelianGroup.Member v)
          Returns the addition of this vector and another.
 AbstractDoubleVector add(AbstractDoubleVector v)
          Returns the addition of this vector and another.
 DoubleVector add(DoubleVector v)
           
 boolean equals(java.lang.Object a, double tol)
          Compares two double vectors for equality.
 double getComponent(int n)
          Returns a component of this vector.
 double infNorm()
          Returns the linfinity-norm.
 AbstractDoubleVector mapComponents(Mapping f)
          Applies a function on all the vector components.
 AbelianGroup.Member negate()
          Returns the negative of this vector.
 double norm()
          Returns the l2-norm (magnitude).
 double norm(int n)
          Returns the ln-norm.
 AbstractDoubleVector scalarDivide(double x)
          Returns the division of this vector by a scalar.
 VectorSpace.Member scalarDivide(Field.Member x)
          Returns the division of this vector by a scalar.
 AbstractDoubleVector scalarMultiply(double x)
          Returns the multiplication of this vector by a scalar.
 Module.Member scalarMultiply(Ring.Member x)
          Returns the multiplication of this vector by a scalar.
 double scalarProduct(AbstractDoubleVector v)
          Returns the scalar product of this vector and another.
 double scalarProduct(DoubleVector v)
           
 void setComponent(int n, double x)
          Sets the value of a component of this vector.
 AbelianGroup.Member subtract(AbelianGroup.Member v)
          Returns the subtraction of this vector by another.
 AbstractDoubleVector subtract(AbstractDoubleVector v)
          Returns the subtraction of this vector by another.
 DoubleVector subtract(DoubleVector v)
           
 AbstractComplexVector toComplexVector()
          Converts this vector to a complex vector.
 AbstractIntegerVector toIntegerVector()
          Converts this vector to an integer vector.
 java.lang.String toString()
          Returns a comma delimited string representing the value of this vector.
 
Methods inherited from class JSci.maths.vectors.AbstractDoubleVector
equals, getSet, hashCode, mass, normalize
 
Methods inherited from class JSci.maths.vectors.MathVector
dimension, getInvalidComponentMsg
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

vector

protected double[] vector
Array containing the components of the vector.

Constructor Detail

DoubleVector

public DoubleVector(int dim)
Constructs an empty vector.

Parameters:
dim - the dimension of the vector.

DoubleVector

public DoubleVector(double[] array)
Constructs a vector by wrapping an array.

Parameters:
array - an assigned value.
Method Detail

equals

public boolean equals(java.lang.Object a,
                      double tol)
Compares two double vectors for equality.

Overrides:
equals in class AbstractDoubleVector
Parameters:
a - a double vector.

toString

public java.lang.String toString()
Returns a comma delimited string representing the value of this vector.

Overrides:
toString in class AbstractDoubleVector

toIntegerVector

public AbstractIntegerVector toIntegerVector()
Converts this vector to an integer vector.

Returns:
an integer vector.

toComplexVector

public AbstractComplexVector toComplexVector()
Converts this vector to a complex vector.

Returns:
a complex vector.

getComponent

public double getComponent(int n)
Returns a component of this vector.

Specified by:
getComponent in class AbstractDoubleVector
Parameters:
n - index of the vector component.
Throws:
VectorDimensionException - If attempting to access an invalid component.

setComponent

public void setComponent(int n,
                         double x)
Sets the value of a component of this vector.

Specified by:
setComponent in class AbstractDoubleVector
Parameters:
n - index of the vector component.
x - a number.
Throws:
VectorDimensionException - If attempting to access an invalid component.

norm

public double norm(int n)
Returns the ln-norm.

Overrides:
norm in class AbstractDoubleVector
PlanetMath references:
VectorPnorm

norm

public double norm()
Returns the l2-norm (magnitude).

Specified by:
norm in interface BanachSpace.Member
Overrides:
norm in class AbstractDoubleVector
PlanetMath references:
VectorPnorm

infNorm

public double infNorm()
Returns the linfinity-norm.

Overrides:
infNorm in class AbstractDoubleVector
PlanetMath references:
VectorPnorm

negate

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


add

public AbelianGroup.Member add(AbelianGroup.Member v)
Returns the addition of this vector and another.

Parameters:
v - a group member

add

public AbstractDoubleVector add(AbstractDoubleVector v)
Returns the addition of this vector and another.

Specified by:
add in class AbstractDoubleVector
Parameters:
v - a double vector.
Throws:
VectorDimensionException - If the vectors are different sizes.

add

public DoubleVector add(DoubleVector v)

subtract

public AbelianGroup.Member subtract(AbelianGroup.Member v)
Returns the subtraction of this vector by another.

Parameters:
v - a group member

subtract

public AbstractDoubleVector subtract(AbstractDoubleVector v)
Returns the subtraction of this vector by another.

Specified by:
subtract in class AbstractDoubleVector
Parameters:
v - a double vector.
Throws:
VectorDimensionException - If the vectors are different sizes.

subtract

public DoubleVector subtract(DoubleVector v)

scalarMultiply

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

Parameters:
x - a ring member

scalarMultiply

public AbstractDoubleVector scalarMultiply(double x)
Returns the multiplication of this vector by a scalar.

Specified by:
scalarMultiply in class AbstractDoubleVector
Parameters:
x - a double.

scalarDivide

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

Parameters:
x - a field member

scalarDivide

public AbstractDoubleVector scalarDivide(double x)
Returns the division of this vector by a scalar.

Specified by:
scalarDivide in class AbstractDoubleVector
Parameters:
x - a double.
Throws:
java.lang.ArithmeticException - If divide by zero.

scalarProduct

public double scalarProduct(AbstractDoubleVector v)
Returns the scalar product of this vector and another.

Specified by:
scalarProduct in class AbstractDoubleVector
Parameters:
v - a double vector.
Throws:
VectorDimensionException - If the vectors are different sizes.

scalarProduct

public double scalarProduct(DoubleVector v)

mapComponents

public AbstractDoubleVector mapComponents(Mapping f)
Applies a function on all the vector components.

Specified by:
mapComponents in class AbstractDoubleVector
Parameters:
f - a user-defined function.
Returns:
a double vector.