def c2c(forward, x, n=None, axis=-1, norm=None, overwrite_x=False): """ Return discrete Fourier transform of real or complex sequence. """ tmp = _asfarray(x) overwrite_x = overwrite_x or _datacopied(tmp, x) norm = _normalization(norm, forward) if n is not None: tmp, copied = _fix_shape_1d(tmp, n, axis) overwrite_x = overwrite_x or copied elif tmp.shape[axis] < 1: raise ValueError("invalid number of data points ({0}) specified" .format(tmp.shape[axis])) out = (tmp if overwrite_x and tmp.dtype.kind == 'c' else None) return pfft.c2c(tmp, (axis,), forward, norm, out, _default_workers)
def c2cn(forward, x, shape=None, axes=None, norm=None, overwrite_x=False): """ Return multidimensional discrete Fourier transform. """ tmp = _asfarray(x) shape, axes = _init_nd_shape_and_axes(tmp, shape, axes) overwrite_x = overwrite_x or _datacopied(tmp, x) if len(axes) == 0: return x tmp, copied = _fix_shape(tmp, shape, axes) overwrite_x = overwrite_x or copied norm = _normalization(norm, forward) out = (tmp if overwrite_x and tmp.dtype.kind == 'c' else None) return pfft.c2c(tmp, axes, forward, norm, out, _default_workers)