JSci.maths.vectors
Class ComplexVector

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

public class ComplexVector
extends AbstractComplexVector

An array-based implementation of a complex vector.

See Also:
Serialized Form

Field Summary
protected  double[] vectorIm
           
protected  double[] vectorRe
          Arrays containing the components of the vector.
 
Fields inherited from class JSci.maths.vectors.MathVector
N
 
Constructor Summary
ComplexVector(Complex[] array)
          Constructs a vector from an array.
ComplexVector(double[] real, double[] imag)
          Constructs a vector by wrapping two arrays.
ComplexVector(int dim)
          Constructs an empty vector.
 
Method Summary
 AbelianGroup.Member add(AbelianGroup.Member v)
          Returns the addition of this vector and another.
 AbstractComplexVector add(AbstractComplexVector v)
          Returns the addition of this vector and another.
 AbstractComplexVector add(AbstractDoubleVector v)
          Returns the addition of this vector and another.
 AbstractComplexVector add(AbstractIntegerVector v)
          Returns the addition of this vector and another.
 ComplexVector add(ComplexVector v)
           
 ComplexVector add(DoubleVector v)
           
 ComplexVector add(IntegerVector v)
           
 AbstractComplexVector conjugate()
          Returns the complex conjugate of this vector.
 boolean equals(java.lang.Object a, double tol)
          Compares two complex vectors for equality.
 Complex getComponent(int n)
          Returns a component of this vector.
 double getImagComponent(int n)
           
 double getRealComponent(int n)
           
 AbstractDoubleVector imag()
          Returns the imaginary part of this complex vector.
 double infNorm()
          Returns the linfinity-norm.
 AbstractComplexVector mapComponents(ComplexMapping 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).
 AbstractDoubleVector real()
          Returns the real part of this complex vector.
 AbstractComplexVector scalarDivide(Complex z)
          Returns the division of this vector by a scalar.
 AbstractComplexVector 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.
 AbstractComplexVector scalarMultiply(Complex z)
          Returns the multiplication of this vector by a scalar.
 AbstractComplexVector 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.
 Complex scalarProduct(AbstractComplexVector v)
          Returns the scalar product of this vector and another.
 Complex scalarProduct(HilbertSpace.Member v)
          Returns the scalar product of this vector and another.
 void setComponent(int n, Complex z)
          Sets the value of a component of this vector.
 void setComponent(int n, double x, double y)
          Sets the value of a component of this vector.
 AbelianGroup.Member subtract(AbelianGroup.Member v)
          Returns the subtraction of this vector by another.
 AbstractComplexVector subtract(AbstractComplexVector v)
          Returns the subtraction of this vector by another.
 AbstractComplexVector subtract(AbstractDoubleVector v)
          Returns the subtraction of this vector by another.
 AbstractComplexVector subtract(AbstractIntegerVector v)
          Returns the subtraction of this vector by another.
 ComplexVector subtract(ComplexVector v)
           
 ComplexVector subtract(DoubleVector v)
           
 ComplexVector subtract(IntegerVector v)
           
 java.lang.String toString()
          Returns a comma delimited string representing the value of this vector.
 
Methods inherited from class JSci.maths.vectors.AbstractComplexVector
equals, getSet, hashCode, 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

vectorRe

protected double[] vectorRe
Arrays containing the components of the vector.


vectorIm

protected double[] vectorIm
Constructor Detail

ComplexVector

public ComplexVector(int dim)
Constructs an empty vector.

Parameters:
dim - the dimension of the vector.

ComplexVector

public ComplexVector(double[] real,
                     double[] imag)
Constructs a vector by wrapping two arrays.

Parameters:
real - an array of real values
imag - an array of imaginary values

ComplexVector

public ComplexVector(Complex[] array)
Constructs a vector from an array.

Parameters:
array - an assigned value
Method Detail

equals

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

Overrides:
equals in class AbstractComplexVector
Parameters:
a - a complex vector

toString

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

Overrides:
toString in class AbstractComplexVector

real

public AbstractDoubleVector real()
Returns the real part of this complex vector.

Specified by:
real in class AbstractComplexVector

imag

public AbstractDoubleVector imag()
Returns the imaginary part of this complex vector.

Specified by:
imag in class AbstractComplexVector

getComponent

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

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

getRealComponent

public double getRealComponent(int n)
Specified by:
getRealComponent in class AbstractComplexVector

getImagComponent

public double getImagComponent(int n)
Specified by:
getImagComponent in class AbstractComplexVector

setComponent

public void setComponent(int n,
                         Complex z)
Sets the value of a component of this vector. Should only be used to initialise this vector.

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

setComponent

public void setComponent(int n,
                         double x,
                         double y)
Sets the value of a component of this vector. Should only be used to initialise this vector.

Specified by:
setComponent in class AbstractComplexVector
Parameters:
n - index of the vector component
x - the real part of a complex number
y - the imaginary part of a complex number
Throws:
VectorDimensionException - If attempting to access an invalid component.

norm

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

Specified by:
norm in interface BanachSpace.Member
Overrides:
norm in class AbstractComplexVector

infNorm

public double infNorm()
Returns the linfinity-norm.

Overrides:
infNorm in class AbstractComplexVector

negate

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


conjugate

public AbstractComplexVector conjugate()
Returns the complex conjugate of this vector.

Specified by:
conjugate in class AbstractComplexVector

add

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

Parameters:
v - a group member

add

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

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

add

public ComplexVector add(ComplexVector v)

add

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

Parameters:
v - a double vector
Throws:
VectorDimensionException - If the vectors are different sizes.

add

public ComplexVector add(DoubleVector v)

add

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

Parameters:
v - an integer vector
Throws:
VectorDimensionException - If the vectors are different sizes.

add

public ComplexVector add(IntegerVector v)

subtract

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

Parameters:
v - a group member

subtract

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

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

subtract

public ComplexVector subtract(ComplexVector v)

subtract

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

Parameters:
v - a double vector
Throws:
VectorDimensionException - If the vectors are different sizes.

subtract

public ComplexVector subtract(DoubleVector v)

subtract

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

Parameters:
v - an integer vector
Throws:
VectorDimensionException - If the vectors are different sizes.

subtract

public ComplexVector subtract(IntegerVector 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 AbstractComplexVector scalarMultiply(Complex z)
Returns the multiplication of this vector by a scalar.

Specified by:
scalarMultiply in class AbstractComplexVector
Parameters:
z - a complex number

scalarMultiply

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

Specified by:
scalarMultiply in class AbstractComplexVector
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 AbstractComplexVector scalarDivide(Complex z)
Returns the division of this vector by a scalar.

Specified by:
scalarDivide in class AbstractComplexVector
Parameters:
z - a complex number
Throws:
java.lang.ArithmeticException - If divide by zero.

scalarDivide

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

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

scalarProduct

public Complex scalarProduct(HilbertSpace.Member v)
Returns the scalar product of this vector and another.

Parameters:
v - a Hilbert space vector

scalarProduct

public Complex scalarProduct(AbstractComplexVector v)
Returns the scalar product of this vector and another.

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

mapComponents

public AbstractComplexVector mapComponents(ComplexMapping f)
Applies a function on all the vector components.

Specified by:
mapComponents in class AbstractComplexVector
Parameters:
f - a user-defined function
Returns:
a complex vector