a
    h
                     @  s  d dl mZ d dlZd dlZddlmZmZ ddlmZm	Z	 dd Z
e	e
d2d	d
ddZe	e
d3d	d
ddZe	e
d4d	d
ddZe	e
d5d	d
ddZe	e
d6d	d
ddZe	e
d7d	d
ddZe	e
d8d	d
ddZe	e
d9d	d
ddZe	e
d:d	d
ddZe	e
d;d	d
ddZe	e
d<d	d
d d!Ze	e
d=d	d
d"d#Ze	e
d>d	d
d$d%Ze	e
d?d	d
d&d'Ze	d@d)d*Ze	dAd+d,Ze	dBd	d-d.d/Ze	dCd	d-d0d1ZdS )D    )annotationsN   )_dtypes_impl_util)	ArrayLike
normalizerc                   s   t   fdd}|S )z>NumPy fft casts inputs to 64 bit and *returns 64-bit results*.c                   s>   |   rt jnt j}t| |}  | g|R i |S N)Z
is_complexr   Zdefault_dtypesZcomplex_dtypeZfloat_dtyper   Zcast_if_needed)ZtensorargskwdsZtarget_dtypefunc >/var/www/auris/lib/python3.9/site-packages/torch/_numpy/fft.pywrapped   s    zupcast.<locals>.wrapped)	functoolswraps)r   r   r   r   r   upcast   s    	r   r   )ac                 C  s   t jj| |||dS N)Zdimnorm)torchfftr   nZaxisr   r   r   r   r      s    r   c                 C  s   t jj| |||dS r   )r   r   ifftr   r   r   r   r   #   s    r   c                 C  s   t jj| |||dS r   )r   r   rfftr   r   r   r   r   )   s    r   c                 C  s   t jj| |||dS r   )r   r   irfftr   r   r   r   r   /   s    r   c                 C  s   t jj| |||dS r   )r   r   fftnr   saxesr   r   r   r   r   5   s    r   c                 C  s   t jj| |||dS r   )r   r   ifftnr   r   r   r   r"   ;   s    r"   c                 C  s   t jj| |||dS r   )r   r   rfftnr   r   r   r   r#   A   s    r#   c                 C  s   t jj| |||dS r   )r   r   irfftnr   r   r   r   r$   G   s    r$   r   c                 C  s   t jj| |||dS r   )r   r   fft2r   r   r   r   r'   M   s    r'   c                 C  s   t jj| |||dS r   )r   r   ifft2r   r   r   r   r(   S   s    r(   c                 C  s   t jj| |||dS r   )r   r   rfft2r   r   r   r   r)   Y   s    r)   c                 C  s   t jj| |||dS r   )r   r   irfft2r   r   r   r   r*   _   s    r*   c                 C  s   t jj| |||dS r   )r   r   hfftr   r   r   r   r+   e   s    r+   c                 C  s   t jj| |||dS r   )r   r   ihfftr   r   r   r   r,   k   s    r,         ?c                 C  s   t j| |S r   )r   r   fftfreqr   dr   r   r   r.   q   s    r.   c                 C  s   t j| |S r   )r   r   rfftfreqr/   r   r   r   r1   v   s    r1   )xc                 C  s   t j| |S r   )r   r   fftshiftr2   r!   r   r   r   r3   {   s    r3   c                 C  s   t j| |S r   )r   r   	ifftshiftr4   r   r   r   r5      s    r5   )Nr   N)Nr   N)Nr   N)Nr   N)NNN)NNN)NNN)NNN)Nr%   N)Nr%   N)Nr%   N)Nr%   N)Nr   N)Nr   N)r-   )r-   )N)N)
__future__r   r   r    r   r   Z_normalizationsr   r   r   r   r   r   r   r   r"   r#   r$   r'   r(   r)   r*   r+   r,   r.   r1   r3   r5   r   r   r   r   <module>   sn   