§
    ÈÁ³gZ_  ã                   ó`  — d dl Zd dlZd dlmZ d dlmZmZmZm	Z	 d dl
Z
d dlZd„ Z G d„ d¦  «        Z G d„ d¦  «        Zej                             d	ej        ej        ej        ej        g¦  «        ej                             d
ddg¦  «        ej                             dej        j        ej        j        ej        j        ej        j        ej        j        ej        j        g¦  «        d„ ¦   «         ¦   «         ¦   «         Zej                             d
ddg¦  «        ej                             dg d¢¦  «        d„ ¦   «         ¦   «         Zej                             e	d¬¦  «         G d„ d¦  «        ¦   «         Zd„ Zd„ Z ej                             dej        j        ej        j        ej        j!        ej        j"        g¦  «        ej                             d ej#        g d¢¦  «         ej$        dej%        ¬¦  «         ej$        dej&        ¬¦  «        g¦  «        d„ ¦   «         ¦   «         Z'dS )é    N)Úrandom)Úassert_array_equalÚassert_raisesÚassert_allcloseÚIS_WASMc                 ó  — t          | ¦  «        }dt          j        z  t          j        |¦  «        |z  z  }t          j        |¦  «                             dd¦  «        |z  }t          j        | t          j        |¦  «        z  d¬¦  «        S )Ny       €       Àéÿÿÿÿé   ©Úaxis)ÚlenÚnpÚpiÚarangeÚreshapeÚsumÚexp)ÚxÚLÚphases      ú\/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/numpy/fft/tests/test_pocketfft.pyÚfft1r      sm   € ÝˆA‰Œ€AØ•"”%‰K�2œ9 Q™<œ<¨!Ñ+Ñ,€EÝŒI�a‰LŒL× Ò   QÑ'Ô'¨%Ñ/€EÝŒ6�!•B”F˜5‘M”M‘/¨Ð*Ñ*Ô*Ð*ó    c                   ó   — e Zd Zd„ ZdS )ÚTestFFTShiftc                 óV   — t          t          t          j        j        g d¢d¦  «         d S )N)r
   é   é   r   )r   Ú
ValueErrorr   Úfft)Úselfs    r   Ú
test_fft_nzTestFFTShift.test_fft_n   s$   € Ý•j¥"¤&¤*¨i¨i¨i¸Ñ;Ô;Ð;Ð;Ð;r   N)Ú__name__Ú
__module__Ú__qualname__r"   © r   r   r   r      s#   € € € € € ð<ð <ð <ð <ð <r   r   c            	       ó€  — e Zd Zd„ Zej                             dej        ej	        ej
        g¦  «        d„ ¦   «         Zej                             dej        ej	        ej
        g¦  «        d„ ¦   «         Zd„ Zej                             dd¦  «        ej                             deef¦  «        ej                             dd	¦  «        d
„ ¦   «         ¦   «         ¦   «         Zej                             dddg¦  «        d„ ¦   «         Zd„ Zej                             dd¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!ej                             d ej"        j#        ej"        j$        ej"        j%        ej"        j&        g¦  «        d!„ ¦   «         Z'ej                             d ej"        j#        ej"        j$        ej"        j(        ej"        j)        g¦  «        d"„ ¦   «         Z*ej                             d ej"        j#        ej"        j$        ej"        j%        ej"        j&        g¦  «        d#„ ¦   «         Z+ej                             d ej"        j(        ej"        j)        g¦  «        d$„ ¦   «         Z,ej                             d ej"        j#        ej"        j$        ej"        j%        ej"        j&        ej"        j(        ej"        j)        g¦  «        d%„ ¦   «         Z-d&„ Z.ej                             d'g d(¢¦  «        ej                             deef¦  «        ej                             dd	¦  «        d)„ ¦   «         ¦   «         ¦   «         Z/ej                             d*ej"        j#        ej"        j$        ej"        j%        g¦  «        d+„ ¦   «         Z0ej                             d,d-d.g¦  «        d/„ ¦   «         Z1d0S )1Ú	TestFFT1Dc           
      ó  — d}t          |¦  «        dt          |¦  «        z  z   }t          |¦  «        }t          d|¦  «        D ]»}t          t          j                             t          j                             |d|…         ¦  «        ¦  «        |d|…         d¬¦  «         t          t          j                             t          j                             |d|…         ¦  «        |¦  «        |d|…         d¬¦  «         Œ¼d S )Ni   ù              ð?r
   r   gê-�™—q=©Úatol)r   Úranger   r   r    ÚifftÚirfftÚrfft)r!   Úmaxlenr   ÚxrÚis        r   Útest_identityzTestFFT1D.test_identity   së   € ØˆÝ�6‰NŒN˜R¥ v¡¤Ñ.Ñ.ˆÝ�F‰^Œ^ˆÝ�q˜&Ñ!Ô!ð 	1ð 	1ˆAÝ�BœFŸKšK­¬¯
ª
°1°Q°q°S´6Ñ(:Ô(:Ñ;Ô;¸Q¸qÀ¸s¼VØ!&ð(ñ (ô (ð (å�BœFŸLšL­¬¯ª°R¸¸!¸´WÑ)=Ô)=¸qÑAÔAØ˜q ˜sœG¨%ð1ñ 1ô 1ð 1ð 1ð	1ð 	1r   Údtypec                 óª  — d}dt          j        t          j        d|¬¦  «        ¦  «        z  }t          |¦  «                             |¦  «        dt          |¦  «                             |¦  «        z  z   }t          j        |t          j        |¦  «        g¦  «        }t          |¦  «                             |¦  «        }t          j        |t          j        |¦  «        g¦  «        }t          d|dz  ¦  «        D ]×}t           j         	                    t           j                             ||¬¦  «        |¬¦  «        }	|	j
        j        |k    sJ ‚t          |	|d	|…         |d	¬
¦  «         t           j                             t           j                             ||¬¦  «        |¬¦  «        }
|
j        |k    sJ ‚t          |
|d	|…         |d	¬
¦  «         ŒØd S ©Né   é   ç      ð?©r5   r*   r
   r   ©Únr   ©r,   Úrtol)r   ÚspacingÚarrayr   ÚastypeÚconcatenateÚ
zeros_liker-   r    r.   Úrealr5   r   r/   r0   )r!   r5   r1   r,   r   Úxxr2   Úxxrr3   Úcheck_cÚcheck_rs              r   Útest_identity_long_shortz"TestFFT1D.test_identity_long_short$   sŸ  € ð ˆØ•2”:�bœh r°Ð7Ñ7Ô7Ñ8Ô8Ñ8ˆÝ�6‰NŒN×!Ò! %Ñ(Ô(¨2­f°V©n¬n×.CÒ.CÀEÑ.JÔ.JÑ+JÑJˆÝŒ^˜Q¥¤¨aÑ 0Ô 0Ð1Ñ2Ô2ˆÝ�F‰^Œ^×"Ò" 5Ñ)Ô)ˆÝŒn˜b¥"¤-°Ñ"3Ô"3Ð4Ñ5Ô5ˆÝ�q˜& ™(Ñ#Ô#ð 	Bð 	BˆAÝ”f—k’k¥"¤&§*¢*¨Q°! *Ñ"4Ô"4¸�kÑ:Ô:ˆGØ”<Ô%¨Ò.Ð.Ð.Ð.Ý˜G R¨¨!¨¤W°4¸aÐ@Ñ@Ô@Ð@Ý”f—l’l¥2¤6§;¢;¨r°Q ;Ñ#7Ô#7¸1�lÑ=Ô=ˆGØ”= EÒ)Ð)Ð)Ð)Ý˜G S¨¨1¨¤X°D¸qÐAÑAÔAÐAÐAð	Bð 	Br   c                 óð  — d}dt          j        t          j        d|¬¦  «        ¦  «        z  }t          |¦  «                             |¦  «        dt          |¦  «                             |¦  «        z  z   }t          j        |t          j        |¦  «        g¦  «        }t          d|dz  ¦  «        D �]C}t           j                             t           j         	                    ||¬¦  «        |¬¦  «        }|j
        |j
        k    sJ ‚t          ||d	|…         |d	¬
¦  «         |                     ¦   «         }|dz  dz   }	d	|j        d	<   |dz  d	k    rd	|j        |	dz
  d …<   t          j        |t          j        |¦  «        g¦  «        }
t           j                             t           j                             ||¬¦  «        |¬¦  «        }|j
        |j
        k    sJ ‚t          ||
d	|	…         |d	¬
¦  «         �ŒEd S r7   )r   r@   rA   r   rB   rC   rD   r-   r    r.   r5   r   ÚcopyÚimagr0   r/   )r!   r5   r1   r,   r   rF   r3   Úcheck_via_cÚyr=   ÚyyÚcheck_via_rs               r   Ú!test_identity_long_short_reversedz+TestFFT1D.test_identity_long_short_reversed6   sÐ  € ð ˆØ•2”:�bœh r°Ð7Ñ7Ô7Ñ8Ô8Ñ8ˆÝ�6‰NŒN×!Ò! %Ñ(Ô(¨2­f°V©n¬n×.CÒ.CÀEÑ.JÔ.JÑ+JÑJˆÝŒ^˜Q¥¤¨aÑ 0Ô 0Ð1Ñ2Ô2ˆÝ�q˜& ™(Ñ#Ô#ð 	Eñ 	EˆAÝœ&Ÿ*š*¥R¤V§[¢[°°a [Ñ%8Ô%8¸A˜*Ñ>Ô>ˆKØÔ$¨¬Ò/Ð/Ð/Ð/Ý˜K¨¨A¨a¨C¬°tÀ!ÐDÑDÔDÐDð —’‘”ˆAØ�Q‘˜‘
ˆAØˆAŒF�1‰IØ�1‰u˜ŠzˆzØ �”�q˜‘s�t�t‘Ý” ¥B¤M°!Ñ$4Ô$4Ð 5Ñ6Ô6ˆBÝœ&Ÿ+š+¥b¤f§l¢l°1¸ lÑ&:Ô&:¸a˜+Ñ@Ô@ˆKØÔ$¨¬Ò/Ð/Ð/Ð/Ý˜K¨¨A¨a¨C¬°tÀ!ÐDÑDÔDÐDÑDð	Eð 	Er   c                 óf  — t          d¦  «        dt          d¦  «        z  z   }t          t          |¦  «        t          j                             |¦  «        d¬¦  «         t          t          |¦  «        t          j                             |d¬¦  «        d¬¦  «         t          t          |¦  «        t          j        d¦  «        z  t          j                             |d¬¦  «        d¬¦  «         t          t          |¦  «        dz  t          j                             |d	¬¦  «        d¬¦  «         d S )
Né   r*   ç�íµ ÷Æ°>r+   Úbackward©ÚnormÚorthoç      >@Úforward)r   r   r   r   r    Úsqrt©r!   r   s     r   Útest_fftzTestFFT1D.test_fftN   s  € Ý�2‰JŒJ˜�F 2™JœJ™Ñ&ˆÝ�˜Q™œ¥¤§¢¨A¡¤°TÐ:Ñ:Ô:Ð:Ý�˜Q™œ¥¤§¢¨A°J Ñ!?Ô!?ÀdÐKÑKÔKÐKÝ�˜Q™œ¥"¤'¨"¡+¤+Ñ-ÝœŸ
š
 1¨7˜
Ñ3Ô3¸$ð	@ñ 	@ô 	@ð 	@å�˜Q™œ #™ÝœŸ
š
 1¨9˜
Ñ5Ô5¸Dð	Bñ 	Bô 	Bð 	Bð 	Bð 	Br   r   ©r   r
   Ú	transpose)TFc                 ó  ‡— ˆfd„}|t           u rEt          d¦  «        dt          d¦  «        z  z   }t          j        j        t          j        j        }}n1t          d¦  «        }t          j        j        t          j        j        }} |||¬¦  «        } ||¦  «        }	 |||	|¬¦  «        }
|
|	u sJ ‚t          |
|¦  «          |||¬¦  «        }|t           u r|	n
 ||¦  «        } ||	||¬¦  «        }||u sJ ‚t          ||¦  «         d S )Nc                 ól   •— ‰rt          j        | j        ¦  «        j        S t          j        | ¦  «        S ©N©r   rD   ÚT©r   r`   s    €r   rD   z3TestFFT1D.test_fft_out_argument.<locals>.zeros_like[   ó0   ø€ Øð (Ý”} Q¤SÑ)Ô)Ô+Ð+å”} QÑ'Ô'Ð'r   )é
   é   r*   r   )Úoutr   )Úcomplexr   r   r    r.   r0   r/   r   )r!   r5   r`   r   rD   rO   r    r.   Úexpectedrj   ÚresultÚ	expected2Úout2Úresult2s     `           r   Útest_fft_out_argumentzTestFFT1D.test_fft_out_argumentW   s9  ø€ ð	(ð 	(ð 	(ð 	(ð 	(ð •GÐÐÝ�xÑ Ô  2¥f¨XÑ&6Ô&6Ñ#6Ñ6ˆAÝœœ
¥B¤F¤K�ˆCˆCå�xÑ Ô ˆAÝœœ¥R¤V¤\�ˆCà�3�q˜tÐ$Ñ$Ô$ˆØˆj˜Ñ"Ô"ˆØ��Q˜C dÐ+Ñ+Ô+ˆØ˜ˆ}ˆ}ˆ}ˆ}Ý˜6 8Ñ,Ô,Ð,à�D˜¨Ð-Ñ-Ô-ˆ	Ø�wÐ&Ð&ˆsˆs¨J¨J°yÑ,AÔ,AˆØ�$�s ¨4Ð0Ñ0Ô0ˆØ˜$ˆˆˆˆÝ˜7 IÑ.Ô.Ð.Ð.Ð.r   r   r
   c                 óÒ  — t          d¦  «        dt          d¦  «        z  z   }|                     ¦   «         }t          j                             ||¬¦  «        }t          j                             |||¬¦  «        }||u sJ ‚t	          ||¦  «         |                     ¦   «         }|dk    r
