final public static < C extends ComplexType< C >, R extends RealType< R > > void complexToRealUnpad( final RandomAccessibleInterval< C > input, final RandomAccessibleInterval< R > output, final ExecutorService service ) { for ( int d = 1; d < input.numDimensions(); ++d ) FFTMethods.complexToComplex( input, d, false, true, service ); FFTMethods.complexToReal( input, output, FFTMethods.unpaddingIntervalCentered( input, output ), 0, true, service ); }
final public static < C extends ComplexType< C >, R extends RealType< R > > void complexToRealUnpad( final RandomAccessibleInterval< C > input, final RandomAccessibleInterval< R > output ) { for ( int d = 1; d < input.numDimensions(); ++d ) FFTMethods.complexToComplex( input, d, false ); FFTMethods.complexToReal( input, output, FFTMethods.unpaddingIntervalCentered( input, output ), 0 ); } }
/** * Compute an ND inverse FFT */ @Override public void compute(final RandomAccessibleInterval<C> input, final RandomAccessibleInterval<T> output) { final RandomAccessibleInterval<C> temp = copyOp.calculate(input); for (int d = input.numDimensions() - 1; d > 0; d--) FFTMethods.complexToComplex(temp, d, false, true, ts .getExecutorService()); FFTMethods.complexToReal(temp, output, FFTMethods.unpaddingIntervalCentered( temp, output), 0, true, ts.getExecutorService()); }
FFTMethods.complexToComplex( fft, d, false ); FFTMethods.complexToReal( fft, output, FFTMethods.unpaddingIntervalCentered( inputInterval, outputDimensions ), 0 );
FFTMethods.complexToComplex( fft, d, false, true, service ); FFTMethods.complexToReal( fft, output, FFTMethods.unpaddingIntervalCentered( inputInterval, outputDimensions ), 0, true, service );