Package ch.randelshofer.fastdoubleparser
Class FftMultiplier.ComplexVector
- java.lang.Object
-
- ch.randelshofer.fastdoubleparser.FftMultiplier.ComplexVector
-
- Enclosing class:
- FftMultiplier
static final class FftMultiplier.ComplexVector extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private double[]aThis arrays contains complex numbers.private static intCOMPLEX_SIZE_SHIFTA complex number in an FFT double[] vector occupies 2^1 array elements.(package private) static intIMAGprivate intlengthThe number of complex numbers stored in this vector.private intoffsetOffset to the real part of a complex number.(package private) static intREAL
-
Constructor Summary
Constructors Constructor Description ComplexVector(int length)ComplexVector(FftMultiplier.ComplexVector c, int from, int to)Creates a view on another vector.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) voidadd(int idxa, FftMultiplier.MutableComplex c)(package private) voidaddInto(int idxa, FftMultiplier.ComplexVector c, int idxc, FftMultiplier.MutableComplex destination)(package private) voidaddTimesIInto(int idxa, FftMultiplier.ComplexVector c, int idxc, FftMultiplier.MutableComplex destination)(package private) voidapplyInverseWeights(FftMultiplier.ComplexVector weights)Multiplies the elements of an FFT vector by 1/weight.(package private) voidapplyWeights(FftMultiplier.ComplexVector weights)Multiplies the elements of an FFT vector by weights.(package private) voidcopyInto(int idxa, FftMultiplier.MutableComplex destination)(package private) doubleimag(int idxa)(package private) voidimag(int idxa, double value)private intimagIdx(int idxa)(package private) voidmultiply(int idxa, FftMultiplier.MutableComplex c)Multipliesabyc.(package private) voidmultiplyByIAnd(int idxa, FftMultiplier.MutableComplex c)Multipliesabycand byi.(package private) voidmultiplyConjugate(int idxa, FftMultiplier.MutableComplex c)Multipliesaby the conjugate ofc.(package private) voidmultiplyConjugateInto(int idxa, FftMultiplier.MutableComplex c, FftMultiplier.MutableComplex destination)(package private) voidmultiplyConjugateTimesI(int idxa, FftMultiplier.MutableComplex c)Multiplies(a[i].real,a[i+1].imaginary)by the conjugate ofcand byi.(package private) voidmultiplyInto(int idxa, FftMultiplier.MutableComplex c, FftMultiplier.MutableComplex destination)(package private) voidmultiplyPointwise(FftMultiplier.ComplexVector cvec)(package private) doublepart(int idxa, int part)(package private) doublereal(int idxa)(package private) voidreal(int idxa, double value)private intrealIdx(int idxa)(package private) voidset(int idxa, double real, double imag)(package private) voidsquarePointwise()The result is placed in the argument(package private) voidsubtractInto(int idxa, FftMultiplier.ComplexVector c, int idxc, FftMultiplier.MutableComplex destination)(package private) voidsubtractTimesIInto(int idxa, FftMultiplier.ComplexVector c, int idxc, FftMultiplier.MutableComplex destination)(package private) voidtimesTwoToThe(int idxa, int n)
-
-
-
Field Detail
-
COMPLEX_SIZE_SHIFT
private static final int COMPLEX_SIZE_SHIFT
A complex number in an FFT double[] vector occupies 2^1 array elements.- See Also:
- Constant Field Values
-
IMAG
static final int IMAG
- See Also:
- Constant Field Values
-
REAL
static final int REAL
- See Also:
- Constant Field Values
-
a
private final double[] a
This arrays contains complex numbers.A complex number occupies 2 consecutive array elements: the real part and then the imaginary part.
-
length
private final int length
The number of complex numbers stored in this vector.
-
offset
private final int offset
Offset to the real part of a complex number.
-
-
Constructor Detail
-
ComplexVector
ComplexVector(int length)
-
ComplexVector
ComplexVector(FftMultiplier.ComplexVector c, int from, int to)
Creates a view on another vector.- Parameters:
c- the other vectorfrom- start index of the viewto- end index of the view
-
-
Method Detail
-
add
void add(int idxa, FftMultiplier.MutableComplex c)
-
addInto
void addInto(int idxa, FftMultiplier.ComplexVector c, int idxc, FftMultiplier.MutableComplex destination)
-
addTimesIInto
void addTimesIInto(int idxa, FftMultiplier.ComplexVector c, int idxc, FftMultiplier.MutableComplex destination)
-
applyInverseWeights
void applyInverseWeights(FftMultiplier.ComplexVector weights)
Multiplies the elements of an FFT vector by 1/weight. Used for the right-angle convolution.
-
applyWeights
void applyWeights(FftMultiplier.ComplexVector weights)
Multiplies the elements of an FFT vector by weights. Doing this makes a regular FFT convolution a right-angle convolution.
-
copyInto
void copyInto(int idxa, FftMultiplier.MutableComplex destination)
-
imag
double imag(int idxa)
-
imag
void imag(int idxa, double value)
-
imagIdx
private int imagIdx(int idxa)
-
multiply
void multiply(int idxa, FftMultiplier.MutableComplex c)Multipliesabyc. Stores the result in a[idx] and a[idx+1].
-
multiplyByIAnd
void multiplyByIAnd(int idxa, FftMultiplier.MutableComplex c)Multipliesabycand byi. Stores the result in a[idx] and a[idx+1].
-
multiplyConjugate
void multiplyConjugate(int idxa, FftMultiplier.MutableComplex c)Multipliesaby the conjugate ofc. Stores the result in a[i] and a[i+1].
-
multiplyConjugateInto
void multiplyConjugateInto(int idxa, FftMultiplier.MutableComplex c, FftMultiplier.MutableComplex destination)
-
multiplyConjugateTimesI
void multiplyConjugateTimesI(int idxa, FftMultiplier.MutableComplex c)Multiplies(a[i].real,a[i+1].imaginary)by the conjugate ofcand byi. Stores the result in a[i] and a[i+1].
-
multiplyInto
void multiplyInto(int idxa, FftMultiplier.MutableComplex c, FftMultiplier.MutableComplex destination)
-
multiplyPointwise
void multiplyPointwise(FftMultiplier.ComplexVector cvec)
-
part
double part(int idxa, int part)
-
real
double real(int idxa)
-
real
void real(int idxa, double value)
-
realIdx
private int realIdx(int idxa)
-
set
void set(int idxa, double real, double imag)
-
squarePointwise
void squarePointwise()
The result is placed in the argument
-
subtractInto
void subtractInto(int idxa, FftMultiplier.ComplexVector c, int idxc, FftMultiplier.MutableComplex destination)
-
subtractTimesIInto
void subtractTimesIInto(int idxa, FftMultiplier.ComplexVector c, int idxc, FftMultiplier.MutableComplex destination)
-
timesTwoToThe
void timesTwoToThe(int idxa, int n)
-
-