|d d…         n|d d …d d…f         }t          j                             |d|¬¦  «        }t          j                             |d||¬¦  «        }	|	|u sJ ‚t	          |	|¦  «         |dk    r!t	          |dd …         |dd …         ¦  «         n(t	          |d d …dd …f         |d d …dd …f         ¦  «         |                     ¦   «         }
|dk    r
|
d	d …         n|
d d …d	d …f         }|dk    r
|
d	d
…         n|
d d …d	d
…f         }t          j                             |d|¬¦  «        }t          j                             |d||¬¦  «        }||u sJ ‚t	          ||¦  «         |dk    rAt	          |
d d	…         |d d	…         ¦  «         t	          |
d
d …         |d
d …         ¦  «         nPt	          |
d d …d d	…f         |d d …d d	…f         ¦  «         t	          |
d d …d
d …f         |d d …d
d …f         ¦  «         |                     ¦   «         }|dk    r
|d d…         n|d d …d d…f         }|dk    r
|d d
…         n|d d …d d
…f         }t          j                             |d
|¬¦  «        }t          j                             |d
||¬¦  «        }||u sJ ‚t	          ||¦  «         |dk    r!t	          |d
d …         |d
d …         ¦  «         n(t	          |d d …d
d …f         |d d …d
d …f         ¦  «         |                     ¦   «         }|j        }t          j                             |||¬¦  «        }||u sJ ‚t	          ||¦  «         |                     ¦   «         }|dk    r|d d d…         n|d d …d d d…f         }t          j                             |||¬¦  «        }||u sJ ‚t	          ||¦  «         d S )N)ri   ri   r*   r   )r   rj   r   rh   )r=   r   )r=   r   rj   r9   é   r	   )r   rL   r   r    r   re   )r!   r   rO   Úy1Ú	expected1Úresult1Úy2ro   rn   rp   Úy3Úy3_selÚout3Ú	expected3Úresult3Úy4Úy4_selÚout4Ú	expected4Úresult4Úy5Úout5Úresult5Úy6Úout6Úresult6s                             r   Útest_fft_inplace_outzTestFFT1D.test_fft_inplace_outu   sˆ  € õ �8ÑÔ˜r¥&¨Ñ"2Ô"2Ñ2Ñ2ˆà�VŠV‰XŒXˆÝ”F—J’J˜r¨�JÑ-Ô-ˆ	Ý”&—*’*˜R d°�*Ñ3Ô3ˆØ˜"ˆ}ˆ}ˆ}ˆ}Ý˜7 IÑ.Ô.Ð.à�VŠV‰XŒXˆØ !š)˜)ˆr�#�2�#Œwˆw¨¨A¨A¨A¨s°¨s¨F¬ˆÝ”F—J’J˜r R¨d�JÑ3Ô3ˆ	Ý”&—*’*˜R 2¨D°d�*Ñ;Ô;ˆØ˜$ˆˆˆˆÝ˜7 IÑ.Ô.Ð.Ø�1Š9ˆ9Ý˜r " # #œw¨¨"¨#¨#¬Ñ/Ô/Ð/Ð/å˜r ! ! ! R S S &œz¨1¨Q¨Q¨Q°°°¨V¬9Ñ5Ô5Ð5à�VŠV‰XŒXˆØ 1š9˜9��A�B�B”�¨"¨Q¨Q¨Q°°°¨U¬)ˆØ 1š9˜9ˆr�!�B�$Œxˆx¨"¨Q¨Q¨Q°°"°¨W¬+ˆÝ”F—J’J˜v¨°$�JÑ7Ô7ˆ	Ý”&—*’*˜V r°¸$�*Ñ?Ô?ˆØ˜$ˆˆˆˆÝ˜7 IÑ.Ô.Ð.Ø�1Š9ˆ9Ý˜r " 1 "œv q¨¨!¨¤uÑ-Ô-Ð-Ý˜r " # #œw¨¨"¨#¨#¬Ñ/Ô/Ð/Ð/å˜r ! ! ! R a R %œy¨!¨A¨A¨A¨r°¨r¨E¬(Ñ3Ô3Ð3Ý˜r ! ! ! R S S &œz¨1¨Q¨Q¨Q°°°¨V¬9Ñ5Ô5Ð5à�VŠV‰XŒXˆØ  AšI˜I��C�R�C”�¨2¨a¨a¨a°°"°¨f¬:ˆØ !š)˜)ˆr�#�2�#Œwˆw¨¨A¨A¨A¨s°¨s¨F¬ˆÝ”F—J’J˜v¨°$�JÑ7Ô7ˆ	Ý”&—*’*˜V r°¸$�*Ñ?Ô?ˆØ˜$ˆˆˆˆÝ˜7 IÑ.Ô.Ð.Ø�1Š9ˆ9Ý˜r " # #œw¨¨"¨#¨#¬Ñ/Ô/Ð/Ð/å˜r ! ! ! R S S &œz¨1¨Q¨Q¨Q°°°¨V¬9Ñ5Ô5Ð5à�VŠV‰XŒXˆØŒtˆÝ”&—*’*˜R d°�*Ñ5Ô5ˆØ˜$ˆˆˆˆÝ˜7 IÑ.Ô.Ð.à�VŠV‰XŒXˆØ 1š9˜9ˆr�$�$�B�$Œxˆx¨"¨Q¨Q¨Q°°°"°¨W¬+ˆÝ”&—*’*˜R d°�*Ñ5Ô5ˆØ˜$ˆˆˆˆÝ˜7 IÑ.Ô.Ð.Ð.Ð.r   c                 ó¦  — t          j        d¦  «        }t          j        t          d¬¦  «        5  t           j                             |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t           j                             |t          j        |¦  «                             dd¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d	¬¦  «        5  t           j                             |t          j        |t          ¬
¦  «        ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrZ   zmust be of ArrayType©ÚmatchÚ )rj   úhas wrong shaper9   r	   zCannot castr;   )
r   r   ÚpytestÚraisesÚ	TypeErrorr    r   rD   r   Úfloatr]   s     r   Útest_fft_bad_outzTestFFT1D.test_fft_bad_out±   sÏ  € ÝŒI�c‰NŒNˆÝŒ]�9Ð,BÐCÑCÔCð 	"ð 	"ÝŒF�JŠJ�q˜bˆJÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"åŒ]�:Ð->Ð?Ñ?Ô?ð 	?ð 	?ÝŒF�JŠJ�q�bœm¨AÑ.Ô.×6Ò6°q¸"Ñ=Ô=ˆJÑ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?åŒ]�9¨MÐ:Ñ:Ô:ð 	=ð 	=ÝŒF�JŠJ�q�bœm¨AµUÐ;Ñ;Ô;ˆJÑ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=s6   °"AÁA"Á%A"ÂACÃCÃCÃ>;EÅE
ÅE
rX   ©NrV   rY   r[   c           	      ó”  — t          d¦  «        dt          d¦  «        z  z   }t          |t          j                             t          j                             ||¬¦  «        |¬¦  «        d¬¦  «         t          j        t          d¬¦  «        5  t          j                             g |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrT   r*   rW   rU   r+   z!Invalid number of FFT data pointsrŠ   )r   r   r   r    r.   rŽ   r�   r   )r!   rX   r   s      r   Ú	test_ifftzTestFFT1D.test_ifftº   sü   € å�2‰JŒJ˜�F 2™JœJ™Ñ&ˆÝØ�rŒv�{Š{�2œ6Ÿ:š: a¨d˜:Ñ3Ô3¸$ˆ{Ñ?Ô?Øð	ñ 	ô 	ð 	õ Œ]�:Ø!DðFñ Fô Fð 	'ð 	'åŒF�KŠK˜ ˆKÑ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 	'ð 	's   Â"B=Â=CÃCc                 ó(  — t          d¦  «        dt          d¦  «        z  z   }t          t          j                             t          j                             |d¬¦  «        d¬¦  «        t          j                             |¦  «        d¬¦  «         t          t          j                             |¦  «        t          j                             |d¬	¦  «        d¬¦  «         t          t          j                             |¦  «        t          j        d
¦  «        z  t          j                             |d¬	¦  «        d¬¦  «         t          t          j                             |¦  «        dz  t          j                             |d¬	¦  «        d¬¦  «         d S ©N©rT   ri   r*   r
   r   r   rU   r+   rV   rW   éX  rY   ç     À‚@r[   )r   r   r   r    Úfft2r\   r]   s     r   Ú	test_fft2zTestFFT1D.test_fft2Å   sO  € Ý�8ÑÔ˜r¥&¨Ñ"2Ô"2Ñ2Ñ2ˆÝ�œŸ
š
¥2¤6§:¢:¨a°a :Ñ#8Ô#8¸q˜
ÑAÔAÝœŸš A™œ¨Tð	3ñ 	3ô 	3ð 	3å�œŸš A™œÝœŸš A¨J˜Ñ7Ô7¸dð	Dñ 	Dô 	Dð 	Då�œŸš A™œ­¬°Ñ)9Ô)9Ñ9ÝœŸš A¨G˜Ñ4Ô4¸4ð	Añ 	Aô 	Að 	Aå�œŸš A™œ¨)Ñ4ÝœŸš A¨I˜Ñ6Ô6¸Tð	Cñ 	Cô 	Cð 	Cð 	Cð 	Cr   c                 ó(  — t          d¦  «        dt          d¦  «        z  z   }t          t          j                             t          j                             |d¬¦  «        d¬¦  «        t          j                             |¦  «        d¬¦  «         t          t          j                             |¦  «        t          j                             |d¬	¦  «        d¬¦  «         t          t          j                             |¦  «        t          j        d
¦  «        z  t          j                             |d¬	¦  «        d¬¦  «         t          t          j                             |¦  «        dz  t          j                             |d¬	¦  «        d¬¦  «         d S r—   )r   r   r   r    r.   Úifft2r\   r]   s     r   Ú
test_ifft2zTestFFT1D.test_ifft2Ð   sO  € Ý�8ÑÔ˜r¥&¨Ñ"2Ô"2Ñ2Ñ2ˆÝ�œŸš¥B¤F§K¢K°¸ KÑ$:Ô$:À˜ÑCÔCÝœŸš Q™œ¨dð	4ñ 	4ô 	4ð 	4å�œŸš Q™œÝœŸš Q¨Z˜Ñ8Ô8¸tð	Eñ 	Eô 	Eð 	Eå�œŸš Q™œ­"¬'°'Ñ*:Ô*:Ñ:ÝœŸš Q¨W˜Ñ5Ô5¸Dð	Bñ 	Bô 	Bð 	Bå�œŸš Q™œ¨9Ñ5ÝœŸš Q¨Y˜Ñ7Ô7¸dð	Dñ 	Dô 	Dð 	Dð 	Dð 	Dr   c           
      óf  — t          d¦  «        dt          d¦  «        z  z   }t          t          j                             t          j                             t          j                             |d¬¦  «        d¬¦  «        d¬¦  «        t          j                             |¦  «        d¬¦  «         t          t          j                             |¦  «        t          j                             |d	¬
