Source code for seismic.xcorqc.fft
import numpy
from functools import partial
# Try and use the faster Fourier transform functions from the pyfft module if
# available
try:
import pyfftw
pyfftw.interfaces.cache.enable()
pyfftw.interfaces.cache.set_keepalive_time(100)
from pyfftw.interfaces.scipy_fftpack import fftn as fftn
from pyfftw.interfaces.scipy_fftpack import ifftn as ifftn
from pyfftw.interfaces.numpy_fft import rfft as rfft
from pyfftw.interfaces.numpy_fft import irfft as irfft
#fftn = partial(fftn_, planner_effort='FFTW_ESTIMATE')
#ifftn = partial(ifftn_, planner_effort='FFTW_ESTIMATE')
#rfft = partial(rfft_, planner_effort='FFTW_ESTIMATE')
#irfft = partial(irfft_, planner_effort='FFTW_ESTIMATE')
except ImportError:
from scipy.fftpack import fftn, ifftn
from numpy.fft import rfft, irfft
# end try
[docs]def ndflip(a):
"""Inverts an n-dimensional array along each of its axes"""
ind = (slice(None,None,-1),)*a.ndim
return a[ind]
# end func