Class Complex
- java.lang.Object
-
- org.hipparchus.complex.Complex
-
- All Implemented Interfaces:
Serializable
,FieldElement<Complex>
public class Complex extends Object implements FieldElement<Complex>, Serializable
Representation of a Complex number, i.e. a number which has both a real and imaginary part.Implementations of arithmetic operations handle
NaN
and infinite values according to the rules forDouble
, i.e.equals(java.lang.Object)
is an equivalence relation for all instances that have aNaN
in either real or imaginary part, e.g. the following are considered equal:1 + NaNi
NaN + i
NaN + NaNi
Note that this contradicts the IEEE-754 standard for floating point numbers (according to which the test
x == x
must fail ifx
isNaN
). The methodequals for primitive double
inPrecision
conforms with IEEE-754 while this class conforms with the standard behavior for Java object types.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static Complex
I
The square root of -1.static Complex
INF
A complex number representing "+INF + INFi"static Complex
NaN
A complex number representing "NaN + NaNi"static Complex
ONE
A complex number representing "1.0 + 0.0i"static Complex
ZERO
A complex number representing "0.0 + 0.0i"
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description double
abs()
Return the absolute value of this complex number.Complex
acos()
Compute the inverse cosine of this complex number.Complex
add(double addend)
Returns aComplex
whose value is(this + addend)
, withaddend
interpreted as a real number.Complex
add(Complex addend)
Returns aComplex
whose value is(this + addend)
.Complex
asin()
Compute the inverse sine of this complex number.Complex
atan()
Compute the inverse tangent of this complex number.Complex
conjugate()
Returns the conjugate of this complex number.Complex
cos()
Compute the cosine of this complex number.Complex
cosh()
Compute the hyperbolic cosine of this complex number.protected Complex
createComplex(double realPart, double imaginaryPart)
Create a complex number given the real and imaginary parts.Complex
divide(double divisor)
Returns aComplex
whose value is(this / divisor)
, withdivisor
interpreted as a real number.Complex
divide(Complex divisor)
Returns aComplex
whose value is(this / divisor)
.boolean
equals(Object other)
Test for equality with another object.static boolean
equals(Complex x, Complex y)
Returnstrue
iff the values are equal as defined byequals(x, y, 1)
.static boolean
equals(Complex x, Complex y, double eps)
Returnstrue
if, both for the real part and for the imaginary part, there is no double value strictly between the arguments or the difference between them is within the range of allowed error (inclusive).static boolean
equals(Complex x, Complex y, int maxUlps)
Test for the floating-point equality between Complex objects.static boolean
equalsWithRelativeTolerance(Complex x, Complex y, double eps)
Returnstrue
if, both for the real part and for the imaginary part, there is no double value strictly between the arguments or the relative difference between them is smaller or equal to the given tolerance.Complex
exp()
Compute the exponential function of this complex number.double
getArgument()
Compute the argument of this complex number.ComplexField
getField()
Get theField
to which the instance belongs.double
getImaginary()
Access the imaginary part.double
getReal()
Access the real part.int
hashCode()
Get a hashCode for the complex number.boolean
isInfinite()
Checks whether either the real or imaginary part of this complex number takes an infinite value (eitherDouble.POSITIVE_INFINITY
orDouble.NEGATIVE_INFINITY
) and neither part isNaN
.boolean
isNaN()
Checks whether either or both parts of this complex number isNaN
.Complex
log()
Compute the natural logarithm of this complex number.Complex
multiply(double factor)
Returns aComplex
whose value isthis * factor
, withfactor
interpreted as a real number.Complex
multiply(int factor)
Returns aComplex
whose value isthis * factor
, withfactor
interpreted as a integer number.Complex
multiply(Complex factor)
Returns aComplex
whose value isthis * factor
.Complex
negate()
Returns aComplex
whose value is(-this)
.List<Complex>
nthRoot(int n)
Computes the n-th roots of this complex number.Complex
pow(double x)
Returns of value of this complex number raised to the power ofx
.Complex
pow(Complex x)
Returns of value of this complex number raised to the power ofx
.protected Object
readResolve()
Resolve the transient fields in a deserialized Complex Object.Complex
reciprocal()
Returns the multiplicative inverse ofthis
element.Complex
sin()
Compute the sine of this complex number.Complex
sinh()
Compute the hyperbolic sine of this complex number.Complex
sqrt()
Compute the square root of this complex number.Complex
sqrt1z()
Compute the square root of1 - this2
for this complex number.Complex
subtract(double subtrahend)
Returns aComplex
whose value is(this - subtrahend)
.Complex
subtract(Complex subtrahend)
Returns aComplex
whose value is(this - subtrahend)
.Complex
tan()
Compute the tangent of this complex number.Complex
tanh()
Compute the hyperbolic tangent of this complex number.String
toString()
static Complex
valueOf(double realPart)
Create a complex number given only the real part.static Complex
valueOf(double realPart, double imaginaryPart)
Create a complex number given the real and imaginary parts.
-
-
-
Field Detail
-
I
public static final Complex I
The square root of -1. A number representing "0.0 + 1.0i"
-
NaN
public static final Complex NaN
A complex number representing "NaN + NaNi"
-
INF
public static final Complex INF
A complex number representing "+INF + INFi"
-
ONE
public static final Complex ONE
A complex number representing "1.0 + 0.0i"
-
ZERO
public static final Complex ZERO
A complex number representing "0.0 + 0.0i"
-
-
Constructor Detail
-
Complex
public Complex(double real)
Create a complex number given only the real part.- Parameters:
real
- Real part.
-
Complex
public Complex(double real, double imaginary)
Create a complex number given the real and imaginary parts.- Parameters:
real
- Real part.imaginary
- Imaginary part.
-
-
Method Detail
-
abs
public double abs()
Return the absolute value of this complex number. ReturnsNaN
if either real or imaginary part isNaN
andDouble.POSITIVE_INFINITY
if neither part isNaN
, but at least one part is infinite.- Returns:
- the absolute value.
-
add
public Complex add(Complex addend) throws NullArgumentException
Returns aComplex
whose value is(this + addend)
. Uses the definitional formula(a + bi) + (c + di) = (a+c) + (b+d)i
this
oraddend
has aNaN
value in either part,NaN
is returned; otherwiseInfinite
andNaN
values are returned in the parts of the result according to the rules forDouble
arithmetic.- Specified by:
add
in interfaceFieldElement<Complex>
- Parameters:
addend
- Value to be added to thisComplex
.- Returns:
this + addend
.- Throws:
NullArgumentException
- ifaddend
isnull
.
-
add
public Complex add(double addend)
Returns aComplex
whose value is(this + addend)
, withaddend
interpreted as a real number.- Parameters:
addend
- Value to be added to thisComplex
.- Returns:
this + addend
.- See Also:
add(Complex)
-
conjugate
public Complex conjugate()
Returns the conjugate of this complex number. The conjugate ofa + bi
isa - bi
.NaN
is returned if either the real or imaginary part of this Complex number equalsDouble.NaN
.If the imaginary part is infinite, and the real part is not
NaN
, the returned value has infinite imaginary part of the opposite sign, e.g. the conjugate of1 + POSITIVE_INFINITY i
is1 - NEGATIVE_INFINITY i
.- Returns:
- the conjugate of this Complex object.
-
divide
public Complex divide(Complex divisor) throws NullArgumentException
Returns aComplex
whose value is(this / divisor)
. Implements the definitional formulaa + bi ac + bd + (bc - ad)i ----------- = ------------------------- c + di c2 + d2
Infinite
andNaN
values are handled according to the following rules, applied in the order presented:- If either
this
ordivisor
has aNaN
value in either part,NaN
is returned. - If
divisor
equalsZERO
,NaN
is returned. - If
this
anddivisor
are both infinite,NaN
is returned. - If
this
is finite (i.e., has noInfinite
orNaN
parts) anddivisor
is infinite (one or both parts infinite),ZERO
is returned. - If
this
is infinite anddivisor
is finite,NaN
values are returned in the parts of the result if theDouble
rules applied to the definitional formula forceNaN
results.
- Specified by:
divide
in interfaceFieldElement<Complex>
- Parameters:
divisor
- Value by which thisComplex
is to be divided.- Returns:
this / divisor
.- Throws:
NullArgumentException
- ifdivisor
isnull
.
- If either
-
divide
public Complex divide(double divisor)
Returns aComplex
whose value is(this / divisor)
, withdivisor
interpreted as a real number.- Parameters:
divisor
- Value by which thisComplex
is to be divided.- Returns:
this / divisor
.- See Also:
divide(Complex)
-
reciprocal
public Complex reciprocal()
Returns the multiplicative inverse ofthis
element.- Specified by:
reciprocal
in interfaceFieldElement<Complex>
- Returns:
- the inverse of
this
.
-
equals
public boolean equals(Object other)
Test for equality with another object. If both the real and imaginary parts of two complex numbers are exactly the same, and neither isDouble.NaN
, the two Complex objects are considered to be equal. The behavior is the same as for JDK'sDouble
:- All
NaN
values are considered to be equal, i.e, if either (or both) real and imaginary parts of the complex number are equal toDouble.NaN
, the complex number is equal toNaN
. - Instances constructed with different representations of zero (i.e. either "0" or "-0") are not considered to be equal.
- All
-
equals
public static boolean equals(Complex x, Complex y, int maxUlps)
Test for the floating-point equality between Complex objects. It returnstrue
if both arguments are equal or within the range of allowed error (inclusive).- Parameters:
x
- First value (cannot benull
).y
- Second value (cannot benull
).maxUlps
-(maxUlps - 1)
is the number of floating point values between the real (resp. imaginary) parts ofx
andy
.- Returns:
true
if there are fewer thanmaxUlps
floating point values between the real (resp. imaginary) parts ofx
andy
.- See Also:
Precision.equals(double,double,int)
-
equals
public static boolean equals(Complex x, Complex y)
Returnstrue
iff the values are equal as defined byequals(x, y, 1)
.- Parameters:
x
- First value (cannot benull
).y
- Second value (cannot benull
).- Returns:
true
if the values are equal.
-
equals
public static boolean equals(Complex x, Complex y, double eps)
Returnstrue
if, both for the real part and for the imaginary part, there is no double value strictly between the arguments or the difference between them is within the range of allowed error (inclusive). Returnsfalse
if either of the arguments is NaN.- Parameters:
x
- First value (cannot benull
).y
- Second value (cannot benull
).eps
- Amount of allowed absolute error.- Returns:
true
if the values are two adjacent floating point numbers or they are within range of each other.- See Also:
Precision.equals(double,double,double)
-
equalsWithRelativeTolerance
public static boolean equalsWithRelativeTolerance(Complex x, Complex y, double eps)
Returnstrue
if, both for the real part and for the imaginary part, there is no double value strictly between the arguments or the relative difference between them is smaller or equal to the given tolerance. Returnsfalse
if either of the arguments is NaN.- Parameters:
x
- First value (cannot benull
).y
- Second value (cannot benull
).eps
- Amount of allowed relative error.- Returns:
true
if the values are two adjacent floating point numbers or they are within range of each other.- See Also:
Precision.equalsWithRelativeTolerance(double,double,double)
-
hashCode
public int hashCode()
Get a hashCode for the complex number. AnyDouble.NaN
value in real or imaginary part produces the same hash code7
.
-
getImaginary
public double getImaginary()
Access the imaginary part.- Returns:
- the imaginary part.
-
getReal
public double getReal()
Access the real part.- Returns:
- the real part.
-
isNaN
public boolean isNaN()
Checks whether either or both parts of this complex number isNaN
.- Returns:
- true if either or both parts of this complex number is
NaN
; false otherwise.
-
isInfinite
public boolean isInfinite()
Checks whether either the real or imaginary part of this complex number takes an infinite value (eitherDouble.POSITIVE_INFINITY
orDouble.NEGATIVE_INFINITY
) and neither part isNaN
.- Returns:
- true if one or both parts of this complex number are infinite
and neither part is
NaN
.
-
multiply
public Complex multiply(Complex factor) throws NullArgumentException
Returns aComplex
whose value isthis * factor
. Implements preliminary checks forNaN
and infinity followed by the definitional formula:(a + bi)(c + di) = (ac - bd) + (ad + bc)i
NaN
if eitherthis
orfactor
has one or moreNaN
parts.Returns
INF
if neitherthis
norfactor
has one or moreNaN
parts and if eitherthis
orfactor
has one or more infinite parts (same result is returned regardless of the sign of the components).Returns finite values in components of the result per the definitional formula in all remaining cases.
- Specified by:
multiply
in interfaceFieldElement<Complex>
- Parameters:
factor
- value to be multiplied by thisComplex
.- Returns:
this * factor
.- Throws:
NullArgumentException
- iffactor
isnull
.
-
multiply
public Complex multiply(int factor)
Returns aComplex
whose value isthis * factor
, withfactor
interpreted as a integer number.- Specified by:
multiply
in interfaceFieldElement<Complex>
- Parameters:
factor
- value to be multiplied by thisComplex
.- Returns:
this * factor
.- See Also:
multiply(Complex)
-
multiply
public Complex multiply(double factor)
Returns aComplex
whose value isthis * factor
, withfactor
interpreted as a real number.- Parameters:
factor
- value to be multiplied by thisComplex
.- Returns:
this * factor
.- See Also:
multiply(Complex)
-
negate
public Complex negate()
Returns aComplex
whose value is(-this)
. ReturnsNaN
if either real or imaginary part of this Complex number isDouble.NaN
.- Specified by:
negate
in interfaceFieldElement<Complex>
- Returns:
-this
.
-
subtract
public Complex subtract(Complex subtrahend) throws NullArgumentException
Returns aComplex
whose value is(this - subtrahend)
. Uses the definitional formula(a + bi) - (c + di) = (a-c) + (b-d)i
this
orsubtrahend
has aNaN]
value in either part,NaN
is returned; otherwise infinite andNaN
values are returned in the parts of the result according to the rules forDouble
arithmetic.- Specified by:
subtract
in interfaceFieldElement<Complex>
- Parameters:
subtrahend
- value to be subtracted from thisComplex
.- Returns:
this - subtrahend
.- Throws:
NullArgumentException
- ifsubtrahend
isnull
.
-
subtract
public Complex subtract(double subtrahend)
Returns aComplex
whose value is(this - subtrahend)
.- Parameters:
subtrahend
- value to be subtracted from thisComplex
.- Returns:
this - subtrahend
.- See Also:
subtract(Complex)
-
acos
public Complex acos()
Compute the inverse cosine of this complex number. Implements the formula:acos(z) = -i (log(z + i (sqrt(1 - z<sup>2</sup>))))
NaN
if either real or imaginary part of the input argument isNaN
or infinite.- Returns:
- the inverse cosine of this complex number.
-
asin
public Complex asin()
Compute the inverse sine of this complex number. Implements the formula:asin(z) = -i (log(sqrt(1 - z<sup>2</sup>) + iz))
Returns
NaN
if either real or imaginary part of the input argument isNaN
or infinite.- Returns:
- the inverse sine of this complex number.
-
atan
public Complex atan()
Compute the inverse tangent of this complex number. Implements the formula:atan(z) = (i/2) log((i + z)/(i - z))
Returns
NaN
if either real or imaginary part of the input argument isNaN
or infinite.- Returns:
- the inverse tangent of this complex number
-
cos
public Complex cos()
Compute the cosine of this complex number. Implements the formula:cos(a + bi) = cos(a)cosh(b) - sin(a)sinh(b)i
where the (real) functions on the right-hand side are
FastMath.sin(double)
,FastMath.cos(double)
,FastMath.cosh(double)
andFastMath.sinh(double)
.Returns
NaN
if either real or imaginary part of the input argument isNaN
.Infinite values in real or imaginary parts of the input may result in infinite or NaN values returned in parts of the result.
Examples:
cos(1 ± INFINITY i) = 1 ∓ INFINITY i cos(±INFINITY + i) = NaN + NaN i cos(±INFINITY ± INFINITY i) = NaN + NaN i
- Returns:
- the cosine of this complex number.
-
cosh
public Complex cosh()
Compute the hyperbolic cosine of this complex number. Implements the formula:cosh(a + bi) = cosh(a)cos(b) + sinh(a)sin(b)i
FastMath.sin(double)
,FastMath.cos(double)
,FastMath.cosh(double)
andFastMath.sinh(double)
.Returns
Infinite values in real or imaginary parts of the input may result in infinite or NaN values returned in parts of the result.NaN
if either real or imaginary part of the input argument isNaN
.Examples:
cosh(1 ± INFINITY i) = NaN + NaN i cosh(±INFINITY + i) = INFINITY ± INFINITY i cosh(±INFINITY ± INFINITY i) = NaN + NaN i
- Returns:
- the hyperbolic cosine of this complex number.
-
exp
public Complex exp()
Compute the exponential function of this complex number. Implements the formula:exp(a + bi) = exp(a)cos(b) + exp(a)sin(b)i
FastMath.exp(double)
,FastMath.cos(double)
, andFastMath.sin(double)
.Returns
Infinite values in real or imaginary parts of the input may result in infinite or NaN values returned in parts of the result.NaN
if either real or imaginary part of the input argument isNaN
.Examples:
exp(1 ± INFINITY i) = NaN + NaN i exp(INFINITY + i) = INFINITY + INFINITY i exp(-INFINITY + i) = 0 + 0i exp(±INFINITY ± INFINITY i) = NaN + NaN i
- Returns:
ethis
.
-
log
public Complex log()
Compute the natural logarithm of this complex number. Implements the formula:log(a + bi) = ln(|a + bi|) + arg(a + bi)i
FastMath.log(double)
,|a + bi|
is the modulus,abs()
, andarg(a + bi) =
FastMath.atan2(double, double)
(b, a).Returns
Infinite (or critical) values in real or imaginary parts of the input may result in infinite or NaN values returned in parts of the result.NaN
if either real or imaginary part of the input argument isNaN
.Examples:
log(1 ± INFINITY i) = INFINITY ± (π/2)i log(INFINITY + i) = INFINITY + 0i log(-INFINITY + i) = INFINITY + πi log(INFINITY ± INFINITY i) = INFINITY ± (π/4)i log(-INFINITY ± INFINITY i) = INFINITY ± (3π/4)i log(0 + 0i) = -INFINITY + 0i
- Returns:
- the value
ln this
, the natural logarithm ofthis
.
-
pow
public Complex pow(Complex x) throws NullArgumentException
Returns of value of this complex number raised to the power ofx
. Implements the formula:yx = exp(x·log(y))
exp
andlog
areexp()
andlog()
, respectively.Returns
NaN
if either real or imaginary part of the input argument isNaN
or infinite, or ify
equalsZERO
.- Parameters:
x
- exponent to which thisComplex
is to be raised.- Returns:
thisx
.- Throws:
NullArgumentException
- if x isnull
.
-
pow
public Complex pow(double x)
Returns of value of this complex number raised to the power ofx
.- Parameters:
x
- exponent to which thisComplex
is to be raised.- Returns:
thisx
.- See Also:
pow(Complex)
-
sin
public Complex sin()
Compute the sine of this complex number. Implements the formula:sin(a + bi) = sin(a)cosh(b) - cos(a)sinh(b)i
FastMath.sin(double)
,FastMath.cos(double)
,FastMath.cosh(double)
andFastMath.sinh(double)
.Returns
NaN
if either real or imaginary part of the input argument isNaN
.Infinite values in real or imaginary parts of the input may result in infinite or
NaN
values returned in parts of the result.Examples:
sin(1 ± INFINITY i) = 1 ± INFINITY i sin(±INFINITY + i) = NaN + NaN i sin(±INFINITY ± INFINITY i) = NaN + NaN i
- Returns:
- the sine of this complex number.
-
sinh
public Complex sinh()
Compute the hyperbolic sine of this complex number. Implements the formula:sinh(a + bi) = sinh(a)cos(b)) + cosh(a)sin(b)i
FastMath.sin(double)
,FastMath.cos(double)
,FastMath.cosh(double)
andFastMath.sinh(double)
.Returns
NaN
if either real or imaginary part of the input argument isNaN
.Infinite values in real or imaginary parts of the input may result in infinite or NaN values returned in parts of the result.
Examples:
sinh(1 ± INFINITY i) = NaN + NaN i sinh(±INFINITY + i) = ± INFINITY + INFINITY i sinh(±INFINITY ± INFINITY i) = NaN + NaN i
- Returns:
- the hyperbolic sine of
this
.
-
sqrt
public Complex sqrt()
Compute the square root of this complex number. Implements the following algorithm to computesqrt(a + bi)
:- Let
t = sqrt((|a| + |a + bi|) / 2)
if
a ≥ 0
returnt + (b/2t)i
else return|b|/2t + sign(b)t i
|a| =
FastMath.abs(int)
(a)|a + bi| =
abs()
(a + bi)sign(b) =
copySign(1d, b)
Returns
Infinite values in real or imaginary parts of the input may result in infinite or NaN values returned in parts of the result.NaN
if either real or imaginary part of the input argument isNaN
.Examples:
sqrt(1 ± INFINITY i) = INFINITY + NaN i sqrt(INFINITY + i) = INFINITY + 0i sqrt(-INFINITY + i) = 0 + INFINITY i sqrt(INFINITY ± INFINITY i) = INFINITY + NaN i sqrt(-INFINITY ± INFINITY i) = NaN ± INFINITY i
- Returns:
- the square root of
this
.
- Let
-
sqrt1z
public Complex sqrt1z()
Compute the square root of1 - this2
for this complex number. Computes the result directly assqrt(ONE.subtract(z.multiply(z)))
.Returns
Infinite values in real or imaginary parts of the input may result in infinite or NaN values returned in parts of the result.NaN
if either real or imaginary part of the input argument isNaN
.- Returns:
- the square root of
1 - this2
.
-
tan
public Complex tan()
Compute the tangent of this complex number. Implements the formula:tan(a + bi) = sin(2a)/(cos(2a)+cosh(2b)) + [sinh(2b)/(cos(2a)+cosh(2b))]i
FastMath.sin(double)
,FastMath.cos(double)
,FastMath.cosh(double)
andFastMath.sinh(double)
.Returns
Infinite (or critical) values in real or imaginary parts of the input may result in infinite or NaN values returned in parts of the result.NaN
if either real or imaginary part of the input argument isNaN
.Examples:
tan(a ± INFINITY i) = 0 ± i tan(±INFINITY + bi) = NaN + NaN i tan(±INFINITY ± INFINITY i) = NaN + NaN i tan(±π/2 + 0 i) = ±INFINITY + NaN i
- Returns:
- the tangent of
this
.
-
tanh
public Complex tanh()
Compute the hyperbolic tangent of this complex number. Implements the formula:tan(a + bi) = sinh(2a)/(cosh(2a)+cos(2b)) + [sin(2b)/(cosh(2a)+cos(2b))]i
FastMath.sin(double)
,FastMath.cos(double)
,FastMath.cosh(double)
andFastMath.sinh(double)
.Returns
Infinite values in real or imaginary parts of the input may result in infinite or NaN values returned in parts of the result.NaN
if either real or imaginary part of the input argument isNaN
.Examples:
tanh(a ± INFINITY i) = NaN + NaN i tanh(±INFINITY + bi) = ±1 + 0 i tanh(±INFINITY ± INFINITY i) = NaN + NaN i tanh(0 + (π/2)i) = NaN + INFINITY i
- Returns:
- the hyperbolic tangent of
this
.
-
getArgument
public double getArgument()
Compute the argument of this complex number. The argument is the angle phi between the positive real axis and the point representing this number in the complex plane. The value returned is between -PI (not inclusive) and PI (inclusive), with negative values returned for numbers with negative imaginary parts.If either real or imaginary part (or both) is NaN, NaN is returned. Infinite parts are handled as
Math.atan2
handles them, essentially treating finite parts as zero in the presence of an infinite coordinate and returning a multiple of pi/4 depending on the signs of the infinite parts. See the javadoc forMath.atan2
for full details.- Returns:
- the argument of
this
.
-
nthRoot
public List<Complex> nthRoot(int n) throws MathIllegalArgumentException
Computes the n-th roots of this complex number. The nth roots are defined by the formula:zk = abs1/n (cos(phi + 2πk/n) + i (sin(phi + 2πk/n))
k=0, 1, ..., n-1
, whereabs
andphi
are respectively themodulus
andargument
of this complex number.If one or both parts of this complex number is NaN, a list with just one element,
NaN
is returned. if neither part is NaN, but at least one part is infinite, the result is a one-element list containingINF
.- Parameters:
n
- Degree of root.- Returns:
- a List of all
n
-th roots ofthis
. - Throws:
MathIllegalArgumentException
- ifn <= 0
.
-
createComplex
protected Complex createComplex(double realPart, double imaginaryPart)
Create a complex number given the real and imaginary parts.- Parameters:
realPart
- Real part.imaginaryPart
- Imaginary part.- Returns:
- a new complex number instance.
- See Also:
valueOf(double, double)
-
valueOf
public static Complex valueOf(double realPart, double imaginaryPart)
Create a complex number given the real and imaginary parts.- Parameters:
realPart
- Real part.imaginaryPart
- Imaginary part.- Returns:
- a Complex instance.
-
valueOf
public static Complex valueOf(double realPart)
Create a complex number given only the real part.- Parameters:
realPart
- Real part.- Returns:
- a Complex instance.
-
readResolve
protected final Object readResolve()
Resolve the transient fields in a deserialized Complex Object. Subclasses will need to overridecreateComplex(double, double)
to deserialize properly.- Returns:
- A Complex instance with all fields resolved.
-
getField
public ComplexField getField()
Get theField
to which the instance belongs.- Specified by:
getField
in interfaceFieldElement<Complex>
- Returns:
Field
to which the instance belongs
-
-