¦  «        d¬¦  «         t          t          j                             |¦  «        t          j        d¦  «        z  t          j                             |d¬
¦  «        d¬¦  «         t          t          j                             |¦  «        dz  t          j                             |d¬
¦  «        d¬¦  «         d S ©N©rT   ri   rh   r*   r   r   r
   r   rU   r+   rV   rW   ép  rY   ç     p·@r[   )r   r   r   r    Úfftnr\   r]   s     r   Ú	test_fftnzTestFFT1D.test_fftnÛ   sd  € Ý�<Ñ Ô  2¥f¨\Ñ&:Ô&:Ñ#:Ñ:ˆÝÝŒF�JŠJ•r”v—z’z¥"¤&§*¢*¨Q°Q *Ñ"7Ô"7¸a�zÑ@Ô@ÀqˆJÑIÔIÝŒF�KŠK˜‰NŒN ð	'ñ 	'ô 	'ð 	'õ 	�œŸš A™œÝœŸš A¨J˜Ñ7Ô7¸dð	Dñ 	Dô 	Dð 	Då�œŸš A™œ­¬°Ñ)>Ô)>Ñ>ÝœŸš A¨G˜Ñ4Ô4¸4ð	Añ 	Aô 	Að 	Aå�œŸš A™œ¨/Ñ:ÝœŸš A¨I˜Ñ6Ô6¸Tð	Cñ 	Cô 	Cð 	Cð 	Cð 	Cr   c           
      óf  — t          d¦  «        dt          d¦  «        z  z   }t          t          j                             t          j                             t          j                             |d¬¦  «        d¬¦  «        d¬¦  «        t          j                             |¦  «        d¬¦  «         t          t          j                             |¦  «        t          j                             |d	¬
