org.ojalgo.scalar
Class ComplexNumber

java.lang.Object
  extended by java.lang.Number
      extended by org.ojalgo.scalar.ComplexNumber
All Implemented Interfaces:
Serializable, Comparable<ComplexNumber>, Scalar<ComplexNumber>

public final class ComplexNumber
extends Number

ComplexNumber is an immutable complex number class. It only implements the most basic complex number operations. ComplexFunction implements some of the more complicated ones.

Author:
apete
See Also:
ComplexFunction, Serialized Form

Field Summary
static ComplexNumber I
           
static ComplexNumber INFINITY
           
static ComplexNumber ONE
           
static ComplexNumber ZERO
           
 
Constructor Summary
ComplexNumber(double aRealValue)
           
 
Method Summary
 ComplexNumber add(ComplexNumber aNumber)
           
 ComplexNumber add(double aValue)
           
 int compareTo(ComplexNumber aNmbr)
           
 ComplexNumber conjugate()
           
 ComplexNumber divide(ComplexNumber aNumber)
           
 ComplexNumber divide(double aValue)
           
 double doubleValue()
           
 ComplexNumber enforce(NumberContext aCntxt)
           
 boolean equals(Object anObject)
           
 float floatValue()
           
static ComplexNumber fromPolarCoordinates(double aMod, double anArg)
           
static ComplexNumber fromRectangularCoordinates(double aRe, double anIm)
           
 double getArgument()
           
 double getImaginary()
           
 double getModulus()
           
 ComplexNumber getNumber()
           
 double getReal()
           
 int hashCode()
           
 int intValue()
           
 Scalar<ComplexNumber> invert()
           
 boolean isAbsolute()
           
 boolean isInfinite()
           
 boolean isNaN()
           
 boolean isReal()
           
 boolean isZero()
           
 long longValue()
           
 ComplexNumber multiply(ComplexNumber aNumber)
           
 ComplexNumber multiply(double aValue)
           
 ComplexNumber negate()
           
 Scalar<ComplexNumber> power(int anExp)
           
 ComplexNumber root(int anExp)
           
 ComplexNumber subtract(ComplexNumber aNumber)
           
 ComplexNumber subtract(double aValue)
           
 BigDecimal toBigDecimal()
           
 ComplexNumber toComplexNumber()
           
 String toString()
           
 
Methods inherited from class java.lang.Number
byteValue, shortValue
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

I

public static final ComplexNumber I

INFINITY

public static final ComplexNumber INFINITY

ONE

public static final ComplexNumber ONE

ZERO

public static final ComplexNumber ZERO
Constructor Detail

ComplexNumber

public ComplexNumber(double aRealValue)
Method Detail

fromPolarCoordinates

public static ComplexNumber fromPolarCoordinates(double aMod,
                                                 double anArg)

fromRectangularCoordinates

public static ComplexNumber fromRectangularCoordinates(double aRe,
                                                       double anIm)

add

public ComplexNumber add(ComplexNumber aNumber)
See Also:
Scalar.add(double), Scalar.add(Number), Scalar.divide(double), Scalar.divide(Number), Scalar.multiply(double), Scalar.multiply(Number), Scalar.subtract(double), Scalar.subtract(Number)

add

public ComplexNumber add(double aValue)
See Also:
Scalar.add(double), Scalar.add(Number), Scalar.divide(double), Scalar.divide(Number), Scalar.multiply(double), Scalar.multiply(Number), Scalar.subtract(double), Scalar.subtract(Number)

compareTo

public int compareTo(ComplexNumber aNmbr)

conjugate

public ComplexNumber conjugate()
See Also:
Scalar.conjugate(), Scalar.invert(), Scalar.negate()

divide

public ComplexNumber divide(ComplexNumber aNumber)
See Also:
Scalar.add(double), Scalar.add(Number), Scalar.divide(double), Scalar.divide(Number), Scalar.multiply(double), Scalar.multiply(Number), Scalar.subtract(double), Scalar.subtract(Number)

divide

public ComplexNumber divide(double aValue)
See Also:
Scalar.add(double), Scalar.add(Number), Scalar.divide(double), Scalar.divide(Number), Scalar.multiply(double), Scalar.multiply(Number), Scalar.subtract(double), Scalar.subtract(Number)

doubleValue

public double doubleValue()
Specified by:
doubleValue in class Number
See Also:
Number.doubleValue()

enforce

public ComplexNumber enforce(NumberContext aCntxt)

equals

