File: //usr/local/lib/python3.10/dist-packages/numpy/fft/__pycache__/_pocketfft.cpython-310.pyc
o
���g�� � @ s� d Z g d�ZddlZddlmZmZmZmZmZm Z ddl
mZ ddl
mZ ddlmZ ejejd d
�Zdd� Zd
d� Zdd� Zddddd�Zdd� Zd=dd�Zee�d>dd��Zee�d>dd��Zee�d>dd��Zee�d>d d!��Zee�d>d"d#��Zee�d>d$d%��Zd?d&d'�Zddedfd(d)�Zd=d*d+�Z ee �d=d,d-��Z!ee �d=d.d/��Z"ee �d@d1d2��Z#ee �d@d3d4��Z$ee �d=d5d6��Z%ee �d@d7d8��Z&ee �d=d9d:��Z'ee �d@d;d<��Z(dS )Aa}
Discrete Fourier Transforms
Routines in this module:
fft(a, n=None, axis=-1, norm="backward")
ifft(a, n=None, axis=-1, norm="backward")
rfft(a, n=None, axis=-1, norm="backward")
irfft(a, n=None, axis=-1, norm="backward")
hfft(a, n=None, axis=-1, norm="backward")
ihfft(a, n=None, axis=-1, norm="backward")
fftn(a, s=None, axes=None, norm="backward")
ifftn(a, s=None, axes=None, norm="backward")
rfftn(a, s=None, axes=None, norm="backward")
irfftn(a, s=None, axes=None, norm="backward")
fft2(a, s=None, axes=(-2,-1), norm="backward")
ifft2(a, s=None, axes=(-2, -1), norm="backward")
rfft2(a, s=None, axes=(-2,-1), norm="backward")
irfft2(a, s=None, axes=(-2, -1), norm="backward")
i = inverse transform
r = transform of purely real data
h = Hermite transform
n = n-dimensional transform
2 = 2-dimensional transform
(Note: 2D routines are just nD routines with different default
behavior.)
)�fft�ifft�rfft�irfft�hfft�ihfft�rfftn�irfftn�rfft2�irfft2�fft2�ifft2�fftn�ifftn� N)�asarray�zeros�swapaxes� conjugate�take�sqrt� )�_pocketfft_internal)�normalize_axis_index)� overridesz numpy.fft)�modulec C s� t || j�}|d u r| j| }d| }| j| |krXt| j�}td �gt|� }|| |kr<td|�||<