Class RootsOfUnity
java.lang.Object
org.apache.commons.math3.complex.RootsOfUnity
- All Implemented Interfaces:
Serializable
A helper class for the computation and caching of the
n-th roots of
unity.- Since:
- 3.0
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcomputeRoots(int n) Computes then-th roots of unity.doublegetImaginary(int k) Get the imaginary part of thek-thn-th root of unity.intReturns the number of roots of unity currently stored.doublegetReal(int k) Get the real part of thek-thn-th root of unity.boolean
-
Constructor Details
-
RootsOfUnity
public RootsOfUnity()Build an engine for computing then-th roots of unity.
-
-
Method Details
-
isCounterClockWise
ReturnstrueifcomputeRoots(int)was called with a positive value of its argumentn. Iftrue, then counter-clockwise ordering of the roots of unity should be used.- Returns:
trueif the roots of unity are stored in counter-clockwise order- Throws:
MathIllegalStateException- if no roots of unity have been computed yet
-
computeRoots
Computes the
n-th roots of unity. The roots are stored inomega[], such thatomega[k] = w ^ k, wherek = 0, ..., n - 1,w = exp(2 * pi * i / n)andi = sqrt(-1).Note that
ncan be positive of negativeabs(n)is always the number of roots of unity.- If
n > 0, then the roots are stored in counter-clockwise order. - If
n < 0, then the roots are stored in clockwise order.
- Parameters:
n- the (signed) number of roots of unity to be computed- Throws:
ZeroException- ifn = 0
-
getReal
Get the real part of thek-thn-th root of unity.- Parameters:
k- index of then-th root of unity- Returns:
- real part of the
k-thn-th root of unity - Throws:
MathIllegalStateException- if no roots of unity have been computed yetMathIllegalArgumentException- ifkis out of range
-
getImaginary
Get the imaginary part of thek-thn-th root of unity.- Parameters:
k- index of then-th root of unity- Returns:
- imaginary part of the
k-thn-th root of unity - Throws:
MathIllegalStateException- if no roots of unity have been computed yetOutOfRangeException- ifkis out of range
-
getNumberOfRoots
Returns the number of roots of unity currently stored. IfcomputeRoots(int)was called withn, then this method returnsabs(n). If no roots of unity have been computed yet, this method returns 0.- Returns:
- the number of roots of unity currently stored
-