public boolean equals(Object anObject)
Overrides:
equals in class Object
See Also:
Object.equals(java.lang.Object)

floatValue

public float floatValue()
Specified by:
floatValue in class Number
See Also:
Number.floatValue()

getArgument

public double getArgument()
See Also:
Scalar.getArgument(), Scalar.getImaginary(), Scalar.getModulus(), Scalar.getReal()

getImaginary

public double getImaginary()
See Also:
Scalar.getArgument(), Scalar.getImaginary(), Scalar.getModulus(), Scalar.getReal()

getModulus

public double getModulus()
See Also:
Scalar.getArgument(), Scalar.getImaginary(), Scalar.getModulus(), Scalar.getReal()

getNumber

public ComplexNumber getNumber()

getReal

public double getReal()
See Also:
Scalar.getArgument(), Scalar.getImaginary(), Scalar.getModulus(), Scalar.getReal()

hashCode

public int hashCode()
Overrides:
hashCode in class Object
See Also:
Object.hashCode()

intValue

public int intValue()
Specified by:
intValue in class Number
See Also:
Number.intValue()

invert

public Scalar<ComplexNumber> invert()
See Also:
Scalar.conjugate(), Scalar.invert(), Scalar.negate()

isInfinite

public boolean isInfinite()
See Also:
Scalar.isAbsolute(), Scalar.isInfinite(), Scalar.isNaN(), Scalar.isReal(), Scalar.isZero()

isNaN

public boolean isNaN()
See Also:
Scalar.isAbsolute(), Scalar.isInfinite(), Scalar.isNaN(), Scalar.isReal(), Scalar.isZero()

isReal

public boolean isReal()
Returns:
true if the absolute value of the imaginary part is less than or equal to PrimitiveMath.IS_ZERO; otherwise false.
See Also:
Scalar.isAbsolute(), Scalar.isInfinite(), Scalar.isNaN(), Scalar.isReal(), Scalar.isZero()

longValue

public long longValue()
Specified by:
longValue in class Number
See Also:
Number.longValue()

multiply

public ComplexNumber multiply(ComplexNumber aNumber)
See Also:
Scalar.add(double), Scalar.add(Number), Scalar.divide(double), Scalar.divide(Number), Scalar.multiply(double), Scalar.multiply(Number), Scalar.subtract(double), Scalar.subtract(Number)

multiply

public ComplexNumber multiply(double aValue)
See Also:
Scalar.add(double), Scalar.add(Number), Scalar.divide(double), Scalar.divide(Number), Scalar.multiply(double), Scalar.multiply(Number), Scalar.subtract(double), Scalar.subtract(Number)

negate

public ComplexNumber negate()
See Also:
Scalar.conjugate(), Scalar.invert(), Scalar.negate()

power

public Scalar<ComplexNumber> power(int anExp)
See Also:
Scalar.power(int), Scalar.root(int)

root

public ComplexNumber root(int anExp)
See Also:
Scalar.power(int), Scalar.root(int)

subtract

public ComplexNumber subtract(ComplexNumber aNumber)
See Also:
Scalar.add(double), Scalar.add(Number), Scalar.divide(double), Scalar.divide(Number), Scalar.multiply(double), Scalar.multiply(Number), Scalar.subtract(double), Scalar.subtract(Number)

subtract

public ComplexNumber subtract(double aValue)
See Also:
Scalar.add(double), Scalar.add(Number), Scalar.divide(double), Scalar.divide(Number), Scalar.multiply(double), Scalar.multiply(Number), Scalar.subtract(double), Scalar.subtract(Number)

toBigDecimal

public BigDecimal toBigDecimal()

toComplexNumber

public ComplexNumber toComplexNumber()

toString

public String toString()
Overrides:
toString in class Object
See Also:
Object.toString()

isAbsolute

public final boolean isAbsolute()
Specified by:
isAbsolute in interface Scalar<N extends Number>
Returns:
true if this is equal to its own modulus (non-negative real part and no imaginary part); otherwise false.
See Also:
Scalar.isAbsolute(), Scalar.isInfinite(), Scalar.isNaN(), Scalar.isReal(), Scalar.isZero()

isZero

public final boolean isZero()
Specified by:
isZero in interface Scalar<N extends Number>
Returns:
true if the modulus is less than or equal to PrimitiveMath.IS_ZERO; otherwise false.
See Also:
Scalar.isAbsolute(), Scalar.isInfinite(), Scalar.isNaN(), Scalar.isReal(), Scalar.isZero()