org.geotoolkit.math

Class Complex

• All Implemented Interfaces:
Serializable, Cloneable

```public final class Complex
extends Object
implements Cloneable, Serializable```
A simple class for the handling of complex numbers. This is not the purpose of this class to provides a full-fledged library for complex number handling. This class exists mostly for the limited needs of some transformation methods.

For performance reasons, the methods in this class never create new objects. They always operate on an object specified in argument, and store the result in the object on which the method was invoked.

This class is final for performance reason.

Since:
2.2
Version:
3.00
Author:
Justin Deoliveira (TOPP), Martin Desruisseaux (IRD)
Serialized Form

Defined in the `geotk-utility` module

• Field Summary

Fields
Modifier and Type Field and Description
`double` `imag`
The imaginary part of the complex number.
`double` `real`
The real part of the complex number.
• Constructor Summary

Constructors
Constructor and Description
`Complex()`
Creates a complex number initialized to (0,0).
`Complex(Complex c)`
Creates a complex number initialized to the same value than the specified one.
```Complex(double real, double imag)```
Creates a complex number initialized to the specified real and imaginary parts.
• Method Summary

All Methods
Modifier and Type Method and Description
`void` ```add(Complex c1, Complex c2)```
`void` ```addMultiply(Complex c0, Complex c1, Complex c2)```
Multplies two complex numbers, and add the result to a third one.
`Complex` `clone()`
Returns a copy of this complex number.
`void` `copy(Complex c)`
Set this complex number to the same value than the specified one.
`void` ```divide(Complex c1, Complex c2)```
Divides one complex number by another.
`boolean` `equals(Complex c)`
Returns `true` if this complex number has the same value than the specified one.
`boolean` `equals(Object c)`
Compares this complex with the specified object for equality.
`int` `hashCode()`
Returns a hash value for this complex number.
`void` ```multiply(Complex c1, Complex c2)```
Multplies two complex numbers.
`void` ```multiply(Complex c, double s)```
Multiplies a complex number by a scalar.
`void` ```power(Complex c, int power)```
Computes the integer power of a complex number up to 6.
`String` `toString()`
Returns a string representation of this complex number.
• Methods inherited from class Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`
• Field Detail

• real

`public double real`
The real part of the complex number.
• imag

`public double imag`
The imaginary part of the complex number.
• Constructor Detail

• Complex

`public Complex()`
Creates a complex number initialized to (0,0).
• Complex

`public Complex(Complex c)`
Creates a complex number initialized to the same value than the specified one.
Parameters:
`c` - The complex number to copy.
• Complex

```public Complex(double real,
double imag)```
Creates a complex number initialized to the specified real and imaginary parts.
Parameters:
`real` - The real part.
`imag` - The imaginary part.
• Method Detail

• copy

`public void copy(Complex c)`
Set this complex number to the same value than the specified one. This method computes the following:
`this = c`
Parameters:
`c` - The complex number to copy.
• multiply

```public void multiply(Complex c,
double s)```
Multiplies a complex number by a scalar. This method computes the following:
`this = c * s`
Parameters:
`c` - The complex number to multiply with the scalar.
`s` - The scalar value to multiply.
• multiply

```public void multiply(Complex c1,
Complex c2)```
Multplies two complex numbers. This method computes the following:
`this = c1 * c2`
Parameters:
`c1` - The first complex number to multiply.
`c2` - The second complex number to multiply.
• divide

```public void divide(Complex c1,
Complex c2)```
Divides one complex number by another. This method computes the following:
`this = c1 / c2`
Parameters:
`c1` - The complex number.
`c2` - The complex divisor.

```public void add(Complex c1,
Complex c2)```
Adds to complex numbers. This method computes the following:
`this = c1 + c2`
Parameters:
`c1` - The first complex number to add.
`c2` - The second complex number to add.

```public void addMultiply(Complex c0,
Complex c1,
Complex c2)```
Multplies two complex numbers, and add the result to a third one. This method computes the following:
`this = c0 + (c1 * c2)`
Parameters:
`c1` - The first complex number to multiply.
`c2` - The second complex number to multiply.
`c0` - The complex number to add to the product.
• power

```public void power(Complex c,
int power)```
Computes the integer power of a complex number up to 6. This method computes the following:
`this = c ^ power`
Parameters:
`c` - The complex number to raise to a power.
`power` - The power to raise the complex number.
• clone

`public Complex clone()`
Returns a copy of this complex number.
Overrides:
`clone` in class `Object`
Returns:
A copy of this object.
`Object.clone()`
• equals

`public boolean equals(Complex c)`
Returns `true` if this complex number has the same value than the specified one.
Parameters:
`c` - The complex number to compare with this object.
Returns:
`true` if both objects are equal.
• equals

`public boolean equals(Object c)`
Compares this complex with the specified object for equality.
Overrides:
`equals` in class `Object`
Parameters:
`c` - The complex number to compare with this object.
Returns:
`true` if both objects are equal.
• hashCode

`public int hashCode()`
Returns a hash value for this complex number.
Overrides:
`hashCode` in class `Object`
• toString

`public String toString()`
Returns a string representation of this complex number.
Overrides:
`toString` in class `Object`