¦  «        d¬¦  «         t          t          j                             |¦  «        t          j        d¦  «        z  t          j                             |d¬
¦  «        d¬¦  «         t          t          j                             |¦  «        dz  t          j                             |d¬
¦  «        d¬¦  «         d S r¡   )r   r   r   r    r.   Úifftnr\   r]   s     r   Ú
test_ifftnzTestFFT1D.test_ifftnç   sd  € Ý�<Ñ Ô  2¥f¨\Ñ&:Ô&:Ñ#:Ñ:ˆÝÝŒF�KŠK�œŸš¥B¤F§K¢K°¸ KÑ$:Ô$:À˜ÑCÔCÈ!ˆKÑLÔLÝŒF�LŠL˜‰OŒO $ð	(ñ 	(ô 	(ð 	(õ 	�œŸš Q™œÝœŸš Q¨Z˜Ñ8Ô8¸tð	Eñ 	Eô 	Eð 	Eå�œŸš Q™œ­"¬'°,Ñ*?Ô*?Ñ?ÝœŸš Q¨W˜Ñ5Ô5¸Dð	Bñ 	Bô 	Bð 	Bå�œŸš Q™œ¨?Ñ;ÝœŸš Q¨Y˜Ñ7Ô7¸dð	Dñ 	Dô 	Dð 	Dð 	Dð 	Dr   c           
      ó0  — t          d¦  «        }|j        d|j        z  fD �]s}dD ]b}t          t          j                             |||¬¦  «        d |dz  dz   …         t          j                             |||¬¦  «        d¬¦  «         Œct          t          j                             ||¬¦  «        t          j                             ||d	¬¦  «        d¬¦  «         t          t          j                             ||¬¦  «        t          j        |¦  «        z  t          j                             ||d
¬¦  «        d¬¦  «         t          t          j                             ||¬¦  «        |z  t          j                             ||d¬¦  «        d¬¦  «         �Œud S )NrT   r   r“   ©r=   rX   r
   rU   r+   r<   rV   rY   r[   )r   Úsizer   r   r    r0   r\   )r!   r   r=   rX   s       r   Ú	test_rfftzTestFFT1D.test_rfftó   s˜  € Ý�2‰JŒJˆØ”&˜!˜AœF™(Ð#ð 	@ñ 	@ˆAØ>ð ?ð ?�ÝÝ”F—J’J˜q A¨D�JÑ1Ô1°+°A°q±D¸1±H°+Ô>Ý”F—K’K  Q¨T�KÑ2Ô2¸ð?ñ ?ô ?ð ?ð ?õ Ý”—’˜A �Ñ#Ô#Ý”—’˜A ¨�Ñ4Ô4¸4ðAñ Aô Að Aõ Ý”—’˜A �Ñ#Ô#¥b¤g¨a¡j¤jÑ0Ý”—’˜A ¨�Ñ1Ô1¸ð>ñ >ô >ð >õ Ý”—’˜A �Ñ#Ô# aÑ'Ý”—’˜A ¨�Ñ3Ô3¸$ð@ñ @ô @ð @ñ @ð	@ð 	@r   c                 óü   — t          j        d¦  «        }d}t           j                             ||¦  «        }t	          |t           j                             |d |…         ¦  «        d |dz  dz   …         d¬¦  «         d S )Né   é   r   r
   ç›+¡†›„=©r?   )r   r   r    r0   r   )r!   r   r=   rO   s       r   Útest_rfft_evenzTestFFT1D.test_rfft_even  sk   € ÝŒI�a‰LŒLˆØˆÝŒF�KŠK˜˜1ÑÔˆÝ˜�2œ6Ÿ:š: a¨¨¨¤eÑ,Ô,¨Y¨a°©d°Q©h¨YÔ7¸eÐDÑDÔDÐDÐDÐDr   c                 óÞ   — t          j        g d¢¦  «        }t           j                             |¦  «        }t	          |t           j                             |¦  «        d d…         d¬¦  «         d S )N)r
   r   r   r   éýÿÿÿr   r±   r²   )r   rA   r    r0   r   )r!   r   rO   s      r   Útest_rfft_oddzTestFFT1D.test_rfft_odd
  sY   € ÝŒHÐ%Ð%Ð%Ñ&Ô&ˆÝŒF�KŠK˜‰NŒNˆÝ˜�2œ6Ÿ:š: a™=œ=¨¨!¨Ô,°5Ð9Ñ9Ô9Ð9Ð9Ð9r   c           	      óœ  — t          d¦  «        }t          |t          j                             t          j                             |¦  «        ¦  «        d¬¦  «         t          |t          j                             t          j                             |d¬¦  «        d¬¦  «        d¬¦  «         t          |t          j                             t          j                             |d¬¦  «        d¬¦  «        d¬¦  «         t          |t          j                             t          j                             |d¬¦  «        d¬¦  «        d¬¦  «         d S )NrT   rU   r+   rV   rW   rY   r[   )r   r   r   r    r/   r0   r]   s     r   Ú
