Package ch.randelshofer.fastdoubleparser
Class FftMultiplier.ComplexVector
java.lang.Object
ch.randelshofer.fastdoubleparser.FftMultiplier.ComplexVector
- Enclosing class:
FftMultiplier
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final double[]This arrays contains complex numbers.private static final intA complex number in an FFT double[] vector occupies 2^1 array elements.(package private) static final intprivate final intThe number of complex numbers stored in this vector.private final intOffset to the real part of a complex number.(package private) static final int -
Constructor Summary
ConstructorsConstructorDescriptionComplexVector(int length) ComplexVector(FftMultiplier.ComplexVector c, int from, int to) Creates a view on another vector. -
Method Summary
Modifier and TypeMethodDescription(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) voidMultiplies 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) void(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) voidThe 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 Details
-
COMPLEX_SIZE_SHIFT
private static final int COMPLEX_SIZE_SHIFTA complex number in an FFT double[] vector occupies 2^1 array elements.- See Also:
-
IMAG
static final int IMAG- See Also:
-
REAL
static final int REAL- See Also:
-
a
private final double[] aThis arrays contains complex numbers.A complex number occupies 2 consecutive array elements: the real part and then the imaginary part.
-
length
private final int lengthThe number of complex numbers stored in this vector. -
offset
private final int offsetOffset to the real part of a complex number.
-
-
Constructor Details
-
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 Details
-
add
-
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
Multiplies the elements of an FFT vector by 1/weight. Used for the right-angle convolution. -
applyWeights
Multiplies the elements of an FFT vector by weights. Doing this makes a regular FFT convolution a right-angle convolution. -
copyInto
-
imag
double imag(int idxa) -
imag
void imag(int idxa, double value) -
imagIdx
private int imagIdx(int idxa) -
multiply
Multipliesabyc. Stores the result in a[idx] and a[idx+1]. -
multiplyByIAnd
Multipliesabycand byi. Stores the result in a[idx] and a[idx+1]. -
multiplyConjugate
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
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
-
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)
-