/** * Computes a complex-to-complex dimension-1 fast Fourier transform. * Transforms a 2-D input array cx[n2][2*nfft] of n2*nfft complex numbers * to a 2-D output array cy[n2][2*nfft] of n2*nfft complex numbers. * @param sign the sign (1 or -1) of the exponent used in the FFT. * @param n2 the 2nd dimension of arrays. * @param cx the input array. * @param cy the output array. */ public void complexToComplex1(int sign, int n2, float[][] cx, float[][] cy) { checkSign(sign); checkArray(2*_nfft,n2,cx,"cx"); checkArray(2*_nfft,n2,cy,"cy"); for (int i2=0; i2<n2; ++i2) complexToComplex(sign,cx[i2],cy[i2]); }
/** * Computes a complex-to-complex dimension-1 fast Fourier transform. * Transforms a 3-D input array cx[n3][n2][2*nfft] of n3*n2*nfft complex * numbers to a 3-D output array cy[n3][n2][2*nfft] of n3*n2*nfft complex * numbers. * @param sign the sign (1 or -1) of the exponent used in the FFT. * @param n2 the 2nd dimension of arrays. * @param n3 the 3rd dimension of arrays. * @param cx the input array. * @param cy the output array. */ public void complexToComplex1( int sign, int n2, int n3, float[][][] cx, float[][][] cy) { checkSign(sign); checkArray(2*_nfft,n2,n3,cx,"cx"); checkArray(2*_nfft,n2,n3,cy,"cy"); for (int i3=0; i3<n3; ++i3) complexToComplex1(sign,n2,cx[i3],cy[i3]); }
/** * Computes a complex-to-complex dimension-2 fast Fourier transform. * Transforms a 3-D input array cx[n3][nfft][2*n1] of n3*nfft*n1 complex * numbers to a 3-D output array cy[n3][nfft][2*n1] of n3*nfft*n1 complex * numbers. * @param sign the sign (1 or -1) of the exponent used in the FFT. * @param n1 the 1st dimension of arrays. * @param n3 the 3rd dimension of arrays. * @param cx the input array. * @param cy the output array. */ public void complexToComplex2( int sign, int n1, int n3, float[][][] cx, float[][][] cy) { checkSign(sign); checkArray(2*n1,_nfft,n3,cx,"cx"); checkArray(2*n1,_nfft,n3,cy,"cy"); for (int i3=0; i3<n3; ++i3) complexToComplex2(sign,n1,cx[i3],cy[i3]); }
/** * Computes a complex-to-complex dimension-3 fast Fourier transform. * Transforms a 3-D input array cx[nfft][n2][2*n1] of nfft*n2*n1 complex * numbers to a 3-D output array cy[nfft][n2][2*n1] of nfft*n2*n1 complex * numbers. * @param sign the sign (1 or -1) of the exponent used in the FFT. * @param n1 the 1st dimension of arrays. * @param n2 the 2nd dimension of arrays. * @param cx the input array. * @param cy the output array. */ public void complexToComplex3( int sign, int n1, int n2, float[][][] cx, float[][][] cy) { checkSign(sign); checkArray(2*n1,n2,_nfft,cx,"cx"); checkArray(2*n1,n2,_nfft,cy,"cy"); float[][] cxi2 = new float[_nfft][]; float[][] cyi2 = new float[_nfft][]; for (int i2=0; i2<n2; ++i2) { for (int i3=0; i3<_nfft; ++i3) { cxi2[i3] = cx[i3][i2]; cyi2[i3] = cy[i3][i2]; } complexToComplex2(sign,n1,cxi2,cyi2); } }
/** * Computes a complex-to-complex fast Fourier transform. * Transforms a 1-D input array cx[2*nfft] of nfft complex numbers * to a 1-D output array cy[2*nfft] of nfft complex numbers. * @param sign the sign (1 or -1) of the exponent used in the FFT. * @param cx the input array. * @param cy the output array. */ public void complexToComplex(int sign, float[] cx, float[] cy) { checkSign(sign); checkArray(2*_nfft,cx,"cx"); checkArray(2*_nfft,cy,"cy"); if (cx!=cy) ccopy(_nfft,cx,cy); Pfacc.transform(sign,_nfft,cy); }
/** * Computes a complex-to-complex dimension-2 fast Fourier transform. * Transforms a 2-D input array cx[nfft][2*n1] of nfft*n1 complex numbers * to a 2-D output array cy[nfft][2*n1] of nfft*n1 complex numbers. * @param sign the sign (1 or -1) of the exponent used in the FFT. * @param n1 the 1st dimension of arrays. * @param cx the input array. * @param cy the output array. */ public void complexToComplex2(int sign, int n1, float[][] cx, float[][] cy) { checkSign(sign); checkArray(2*n1,_nfft,cx,"cx"); checkArray(2*n1,_nfft,cy,"cy"); if (cx!=cy) ccopy(n1,_nfft,cx,cy); Pfacc.transform2a(sign,n1,_nfft,cy); }