test_irfftzTestFFT1D.test_irfft  s$  € Ý�2‰JŒJˆÝ˜�2œ6Ÿ<š<­¬¯ª°A©¬Ñ7Ô7¸dÐCÑCÔCÐCÝ˜�2œ6Ÿ<š<­¬¯ª°A¸J¨Ñ(GÔ(GØ'ð (ñ )ô )Ø/3ð	5ñ 	5ô 	5ð 	5å˜�2œ6Ÿ<š<­¬¯ª°A¸G¨Ñ(DÔ(DØ$ð (ñ &ô &Ø,0ð	2ñ 	2ô 	2ð 	2å˜�2œ6Ÿ<š<­¬¯ª°A¸I¨Ñ(FÔ(FØ&ð (ñ (ô (Ø.2ð	4ñ 	4ô 	4ð 	4ð 	4ð 	4r   c                 óØ  — t          d¦  «        }t          t          j                             |¦  «        d d …d d…f         t          j                             |¦  «        d¬¦  «         t          t          j                             |¦  «        t          j                             |d¬¦  «        d¬¦  «         t          t          j                             |¦  «        t          j        d¦  «        z  t          j                             |d¬¦  «        d¬¦  «         t          t          j                             |¦  «        d	z  t          j                             |d
¬¦  «        d¬¦  «         d S )Nr˜   é   rU   r+   rV   rW   r™   rY   rš   r[   )r   r   r   r    r›   Úrfft2r\   r]   s     r   Ú
test_rfft2zTestFFT1D.test_rfft2  s-  € Ý�8ÑÔˆÝ�œŸš A™œ q q q¨#¨2¨# vÔ.µ´·²¸Q±´ÀdÐKÑKÔKÐKÝ�œŸš Q™œÝœŸš Q¨Z˜Ñ8Ô8¸tð	Eñ 	Eô 	Eð 	Eå�œŸš Q™œ­"¬'°'Ñ*:Ô*:Ñ:ÝœŸš Q¨W˜Ñ5Ô5¸Dð	Bñ 	Bô 	Bð 	Bå�œŸš Q™œ¨9Ñ5ÝœŸš Q¨Y˜Ñ7Ô7¸dð	Dñ 	Dô 	Dð 	Dð 	Dð 	Dr   c           	      óœ  — t          d¦  «        }t          |t          j                             t          j                             |¦  «        ¦  «        d¬¦  «         t          |t          j                             t          j                             |d¬¦  «        d¬¦  «        d¬¦  «         t          |t          j                             t          j                             |d¬¦  «        d¬¦  «        d¬¦  «         t          |t          j                             t          j                             |d¬¦  «        d¬¦  «        d¬¦  «         d S )Nr˜   rU   r+   rV   rW   rY   r[   )r   r   r   r    Úirfft2r»   r]   s     r   Útest_irfft2zTestFFT1D.test_irfft2#  s&  € Ý�8ÑÔˆÝ˜�2œ6Ÿ=š=­¬¯ª°a©¬Ñ9Ô9ÀÐEÑEÔEÐEÝ˜�2œ6Ÿ=š=­¬¯ª°a¸j¨Ñ)IÔ)IØ'ð )ñ )ô )Ø/3ð	5ñ 	5ô 	5ð 	5å˜�2œ6Ÿ=š=­¬¯ª°a¸g¨Ñ)FÔ)FØ$ð )ñ &ô &Ø,0ð	2ñ 	2ô 	2ð 	2å˜�2œ6Ÿ=š=­¬¯ª°a¸i¨Ñ)HÔ)HØ&ð )ñ (ô (Ø.2ð	4ñ 	4ô 	4ð 	4ð 	4ð 	4r   c           	      óf  — t          d¦  «        }t          t          j                             |¦  «        d d …d d …d d…f         t          j                             |¦  «        d¬¦  «         t          t          j                             |¦  «        t          j                             |d¬¦  «        d¬¦  «         t          t          j                             |¦  «        t          j        d¦  «        z  t          j                             |d¬¦  «        d¬¦  «         t          t          j                             |¦  «        d	z  t          j                             |d
¬¦  «        d¬¦  «         t          j        d¦  «        }t          j                             |dd¬¦  «        }|j        dk    sJ ‚t          j                             t          j                             t          j         	                    |dd¬¦  «        dd¬¦  «        dd¬¦  «        }|j        dk    sJ ‚t          ||d¬¦  «         d S )Nr¢   é   rU   r+   rV   rW   r£   rY   r¤   r[   )r   r   )r   r   r
   )rh   ri   é(   )ÚaxesÚs)rh   é   r
   rÂ   )r   r=   r   ri   rh   )
r   r   r   r    r¥   Úrfftnr\   ÚonesÚshaper0   )r!   r   rm   rl   s       r   Ú
test_rfftnzTestFFT1D.test_rfftn-  sá  € Ý�<Ñ Ô ˆÝ�œŸš A™œ q q q¨!¨!¨!¨R¨a¨R xÔ0µ"´&·,²,¸q±/´/ÈÐMÑMÔMÐMÝ�œŸš Q™œÝœŸš Q¨Z˜Ñ8Ô8¸tð	Eñ 	Eô 	Eð 	Eå�œŸš Q™œ­"¬'°,Ñ*?Ô*?Ñ?ÝœŸš Q¨W˜Ñ5Ô5¸Dð	Bñ 	Bô 	Bð 	Bå�œŸš Q™œ¨?Ñ;ÝœŸš Q¨Y˜Ñ7Ô7¸dð	Dñ 	Dô 	Dð 	Dõ ŒG�F‰OŒOˆÝ”—’˜a i°<�Ñ@Ô@ˆØŒ|˜xÒ'Ð'Ð'Ð'Ý”6—:’:�bœfŸjšj­¬¯ª°Q¸QÀ"¨Ñ)EÔ)EØ!" bð )ñ *ô *Ø01°Rð ñ 9ô 9ˆàŒ~ Ò)Ð)Ð)Ð)Ý˜ ¨tÐ4Ñ4Ô4Ð4Ð4Ð4r   c           	      óœ  — t          d¦  «        }t          |t          j                             t          j                             |¦  «        ¦  «        d¬¦  «         t          |t          j                             t          j                             |d¬¦  «        d¬¦  «        d¬¦  «         t          |t          j                             t          j                             |d¬¦  «        d¬¦  «        d¬¦  «         t          |t          j                             t          j                             |d¬¦  «        d¬¦  «        d¬¦  «         d S )Nr¢   rU   r+   rV   rW   rY   r[   )r   r   r   r    ÚirfftnrÆ   r]   s     r   Útest_irfftnzTestFFT1D.test_irfftn?  s&  € Ý�<Ñ Ô ˆÝ˜�2œ6Ÿ=š=­¬¯ª°a©¬Ñ9Ô9ÀÐEÑEÔEÐEÝ˜�2œ6Ÿ=š=­¬¯ª°a¸j¨Ñ)IÔ)IØ'ð )ñ )ô )Ø/3ð	5ñ 	5ô 	5ð 	5å˜�2œ6Ÿ=š=­¬¯ª°a¸g¨Ñ)FÔ)FØ$ð )ñ &ô &Ø,0ð	2ñ 	2ô 	2ð 	2å˜�2œ6Ÿ=š=­¬¯ª°a¸i¨Ñ)HÔ)HØ&ð )ñ (ô (Ø.2ð	4ñ 	4ô 	4ð 	4ð 	4ð 	4r   c                 óª  — t          d¦  «        dt          d¦  «        z  z   }t          j        t          d¦  «        |t          d¦  «        f¦  «        }t          j        ||d d d…                              ¦   «         f¦  «        }t	          t          j                             |¦  «        t          j                             |¦  «        d¬¦  «         t	          t          j                             |¦  «        t          j                             |d¬¦  «        d¬¦  «         t	          t          j                             |¦  «        t          j        d	¦  «        z  t          j                             |d
¬¦  «        d¬¦  «         t	          t          j                             |¦  «        dz  t          j                             |d¬¦  «        d¬¦  «         d S )Né   r*   r
   r	   rU   r+   rV   rW   rT   rY   rZ   r[   )r   r   rC   Úconjr   r    Úhfftr\   ©r!   r   Úx_herms      r   Ú	test_hfftzTestFFT1D.test_hfftI  sw  € Ý�2‰JŒJ˜�F 2™JœJ™Ñ&ˆÝ”¥¨¡¤¨A­v°a©y¬yÐ 9Ñ:Ô:ˆÝŒN˜F A d d¨ d¤G§L¢L¡N¤NÐ3Ñ4Ô4ˆÝ�œŸ
š
 1™œ¥r¤v§{¢{°6Ñ':Ô':ÀÐFÑFÔFÐFÝ�œŸš FÑ+Ô+ÝœŸš F°˜Ñ<Ô<À4ð	Iñ 	Iô 	Ið 	Iå�œŸš FÑ+Ô+­b¬g°b©k¬kÑ9ÝœŸš F°˜Ñ9Ô9Àð	Fñ 	Fô 	Fð 	Få�œŸš FÑ+Ô+¨cÑ1ÝœŸš F°˜Ñ;Ô;À$ð	Hñ 	Hô 	Hð 	Hð 	Hð 	Hr   c           	      ó†  — t          d¦  «        dt          d¦  «        z  z   }t          j        t          d¦  «        |t          d¦  «        f¦  «        }t          j        ||d d d…                              ¦   «         f¦  «        }t	          |t          j                             t          j                             |¦  «        ¦  «        d¬¦  «         t	          |t          j                             t          j                             |d¬¦  «        d¬¦  «        d¬¦  «         t	          |t          j                             t          j                             |d	¬¦  «        d	¬¦  «        d¬¦  «         t	          |t          j                             t          j                             |d
¬¦  «        d
¬¦  «        d¬¦  «         d S )NrÎ   r*   r
   r	   rU   r+   rV   rW   rY   r[   )r   r   rC   rÏ   r   r    ÚihfftrÐ   rÑ   s      r   Ú
test_ihfftzTestFFT1D.test_ihfftU  s£  € Ý�2‰JŒJ˜�F 2™JœJ™Ñ&ˆÝ”¥¨¡¤¨A­v°a©y¬yÐ 9Ñ:Ô:ˆÝŒN˜F A d d¨ d¤G§L¢L¡N¤NÐ3Ñ4Ô4ˆÝ˜¥¤§¢­R¬V¯[ª[¸Ñ-@Ô-@Ñ AÔ AÈÐMÑMÔMÐMÝ˜¥¤§¢­R¬V¯[ª[¸Ø'ð .9ñ .)ô .)Ø/9ð !-ñ !;ô !;ØAEð	Gñ 	Gô 	Gð 	Gå˜¥¤§¢­R¬V¯[ª[¸Ø$ð .9ñ .&ô .&Ø,3ð !-ñ !5ô !5Ø;?ð	Añ 	Aô 	Að 	Aå˜¥¤§¢­R¬V¯[ª[¸Ø&ð .9ñ .(ô .(Ø.7ð !-ñ !9ô !9Ø?Cð	Eñ 	Eô 	Eð 	Eð 	Eð 	Er   Úopc                 óÖ   — t          d¦  «        }g d¢}|D ]R} |t          j        ||¦  «        ¦  «        }t          j         |||¬¦  «        |¦  «        }t          ||d¬¦  «         ŒSd S )Nr¢   )©r   r
   r   )r   r   r
   )r
   r   r   )r
   r   r   )r   r   r
   )r   r
   r   ©rÃ   rU   r+   )r   r   r`   r   )r!   r×   r   rÃ   ÚaÚop_trÚtr_ops          r   Ú	test_axeszTestFFT1D.test_axesa  s…   € õ �<Ñ Ô ˆØQÐQÐQˆØð 	5ð 	5ˆAØ�B•r”| A qÑ)Ô)Ñ*Ô*ˆEÝ”L   A¨A ¡¤°Ñ2Ô2ˆEÝ˜E 5¨tÐ4Ñ4Ô4Ð4Ð4ð	5ð 	5r   c                 óˆ   — t          j        d¦  «                             dd¦  «        } ||dd¬¦  «        j        dk    sJ ‚d S )Néd   rh   ©r	   r9   r_   ©rÄ   rÃ   )rh   r9   )r   r   r   rÈ   ©r!   r×   r   s      r   Útest_s_negative_1zTestFFT1D.test_s_negative_1k  sL   € õ ŒI�c‰NŒN×"Ò" 2 rÑ*Ô*ˆàˆr�!�w VÐ,Ñ,Ô,Ô2°gÒ=Ð=Ð=Ð=Ð=Ð=r   c                 óÌ   — t          j        d¦  «                             dd¦  «        }t          j        d¬¦  «        5   ||d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrà   rh   ú"`axes` should not be `None` if `s`rŠ   rá   )rÄ   ©r   r   r   rŽ   Úwarnsrã   s      r   Útest_s_axes_nonezTestFFT1D.test_s_axes_noner  s®   € õ ŒI�c‰NŒN×"Ò" 2 rÑ*Ô*ˆÝŒ\Ð DÐEÑEÔEð 	ð 	ØˆBˆq�GÐÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ¾AÁAÁ Ac                 óÎ   — t          j        d¦  «                             dd¦  «        }t          j        d¬¦  «        5   ||dd ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrà   rh   ræ   rŠ   rá   râ   rç   rã   s      r   Útest_s_axes_none_2DzTestFFT1D.test_s_axes_none_2Dy  s®   € åŒI�c‰NŒN×"Ò" 2 rÑ*Ô*ˆÝŒ\Ð DÐEÑEÔEð 	(ð 	(ØˆBˆq�G $Ð'Ñ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(s   ¾AÁAÁ!Ac                 óœ   — t          d¦  «        }t          j        d¬¦  «        5   ||dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr¢   z%array containing `None` values to `s`rŠ   )rh   Nrh   rÙ   râ   )r   rŽ   rè   rã   s      r   Útest_s_contains_nonezTestFFT1D.test_s_contains_none  s    € õ �<Ñ Ô ˆÝŒ\Ð GÐHÑHÔHð 	4ð 	4ØˆBˆq�N¨Ð3Ñ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4s   ¥AÁAÁAc           	      ó  — t          d¦  «        }t          j                             |¦  «        }|j        dz  }t          j        j        t          j        j        ft          j        j        t          j        j        ft          j        j	        t          j        j
        fg}|D ]i\  }}|j        d|j        z  fD ]R}dD ]M} ||||¬¦  «        } ||||¬¦  «        }t          |t          j                             |¦  «        d¬¦  «         ŒNŒSŒjd S )NrT   r   r“   r«   rU   r+   )r   r   ÚlinalgrX   r¬   r    r.   r0   r/   rÕ   rÐ   r   )	r!   r   Úx_normr=   Ú
func_pairsÚforwÚbackrX   Útmps	            r   Útest_all_1d_norm_preservingz%TestFFT1D.test_all_1d_norm_preserving‡  s$  € å�2‰JŒJˆÝ”—’ Ñ"Ô"ˆØŒF�Q‰JˆÝ”v”z¥2¤6¤;Ð/Ý”v”{¥B¤F¤LÐ1õ ”v”|¥R¤V¤[Ð1ð	ˆ
ð %ð 	Dð 	D‰JˆD�$Ø”f˜a ¤™hÐ'ð Dð D�ØBð Dð D�DØ˜$˜q A¨DÐ1Ñ1Ô1�CØ˜$˜s a¨dÐ3Ñ3Ô3�CÝ# FÝ$&¤I§N¢N°3Ñ$7Ô$7¸dðDñ Dô Dð Dð DðDðDð	Dð 	Dr   rÃ   )r_   ©r   r   Nc                 ó  ‡— ˆfd„}|t           u rEt          d¦  «        dt          d¦  «        z  z   }t          j        j        t          j        j        }}n1t          d¦  «        }t          j        j        t          j        j        }} |||¬¦  «        } ||¦  «        }	 |||	|¬¦  «        }
|
|	u sJ ‚t          |
|¦  «          |||¬¦  «        }|t           u r|	n
 ||¦  «        } ||	||¬¦  «        }||u sJ ‚t          ||¦  «         d S )Nc                 ól   •— ‰rt          j        | j        ¦  «        j        S t          j        | ¦  «        S rc   rd   rf   s    €r   rD   z4TestFFT1D.test_fftn_out_argument.<locals>.zeros_likež  rg   r   ©rh   r9   rÁ   r*   rÚ   )rj   rÃ   )	rk   r   r   r    r¥   r¨   rÆ   rË   r   )r!   r5   r`   rÃ   rD   r   r    r.   rl   rj   rm   rn   ro   rp   s     `           r   Útest_fftn_out_argumentz TestFFT1D.test_fftn_out_argumentš  s9  ø€ ð	(ð 	(ð 	(ð 	(ð 	(ð •GÐÐÝ�zÑ"Ô" R­¨zÑ(:Ô(:Ñ%:Ñ:ˆAÝœœ¥R¤V¤\�ˆCˆCå�zÑ"Ô"ˆAÝœœ¥b¤f¤m�ˆCà�3�q˜tÐ$Ñ$Ô$ˆØˆj˜Ñ"Ô"ˆØ��Q˜C dÐ+Ñ+Ô+ˆØ˜ˆ}ˆ}ˆ}ˆ}Ý˜6 8Ñ,Ô,Ð,à�D˜¨Ð-Ñ-Ô-ˆ	Ø�wÐ&Ð&ˆsˆs¨J¨J°yÑ,AÔ,AˆØ�$�s ¨4Ð0Ñ0Ô0ˆØ˜$ˆˆˆˆÝ˜7 IÑ.Ô.Ð.Ð.Ð.r   r    c                 óÊ  — |t           j        j        u rt          d¦  «        }n"t          d¦  «        dt          d¦  «        z  z   }t	          j        t          d¬¦  «        5   ||t          j        |¦  «        dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   d} |||d¬	¦  «        }t          j        |¦  «        } |||d|¬
¦  «        }||u sJ ‚t          ||¦  «         d S )Nrù   r*   r�   rŠ   ©r   r   r   rÙ   )rj   rÄ   rÃ   )rh   r9   r9   râ   ©rÄ   rÃ   rj   )	r   r    rÆ   r   rŽ   r�   r   rD   r   )r!   r    r   rÄ   rl   rj   rm   s          r   Útest_fftn_out_and_s_interactionz)TestFFT1D.test_fftn_out_and_s_interaction¸  sG  € ð •"”&”,ÐÐÝ�zÑ"Ô"ˆAˆAå�zÑ"Ô" R­¨zÑ(:Ô(:Ñ%:Ñ:ˆAÝŒ]�:Ð->Ð?Ñ?Ô?ð 	Fð 	FØˆC�•r”} QÑ'Ô'¨9¸9ÐEÑEÔEÐEð	Fð 	Fð 	Fñ 	Fô 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Føøøð 	Fð 	Fð 	Fð 	Fð ˆØ�3�q˜A IÐ.Ñ.Ô.ˆÝŒm˜HÑ%Ô%ˆØ��Q˜! )°Ð5Ñ5Ô5ˆØ˜ˆ}ˆ}ˆ}ˆ}Ý˜6 8Ñ,Ô,Ð,Ð,Ð,s   Á!"BÂBÂBrÄ   )é	   r9   r9   rü   c                 ó(  — t          d¦  «        dt          d¦  «        z  z   }t          j                             ||d¬¦  «        }t          j        |¦  «        }t          j                             ||d|¬¦  «        }||u sJ ‚t          ||¦  «         d S )N)rÿ   r9   rÁ   r   r*   rÙ   râ   rý   )r   r   r    rË   rD   r   )r!   rÄ   r   rl   rj   rm   s         r   Ú!test_irfftn_out_and_s_interactionz+TestFFT1D.test_irfftn_out_and_s_interactionÉ  s‰   € õ �<Ñ Ô  2¥f¨\Ñ&:Ô&:Ñ#:Ñ:ˆÝ”6—=’=  a¨i�=Ñ8Ô8ˆÝŒm˜HÑ%Ô%ˆÝ”—’˜q A¨I¸3�Ñ?Ô?ˆØ˜ˆ}ˆ}ˆ}ˆ}Ý˜6 8Ñ,Ô,Ð,Ð,Ð,r   N)2r#   r$   r%   r4   rŽ   ÚmarkÚparametrizer   ÚsingleÚdoubleÚ
longdoublerJ   rR   r^   rk   r‘   rq   rˆ   r’   r•   rœ   rŸ   r¦   r©   r­   r³   r¶   r¸   r¼   r¿   rÉ   rÌ   rÓ   rÖ   r    r¥   r¨   rÆ   rË   rÞ   r›   rž   rä   ré   rë   rí   rõ   rú   rþ   r  r&   r   r   r(   r(      s  € € € € € ð1ð 1ð 1ð „[×Ò˜W r¤y°"´)¸R¼]Ð&KÑLÔLðBð Bñ MÔLðBð" „[×Ò˜W r¤y°"´)¸R¼]Ð&KÑLÔLðEð Eñ MÔLðEð.Bð Bð Bð „[×Ò˜V VÑ,Ô,Ø„[×Ò˜W w°Ð&6Ñ7Ô7Ø„[×Ò˜[¨-Ñ8Ô8ð/ð /ñ 9Ô8ñ 8Ô7ñ -Ô,ð/ð6 „[×Ò˜V a¨ VÑ,Ô,ð9/ð 9/ñ -Ô,ð9/ðv=ð =ð =ð „[×Ò˜VÐ%KÑLÔLð'ð 'ñ MÔLð'ð	Cð 	Cð 	Cð	Dð 	Dð 	Dð
Cð 
Cð 
Cð
Dð 
Dð 
Dð@ð @ð @ð"Eð Eð Eð:ð :ð :ð
4ð 4ð 4ðDð Dð Dð4ð 4ð 4ð5ð 5ð 5ð$4ð 4ð 4ð
Hð 
Hð 
Hð
Eð 
Eð 
Eð „[×Ò˜T B¤F¤K°´´Ø$&¤F¤L°"´&´-ð$Añ Bô Bð5ð 5ñBô Bð5ð „[×Ò˜T B¤F¤K°´´Ø$&¤F¤K°´´ð$?ñ @ô @ð>ð >ñ@ô @ð>ð
 „[×Ò˜T B¤F¤K°´´Ø$&¤F¤L°"´&´-ð$Añ Bô Bðð ñBô Bðð
 „[×Ò˜T B¤F¤K°´´Ð#>Ñ?Ô?ð(ð (ñ @Ô?ð(ð
 „[×Ò˜T B¤F¤K°´´Ø$&¤F¤L°"´&´-Ø$&¤F¤K°´´ð$?ñ @ô @ð4ð 4ñ@ô @ð4ð
Dð Dð Dð& „[×Ò˜VÐ%;Ð%;Ð%;Ñ<Ô<Ø„[×Ò˜W w°Ð&6Ñ7Ô7Ø„[×Ò˜[¨-Ñ8Ô8ð/ð /ñ 9Ô8ñ 8Ô7ñ =Ô<ð/ð6 „[×Ò˜U R¤V¤[°"´&´,ÀÄÄÐ$MÑNÔNð-ð -ñ OÔNð-ð  „[×Ò˜S 9¨iÐ"8Ñ9Ô9ð-ð -ñ :Ô9ð-ð -ð -r   r(   r5   ÚorderÚFznon-contiguousr    c                 ó‚  — t           j                             d¦  «        }|                     ddd¦  «                             | d¬¦  «        }dt          j        t          j        |j        ¦  «        ¦  «        z  t          j        |j	        ¦  «        j
        z  }|dk    rt          j        |¦  «        }n(|d d d	…         }t          j        |d d d	…         ¦  «        }|j                             d
¦  «        rAt          d¦  «        D ]/} |||¬¦  «        } |||¬¦  «        }	t!          ||	||¬¦  «         Œ0d S |j                             d¦  «        rig d¢}
|j                             d¦  «        r|
                     g d¢¦  «         |
D ]/} |||¬¦  «        } |||¬¦  «        }	t!          ||	||¬¦  «         Œ0d S t$          ‚)Né*   r¯   é   é   F)rL   g       @r  r	   r    r   r   r>   )r›   r¥   )r_   )r
   r   rö   r¥   ))r   )r
   )r   NrÚ   )r   r   ÚRandomStateÚrandrB   r\   Úlog2r¬   Úfinfor5   ÚepsÚasfortranarrayÚascontiguousarrayr#   Úendswithr-   r   Úextendr   )r5   r  r    ÚrngÚXÚ_tolÚYr   ÚX_resÚY_resrÃ   Úaxs               r   Útest_fft_with_orderr  Õ  sî  € õ Œ)×
Ò
 Ñ
#Ô
#€CØ�Š��A�rÑÔ×!Ò! %¨eÐ!Ñ4Ô4€Aà•”�œ ¤™œÑ)Ô)Ñ)­B¬H°Q´WÑ,=Ô,=Ô,AÑA€DØ�‚|€|ÝÔ˜aÑ Ô ˆˆð ˆdˆd�ˆdŒGˆÝÔ   4 4 R 4¤Ñ)Ô)ˆà
„|×Ò˜UÑ#Ô#ð Ý˜!‘H”Hð 	@ð 	@ˆDØ�C˜ Ð%Ñ%Ô%ˆEØ�C˜ Ð%Ñ%Ô%ˆEÝ˜E 5¨t¸$Ð?Ñ?Ô?Ð?Ð?ð	@ð 	@ð 
Œ×	Ò	Ð/Ñ	0Ô	0ð 	Ø'Ð'Ð'ˆØŒ<× Ò  Ñ(Ô(ð 	2Ø�KŠKÐ0Ð0Ð0Ñ1Ô1Ð1Øð 	@ð 	@ˆBØ�C˜ �O‘O”OˆEØ�C˜ �O‘O”OˆEÝ˜E 5¨t¸$Ð?Ñ?Ô?Ð?Ð?ð	@ð 	@õ
 Ðr   ÚCr=   )Nr  é   c                 ób  — t           j                             d¦  «        }|                     d¦  «        }t          j        |t           j        | ¬¦  «        }t           j                             ||¬¦  «        }|j        j        |j        j        k    sJ ‚|j        j	        |j        j	        k    sJ ‚d S )Nr
  rh   )r5   r  r<   )
r   r   r  r  ÚasarrayÚ	complex64r    ÚflagsÚc_contiguousÚf_contiguous)r  r=   r  r   Úress        r   Útest_fft_output_orderr'  ü  s“   € õ Œ)×
Ò
 Ñ
#Ô
#€CØ�Š�‰Œ€AÝ
Œ
�1�BœL°Ð6Ñ6Ô6€AÝ
Œ&�*Š*�Q˜!ˆ*Ñ
Ô
€CØŒ9Ô! Q¤WÔ%9Ò9Ð9Ð9Ð9ØŒ9Ô! Q¤WÔ%9Ò9Ð9Ð9Ð9Ð9Ð9r   zCannot start thread)Úreasonc                   ó4   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestFFTThreadSafer8   )i   éÈ   c                 ó4  ‡‡‡‡— ˆfd„Št          j        ¦   «         Š ‰‰Ž }ˆˆˆfd„t          | j        ¦  «        D ¦   «         }d„ |D ¦   «          d„ |D ¦   «          t          | j        ¦  «        D ]'}t	          ‰                     d¬¦  «        |d¦  «         Œ(d S )Nc                 ó8   •— |                       ‰| Ž ¦  «         d S rc   )Úput)ÚargsÚqÚfuncs     €r   Úworkerz.TestFFTThreadSafe._test_mtsame.<locals>.worker  s!   ø€ Ø�EŠE�$�$˜�+ÑÔÐÐÐr   c                 ó@   •— g | ]}t          j        ‰‰‰f¬ ¦  «        ‘ŒS ))Útargetr/  )Ú	threadingÚThread)Ú.0r3   r/  r0  r2  s     €€€r   ú
<listcomp>z2TestFFTThreadSafe._test_mtsame.<locals>.<listcomp>  s=   ø€ ð +ð +ð +Øõ Ô V°4¸°)Ð<Ñ<Ô<ð +ð +ð +r   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r&   )Ústart©r7  r   s     r   r8  z2TestFFTThreadSafe._test_mtsame.<locals>.<listcomp>  s    € ÐÐÐ�qˆ�Š‰ŒÐÐÐr   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r&   )Újoinr;  s     r   r8  z2TestFFTThreadSafe._test_mtsame.<locals>.<listcomp>  s    € ÐÐÐ�aˆ�Š‰ŒÐÐÐr   r9   )Útimeoutz6Function returned wrong value in multithreaded context)ÚqueueÚQueuer-   Úthreadsr   Úget)r!   r1  r/  rl   Útr3   r0  r2  s    ``   @@r   Ú_test_mtsamezTestFFTThreadSafe._test_mtsame  sò   øøøø€ ð	ð 	ð 	ð 	ð 	õ ŒK‰MŒMˆØ�4˜�;ˆð+ð +ð +ð +ð +ð +Ý˜DœLÑ)Ô)ð+ñ +ô +ˆàÐ˜AÐÑÔÐàÐ˜1ÐÑÔÐå�t”|Ñ$Ô$ð 	Jð 	JˆAÝ˜qŸušu¨Q˜uÑ/Ô/°ØHñJô Jð Jð Jð	Jð 	Jr   c                 óŽ   — t          j        | j        ¦  «        dz  dz   }|                      t           j        j        |¦  «         d S ©Nr
   y                )r   rÇ   Úinput_shaperD  r    ©r!   rÛ   s     r   r^   zTestFFTThreadSafe.test_fft  s>   € ÝŒG�DÔ$Ñ%Ô%¨Ñ)¨"Ñ,ˆØ×Ò�"œ&œ* aÑ(Ô(Ð(Ð(Ð(r   c                 óŽ   — t          j        | j        ¦  «        dz  dz   }|                      t           j        j        |¦  «         d S rF  )r   rÇ   rG  rD  r    r.   rH  s     r   r•   zTestFFTThreadSafe.test_ifft!  s>   € ÝŒG�DÔ$Ñ%Ô%¨Ñ)¨"Ñ,ˆØ×Ò�"œ&œ+ qÑ)Ô)Ð)Ð)Ð)r   c                 ó‚   — t          j        | j        ¦  «        }|                      t           j        j        |¦  «         d S rc   )r   rÇ   rG  rD  r    r0   rH  s     r   r­   zTestFFTThreadSafe.test_rfft%  s4   € ÝŒG�DÔ$Ñ%Ô%ˆØ×Ò�"œ&œ+ qÑ)Ô)Ð)Ð)Ð)r   c                 óŽ   — t          j        | j        ¦  «        dz  dz   }|                      t           j        j        |¦  «         d S rF  )r   rÇ   rG  rD  r    r/   rH  s     r   r¸   zTestFFTThreadSafe.test_irfft)  s>   € ÝŒG�DÔ$Ñ%Ô%¨Ñ)¨"Ñ,ˆØ×Ò�"œ&œ,¨Ñ*Ô*Ð*Ð*Ð*r   N)
r#   r$   r%   rA  rG  rD  r^   r•   r­   r¸   r&   r   r   r*  r*    sl   € € € € € à€GØ€KðJð Jð Jð$)ð )ð )ð*ð *ð *ð*ð *ð *ð+ð +ð +ð +ð +r   r*  c                  ó&  — t          j        d¦  «        } t           j                             | d¬¦  «         t           j                             | d¬¦  «         t           j                             t          j        dgt          ¦  «        d¬¦  «         d S )Nrh   r
   r<   r   )r   r   r    r/   rÐ   rA   rk   )r   s    r   Útest_irfft_with_n_1_regressionrM  .  sk   € å
Œ	�"‰Œ€AÝ„F‡L‚L��a€LÑÔÐÝ„F‡K‚K��Q€KÑÔÐÝ„F‡L‚L•”˜1˜#�wÑ'Ô'¨2€LÑ.Ô.Ð.Ð.Ð.r   c                  óÂ   — t          j        d¦  «        dz  } t           j                             | d¬¦  «        }t          j        g d¢¦  «        }t          ||¦  «         d S )Nr9   y      ð?      ð?rh   r<   )
g      4@gk‹ á"Õ#@g�´§‰Ã'Àg$ pn]k@gÝìr¾–Àg      @gG&ƒÒ ÀgdèÆ�Ä¿gt =Mþ?gö@L>MÜ4À)r   r   r    rÐ   rA   r   )r   rm   rl   s      r   Ú"test_irfft_with_n_large_regressionrO  6  sc   € å
Œ	�!‰Œ˜Ñ€AÝŒV�[Š[˜˜bˆ[Ñ!Ô!€FÝŒxð 2ð 2ð 2ñ 3ô 3€Hõ �F˜HÑ%Ô%Ð%Ð%Ð%r   Údata)FTFrh   r;   r9   c                 ó¢   —  || ¦  «        }|                       t          j        | d¦  «        ¦  «        } ||¦  «        }t          ||¦  «         d S )Nr:   )rB   r   Úresult_typer   )rP  r    rm   Ú
float_datarl   s        r   Ú#test_fft_with_integer_or_bool_inputrT  @  sQ   € ð ˆS�‰YŒY€FØ—’�Rœ^¨D°"Ñ5Ô5Ñ6Ô6€JØˆs�:‰Œ€HÝ�v˜xÑ(Ô(Ð(Ð(Ð(r   )(Únumpyr   rŽ   Únumpy.randomr   Únumpy.testingr   r   r   r   r5  r?  r   r   r(   r  r  Úfloat32Úfloat64r"  Ú
complex128r    r›   r¥   r.   rž   r¨   r  r'  Úskipifr*  rM  rO  r0   r/   rA   r   Úuint8Úint16rT  r&   r   r   ú<module>r^     s!  ðØ Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð Ð Ð Ð Ø €€€ð+ð +ð +ð<ð <ð <ð <ð <ñ <ô <ð <ðz-ð z-ð z-ð z-ð z-ñ z-ô z-ð z-ðz „×ÒØØ	Œ�R”Z ¤¨r¬}Ð=ñ?ô ?ð „×Ò˜ 3Ð(8Ð"9Ñ:Ô:Ø„×ÒØØ	ŒŒ�R”V”[ "¤&¤+Ø	ŒŒ�b”f”l B¤F¤Lð	2ñ3ô 3ðð ñ	3ô 3ñ ;Ô:ñ?ô ?ðð> „×Ò˜ 3¨ *Ñ-Ô-Ø„×Ò˜˜m˜m˜mÑ,Ô,ð:ð :ñ -Ô,ñ .Ô-ð:ð „×Ò�GÐ$9ÐÑ:Ô:ð$+ð $+ð $+ð $+ð $+ñ $+ô $+ñ ;Ô:ð$+ðN/ð /ð /ð&ð &ð &ð „×Ò˜Ø„F„J�””˜RœVœ[¨"¬&¬,ð!ñ ô ð „×Ò˜Ø€B„HÐ!Ð!Ð!Ñ"Ô"Ø€B„Iˆb˜œÐ!Ñ!Ô!Ø€B„Iˆa�r”xÐ Ñ Ô ð"ñ ô ð
)ð )ñô ñô ð)ð )ð )r   