Ë
    qwj
Z  ã                   ó°  — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZmZmZmZmZmZ egZej.                  j0                  Zd„ Zd„ Z G d„ d	«      Zej.                  j9                  d
ej:                  ej<                  ej>                  ej@                  ejB                  ejD                  g«      ej.                  j9                  dddg«      ej.                  j9                  dej                  ejF                  ejH                  ejJ                  ejL                  ejN                  g«      d„ «       «       «       Z( ed¬«       G d„ d«      «       Z)ej.                  j9                  dej                  ejJ                  ejT                  ejV                  g«      d„ «       Z, eejZ                  «       G d„ d«      «       Z.ej.                  j9                  d eej                  «       eejJ                  «       eejT                  «       eejV                  «       eejH                  «       eejN                  «       eej^                  «       eejZ                  «       eej`                  «       eejb                  «      g
«      d„ «       Z2ej.                  j9                  d
ddg«      ej.                  j9                  d eej                  «       eejJ                  «       eejV                  «       eejH                  «       eejN                  «       eejZ                  «       eej`                  «      g«      d„ «       «       Z3y)é    N)Úrandom)Úassert_array_almost_equalÚassert_allclose)Úraises)Úis_numpyÚxp_sizeÚxp_assert_closeÚxp_assert_equalÚmake_xp_test_caseÚmake_xp_pytest_paramc                 óŽ   — | j                   dv r|j                  }|S | j                   dv r|j                  }|S t        d| › �«      ‚)N)ÚfftÚfftnÚfft2ÚifftÚifftnÚifft2ÚhfftÚhfftnÚhfft2ÚirfftÚirfftnÚirfft2)ÚrfftÚrfftnÚrfft2ÚihfftÚihfftnÚihfft2zUnknown FFT function: )Ú__name__Ú
complex128Úfloat64Ú
ValueError)ÚfuncÚxpÚdtypes      ú_/var/www/html/newmanjeet/manjet/venv/lib/python3.12/site-packages/scipy/fft/tests/test_basic.pyÚget_expected_input_dtyper(      sY   € à‡}�}ð Hñ Hà—‘ˆð €Lð 
�‰ÐQÑ	QØ—
‘
ˆð €Lô Ð1°$°Ð8Ó9Ð9ó    c                 ó,  — t        | «      }dt        j                  z  t        j                  |«      t	        |«      z  z  }t        j                  |«      j                  dd«      |z  }t        j                  | t        j                  |«      z  d¬«      S )Ny       €       Àéÿÿÿÿé   ©Úaxis)ÚlenÚnpÚpiÚarangeÚfloatÚreshapeÚsumÚexp)ÚxÚLÚphases      r'   Úfft1r:   #   sj   € ÜˆA‹€AØ”—‘‰I”r—y‘y “|¤E¨!£HÑ,Ñ-€EÜ�I‰I�a‹L× Ñ   QÓ'¨%Ñ/€EÜ�6‰6�!”B—F‘F˜5“M‘/¨Ô*Ð*r)   c                   óÐ  — e Zd Z eej
                  ej                  ej                  ej                  «      d„ «       Z e	dd¬«      d„ «       Z
 eej                  «      d„ «       Z e	dd¬«      d„ «       Z eej                  ej
                  «      d	„ «       Z eej                  ej                  «      d
„ «       Z eej
                  ej                   «      d„ «       Z eej                  ej$                  «      d„ «       Z eej
                  ej(                  «      d„ «       Z eej                  ej                  «      d„ «       Z eej                  ej                  «      d„ «       Z eej0                  «      d„ «       Z eej0                  ej4                  «      d„ «       Z eej$                  ej8                  «      d„ «       Z eej<                  ej8                  «      d„ «       Z eej@                  ej                  «      d„ «       Z! eej@                  ejD                  «      d„ «       Z# eejH                  ejJ                  «      d„ «       Z& eej                   «      d„ «       Z' eejP                  ejR                  «      d„ «       Z* eej(                  ejR                  «      d„ «       Z+d„ Z,e-j\                  j_                  d e0ej$                  «       e0ej(                  «       e0ej8                  «       e0ej<                  «      g«      d„ «       Z1e-j\                  j_                  d e0ejP                  «       e0ejR                  «      g«      d„ «       Z2e-j\                  j_                  d e0ej$                  «       e0ej(                  «       e0ej8                  «       e0ej<                  «      g«      d„ «       Z3e-j\                  j_                  d e0ej                  «       e0ej                   «       e0ej0                  «       e0ej4                  «       e0ejH                  «       e0ejJ                  «       e0ejP                  «       e0ejR                  «      g«      d„ «       Z4 eej                  ej                  ejD                  ej@                  ej                  ej
                  «      d „ «       Z5e-j\                  j_                  d!e6jn                  e6jp                  g«      d"„ «       Z9 eej                  ej                  «      e-j\                  j_                  d!d#d$g«      d%„ «       «       Z: eej                  ej
                  «      e-j\                  j_                  d!d&d'g«      d(„ «       «       Z;e-j\                  j_                  dej                  ej
                  ej                  ej                   ej$                  ej(                  ej                  ej                  ej0                  ej4                  ej8                  ej<                  ej@                  ejD                  ejH                  ejJ                  ejP                  ejR                  g«      d)„ «       Z<y*)+ÚTestFFTc           
      ó~  — d}|j                  t        |«      dt        |«      z  z   «      }|j                  t        |«      «      }dD ]s  }t        t        j                  t        j                  |d| «      «      |d| «       t        t        j
                  t        j                  |d| «      |«      |d| «       Œu y )Né   ù              ð?)	r,   é   é   é€   r>   é5   é•   i  i�  r   )Úasarrayr   r	   r   r   r   r   ©Úselfr%   Úmaxlenr7   ÚxrÚis         r'   Útest_identityzTestFFT.test_identity+   s”   € àˆØ�J‰J”v˜f“~¨¬6°&«>Ñ(9Ñ9Ó:ˆØ�Z‰Zœ˜v›Ó'ˆã8ˆAÜœCŸH™H¤S§W¡W¨Q¨q°¨V£_Ó5°q¸¸1°vÔ>ÜœCŸI™I¤c§h¡h¨r°!°A¨wÓ&7¸Ó;¸RÀÀ!¸WÕEñ 9r)   Tz&significant overhead for some backends)Únp_onlyÚreasonc           
      ó’  — d}|j                  t        |«      dt        |«      z  z   «      }|j                  t        |«      «      }t        d|«      D ]s  }t        t	        j
                  t	        j                  |d| «      «      |d| «       t        t	        j                  t	        j                  |d| «      |«      |d| «       Œu y )Nr>   r?   r,   r   )rE   r   Úranger	   r   r   r   r   rF   s         r'   Útest_identity_extensivezTestFFT.test_identity_extensive5   s›   € àˆØ�J‰J”v˜f“~¨¬6°&«>Ñ(9Ñ9Ó:ˆØ�Z‰Zœ˜v›Ó'ˆÜ�q˜&Ö!ˆAÜœCŸH™H¤S§W¡W¨Q¨q°¨V£_Ó5°q¸¸1°vÔ>ÜœCŸI™I¤c§h¡h¨r°!°A¨wÓ&7¸Ó;¸RÀÀ!¸WÕEñ "r)   c           
      óò  — t        d«      dt        d«      z  z   }|j                  t        |«      «      }|j                  |«      }t        t	        j                  |«      |«       t        t	        j                  |d¬«      |«       t        t	        j                  |d¬«      ||j                  |j                  d|j                  ¬«      «      z  «       t        t	        j                  |d¬«      |dz  «       y )Né   r?   Úbackward©ÚnormÚortho©r&   Úforward)r   rE   r:   r	   r   Úsqrtr"   ©rG   r%   r7   Úexpects       r'   Útest_fftzTestFFT.test_fft>   s¯   € ä�2‹J˜œF 2›J™Ñ&ˆØ—‘œD ›GÓ$ˆØ�J‰J�q‹MˆÜœŸ™ ›
 FÔ+ÜœŸ™ ¨
Ô3°VÔ<ÜœŸ™ ¨Ô0Ø §¡¨¯©°B¸b¿j¹j¨Ó)IÓ!JÑJô	MäœŸ™ ¨	Ô2°F¸R±KÕ@r)   zsome backends allow `n=0`c                 ó‚   — |j                  g d¢|j                  ¬«      }t        t        t        j                  |d«       y )N©r,   r@   é   rW   r   )rE   r!   Úassert_raisesr#   r   )rG   r%   r7   s      r'   Ú
test_fft_nzTestFFT.test_fft_nI   s*   € à�J‰J’y¨¯©ˆJÓ6ˆÜ”j¤#§'¡'¨1¨aÕ0r)   c           	      ó4  — |j                  t        d«      dt        d«      z  z   «      }t        t        j                  t        j                  |«      «      |«       dD ]8  }t        t        j                  t        j                  ||¬«      |¬«      |«       Œ: y )NrR   r?   ©rS   rV   rX   rT   )rE   r   r	   r   r   ©rG   r%   r7   rU   s       r'   Ú	test_ifftzTestFFT.test_ifftN   sf   € à�J‰J”v˜b“z B¤v¨b£z¡MÑ1Ó2ˆÜœŸ™¤§¡¨£Ó,¨aÔ0Û4ˆDÜœCŸH™H¤S§W¡W¨Q°TÔ%:ÀÔFÈÕJñ 5r)   c           
      ó  — |j                  t        d«      dt        d«      z  z   «      }t        j                  t        j                  |d¬«      d¬«      }t        t        j                  |«      |«       t        t        j                  |d¬«      |«       t        t        j                  |d¬«      ||j                  |j                  d	|j                  ¬
«      «      z  «       t        t        j                  |d¬«      |d	z  «       y ©N©rR   é   r?   r,   r-   r   rS   rT   rV   éX  rW   rX   )rE   r   r   r	   r   rY   r"   rZ   s       r'   Ú	test_fft2zTestFFT.test_fft2U   s¸   € à�J‰J”v˜hÓ'¨"¬V°HÓ-=Ñ*=Ñ=Ó>ˆÜ—‘œŸ™ ¨Ô+°!Ô4ˆÜœŸ™ › VÔ,ÜœŸ™ ¨Ô4°fÔ=ÜœŸ™ ¨Ô1Ø §¡¨¯©°GÀ2Ç:Á:¨Ó)NÓ!OÑOô	QäœŸ™ ¨Ô3°V¸wÑ5GÕHr)   c           
      ó  — |j                  t        d«      dt        d«      z  z   «      }t        j                  t        j                  |d¬«      d¬«      }t	        t        j
                  |«      |«       t	        t        j
                  |d¬«      |«       t	        t        j
                  |d¬«      ||j                  |j                  d	|j                  ¬
«      «      z  «       t	        t        j
                  |d¬«      |d	z  «       y rg   )rE   r   r   r   r	   r   rY   r"   rZ   s       r'   Ú
test_ifft2zTestFFT.test_ifft2_   s¸   € à�J‰J”v˜hÓ'¨"¬V°HÓ-=Ñ*=Ñ=Ó>ˆÜ—‘œ#Ÿ(™( 1¨1Ô-°AÔ6ˆÜœŸ	™	 !› fÔ-ÜœŸ	™	 !¨*Ô5°vÔ>ÜœŸ	™	 !¨'Ô2Ø §¡¨¯©°GÀ2Ç:Á:¨Ó)NÓ!OÑOô	QäœŸ	™	 !¨)Ô4°fÀÑ6HÕIr)   c           
      ó<  — |j                  t        d«      dt        d«      z  z   «      }t        j                  t        j                  t        j                  |d¬«      d¬«      d¬«      }t        t        j                  |«      |«       t        t        j                  |d¬«      |«       t        t        j                  |d	¬«      ||j                  |j                  d
|j                  ¬«      «      z  «       t        t        j                  |d¬«      |d
z  «       y )N©rR   ri   é
   r?   r@   r-   r,   r   rS   rT   rV   ép  rW   rX   )rE   r   r   r	   r   rY   r"   rZ   s       r'   Ú	test_fftnzTestFFT.test_fftni   sÃ   € à�J‰J”v˜lÓ+¨b´¸Ó1EÑ.EÑEÓFˆÜ—‘œŸ™¤§¡¨°Ô!3¸!Ô<À1ÔEˆÜœŸ™ › VÔ,ÜœŸ™ ¨Ô4°fÔ=ÜœŸ™ ¨Ô1Ø §¡¨¯©°LÈÏ
É
¨Ó)SÓ!TÑTô	VäœŸ™ ¨Ô3°V¸|Ñ5LÕMr)   c           
      ón  — |j                  t        d«      dt        d«      z  z   «      }t        j                  t        j                  t        j                  |d¬«      d¬«      d¬«      }t	        t        j
                  |«      |d¬«       t	        t        j
                  |d	¬
«      |d¬«       t	        t        j
                  |d¬
«      t        j
                  |«      |j                  |j                  d|j                  ¬«      «      z  «       t	        t        j
                  |d¬
«      |dz  d¬«       y )Nro   r?   r@   r-   r,   r   gH¯¼šò×z>)ÚrtolrS   rT   rV   rq   rW   rX   )rE   r   r   r   r	   r   rY   r"   rZ   s       r'   Ú
test_ifftnzTestFFT.test_ifftns   s×   € à�J‰J”v˜lÓ+¨b´¸Ó1EÑ.EÑEÓFˆÜ—‘œ#Ÿ(™(¤3§8¡8¨A°AÔ#6¸QÔ?ÀaÔHˆÜœŸ	™	 !› f°4Õ8ÜœŸ	™	 !¨*Ô5°vÀDÕIÜÜ�I‰I�a˜gÔ&Ü�I‰I�a‹L˜2Ÿ7™7 2§:¡:¨lÀ"Ç*Á* :Ó#MÓNÑNô	
ô 	œŸ	™	 !¨)Ô4Ø ,Ñ/Ø!ö	#r)   c                 ó  — |j                  t        d«      |j                  ¬«      }t        |«      dt        |«      z  fD ]É  }dD ]^  }t	        t        j                  |||¬«      t        j
                  |j                  ||j                  ¬«      ||¬«      d |dz  dz    «       Œ` t	        t        j                  ||d¬«      t        j                  ||¬«      |j                  |j                  ||j                  ¬«      «      z  «       ŒË y )	Né   rW   r@   )NrS   rV   rX   ©ÚnrU   r,   rV   )ry   )	rE   r   r"   r   r	   r   r   r!   rY   )rG   r%   r7   ry   rU   s        r'   Ú	test_rfftzTestFFT.test_rfft�   s×   € à�J‰J”v˜b“z¨¯©ˆJÓ4ˆÜ˜!“*˜a¤¨£
™lÓ+ˆAÛ>�Ü¤§¡¨¨a°dÔ ;Ü #§¡¨¯
©
°1¸B¿M¹M¨
Ó(JØ*+°$ô!8Ø8C¸!¸Q¹$À¹(ð!EõFð ?ô Ü—‘˜˜a gÔ.Ü—‘˜˜aÔ  2§7¡7¨2¯:©:°a¸r¿z¹z¨:Ó+JÓ#KÑKõñ ,r)   c           	      ó  — |j                  t        d«      «      }t        t        j                  t        j
                  |«      «      |«       dD ]8  }t        t        j                  t        j
                  ||¬«      |¬«      |«       Œ: y )NrR   rc   rT   )rE   r   r	   r   r   r   rd   s       r'   Ú
test_irfftzTestFFT.test_irfftŽ   sY   € à�J‰J”v˜b“zÓ"ˆÜœŸ	™	¤#§(¡(¨1£+Ó.°Ô2Û4ˆDÜœCŸI™I¤c§h¡h¨q°tÔ&<À4ÔHÈ!ÕLñ 5r)   c           
      ó&  — |j                  t        d«      |j                  ¬«      }t        j                  |j                  ||j
                  ¬«      «      d d …d d…f   }t        t        j                  |«      |«       t        t        j                  |d¬«      |«       t        t        j                  |d¬«      ||j                  |j                  d|j                  ¬«      «      z  «       t        t        j                  |d¬«      |dz  «       y ©	Nrh   rW   é   rS   rT   rV   rj   rX   )	rE   r   r"   r   r   r!   r	   r   rY   rZ   s       r'   Ú
test_rfft2zTestFFT.test_rfft2•   sÂ   € à�J‰J”v˜hÓ'¨r¯z©zˆJÓ:ˆÜ—‘˜"Ÿ*™* Q¨b¯m©m˜*Ó<Ó=ºaÀÀ"À¸fÑEˆÜœŸ	™	 !› fÔ-ÜœŸ	™	 !¨*Ô5°vÔ>ÜœŸ	™	 !¨'Ô2Ø §¡¨¯©°GÀ2Ç:Á:¨Ó)NÓ!OÑOô	QäœŸ	™	 !¨)Ô4°fÀÑ6HÕIr)   c           	      ó  — |j                  t        d«      «      }t        t        j                  t        j
                  |«      «      |«       dD ]8  }t        t        j                  t        j
                  ||¬«      |¬«      |«       Œ: y ©Nrh   rc   rT   )rE   r   r	   r   r   r   rd   s       r'   Útest_irfft2zTestFFT.test_irfft2Ÿ   sZ   € à�J‰J”v˜hÓ'Ó(ˆÜœŸ
™
¤3§9¡9¨Q£<Ó0°!Ô4Û4ˆDÜœCŸJ™J¤s§y¡y°¸Ô'>ÀTÔJÈAÕNñ 5r)   c           
      ó,  — |j                  t        d«      |j                  ¬«      }t        j                  |j                  ||j
                  ¬«      «      d d …d d …d d…f   }t        t        j                  |«      |«       t        t        j                  |d¬«      |«       t        t        j                  |d¬«      ||j                  |j                  d|j                  ¬«      «      z  «       t        t        j                  |d¬«      |dz  «       y ©	Nro   rW   é   rS   rT   rV   rq   rX   )	rE   r   r"   r   r   r!   r	   r   rY   rZ   s       r'   Ú
test_rfftnzTestFFT.test_rfftn¦   sÄ   € à�J‰J”v˜lÓ+°2·:±:ˆJÓ>ˆÜ—‘˜"Ÿ*™* Q¨b¯m©m˜*Ó<Ó=ºaÂÀBÀQÀB¸hÑGˆÜœŸ	™	 !› fÔ-ÜœŸ	™	 !¨*Ô5°vÔ>ÜœŸ	™	 !¨'Ô2Ø §¡¨¯©°LÈÏ
É
¨Ó)SÓ!TÑTô	VäœŸ	™	 !¨)Ô4°fÀÑ6MÕNr)   c           	      ó  — |j                  t        d«      «      }t        t        j                  t        j
                  |«      «      |«       dD ]8  }t        t        j                  t        j
                  ||¬«      |¬«      |«       Œ: y ©Nro   rc   rT   )rE   r   r	   r   r   r   rd   s       r'   Útest_irfftnzTestFFT.test_irfftn°   sZ   € à�J‰J”v˜lÓ+Ó,ˆÜœŸ
™
¤3§9¡9¨Q£<Ó0°!Ô4Û4ˆDÜœCŸJ™J¤s§y¡y°¸Ô'>ÀTÔJÈAÕNñ 5r)   c           
      óÒ  — t        d«      dt        d«      z  z   }t        j                  t        d«      |t        d«      f«      }t        j                  ||d d d…   j                  «       f«      }|j	                  |«      }|j	                  |«      }|j                  t        j                  |«      «      }t        t        j                  |«      |«       t        t        j                  |d¬«      |«       t        t        j                  |d¬«      ||j                  |j	                  d|j                  ¬	«      «      z  «       t        t        j                  |d
¬«      |dz  «       y )Né   r?   r,   r+   rS   rT   rV   rR   rW   rX   )r   r0   ÚconcatenateÚconjrE   Úrealr   r	   r   rY   r"   )rG   r%   r7   Úx_hermr[   s        r'   Ú	test_hfftzTestFFT.test_hfft·   s   € ä�2‹J˜œF 2›J™Ñ&ˆÜ—‘¤¨£¨A¬v°a«yÐ 9Ó:ˆÜ�N‰N˜F A¡d¨ d¡G§L¡L£NÐ3Ó4ˆØ�J‰J�q‹MˆØ—‘˜FÓ#ˆØ—‘œŸ™ ›Ó$ˆÜœŸ™ Ó(¨&Ô1ÜœŸ™ ¨jÔ9¸6ÔBÜœŸ™ ¨gÔ6Ø §¡¨¯©°B¸b¿j¹j¨Ó)IÓ!JÑJô	LäœŸ™ ¨iÔ8¸&À2¹+ÕFr)   c           	      ó  — t        d«      dt        d«      z  z   }t        j                  t        d«      |t        d«      f«      }t        j                  ||d d d…   j                  «       f«      }|j	                  |«      }|j	                  |«      }t        t        j                  t        j                  |«      «      |«       dD ]8  }t        t        j                  t        j                  ||¬«      |¬«      |«       Œ: y )NrŒ   r?   r,   r+   rc   rT   )	r   r0   r�   rŽ   rE   r	   r   r   r   )rG   r%   r7   r�   rU   s        r'   Ú
test_ihfftzTestFFT.test_ihfftÅ   s·   € ä�2‹J˜œF 2›J™Ñ&ˆÜ—‘¤¨£¨A¬v°a«yÐ 9Ó:ˆÜ�N‰N˜F A¡d¨ d¡G§L¡L£NÐ3Ó4ˆØ�J‰J�q‹MˆØ—‘˜FÓ#ˆÜœŸ	™	¤#§(¡(¨6Ó"2Ó3°VÔ<Û4ˆDÜœCŸI™I¤c§h¡h¨v¸DÔ&AÈÔMÈvÕVñ 5r)   c           	      ó  — |j                  t        d«      «      }t        t        j                  t        j
                  |«      «      |«       dD ]8  }t        t        j                  t        j
                  ||¬«      |¬«      |«       Œ: y r‚   )rE   r   r	   r   r   r   rd   s       r'   Ú
test_hfft2zTestFFT.test_hfft2Ð   sZ   € à�J‰J”v˜hÓ'Ó(ˆÜœŸ	™	¤#§*¡*¨Q£-Ó0°!Ô4Û4ˆDÜœCŸI™I¤c§j¡j°¸Ô&>ÀTÔJÈAÕNñ 5r)   c           
      ó&  — |j                  t        d«      |j                  ¬«      }t        j                  |j                  ||j
                  ¬«      «      d d …d d…f   }t        t        j                  |«      |«       t        t        j                  |d¬«      |«       t        t        j                  |d¬«      ||j                  |j                  d|j                  ¬«      «      z  «       t        t        j                  |d¬«      |dz  «       y r~   )	rE   r   r"   r   r   r!   r	   r   rY   rZ   s       r'   Útest_ihfft2zTestFFT.test_ihfft2×   sÄ   € à�J‰J”v˜hÓ'¨r¯z©zˆJÓ:ˆÜ—‘˜2Ÿ:™: a¨r¯}©}˜:Ó=Ó>ºqÀ#À2À#¸vÑFˆÜœŸ
™
 1› vÔ.ÜœŸ
™
 1¨:Ô6¸Ô?ÜÜ�J‰J�q˜wÔ'Ø�R—W‘W˜RŸZ™Z¨°r·z±z˜ZÓBÓCÑCô	
ô 	œŸ
™
 1¨9Ô5°vÀÑ7IÕJr)   c           	      ó  — |j                  t        d«      «      }t        t        j                  t        j
                  |«      «      |«       dD ]8  }t        t        j                  t        j
                  ||¬«      |¬«      |«       Œ: y r‰   )rE   r   r	   r   r   r   rd   s       r'   Ú
test_hfftnzTestFFT.test_hfftnã   sZ   € à�J‰J”v˜lÓ+Ó,ˆÜœŸ	™	¤#§*¡*¨Q£-Ó0°!Ô4Û4ˆDÜœCŸI™I¤c§j¡j°¸Ô&>ÀTÔJÈAÕNñ 5r)   c           
      ó,  — |j                  t        d«      |j                  ¬«      }t        j                  |j                  ||j
                  ¬«      «      d d …d d …d d…f   }t        |t        j                  |«      «       t        |t        j                  |d¬«      «       t        t        j                  |d¬«      ||j                  |j                  d|j                  ¬«      «      z  «       t        t        j                  |d¬«      |dz  «       y r…   )	rE   r   r"   r   r   r!   r	   r   rY   rZ   s       r'   Útest_ihfftnzTestFFT.test_ihfftnê   sÆ   € à�J‰J”v˜lÓ+°2·:±:ˆJÓ>ˆÜ—‘˜2Ÿ:™: a¨r¯}©}˜:Ó=Ó>ºqÂ!ÀRÀaÀR¸xÑHˆÜ˜¤§
¡
¨1£Ô.Ü˜¤§
¡
¨1°:Ô >Ô?ÜÜ�J‰J�q˜wÔ'Ø�R—W‘W˜RŸZ™Z¨¸B¿J¹J˜ZÓGÓHÑHô	
ô 	œŸ
™
 1¨9Ô5°vÀÑ7NÕOr)   c                 óê   — t        ||«      }|j                  t        d«      |¬«      }g d¢}|D ]B  } ||j                  ||¬«      «      }|j                   |||¬«      |¬«      }t	        ||«       ŒD y )Nro   rW   )©r   r,   r@   ©r   r@   r,   )r,   r   r@   ©r,   r@   r   )r@   r   r,   )r@   r,   r   ©Úaxes)r(   rE   r   Úpermute_dimsr	   )	rG   Úopr%   r&   r7   r¡   ÚaÚop_trÚtr_ops	            r'   Ú_check_axeszTestFFT._check_axesö   sm   € Ü(¨¨RÓ0ˆØ�J‰J”v˜lÓ+°5ˆJÓ9ˆÚQˆãˆAÙ�r—‘ q¨q�Ó1Ó2ˆEØ—O‘O¡B q¨q¤M¸�OÓ:ˆEÜ˜E 5Õ)ñ r)   r£   c                 ó(   — | j                  ||«       y ©N©r§   ©rG   r£   r%   s      r'   Útest_axes_standardzTestFFT.test_axes_standard   s   € ð
 	×Ñ˜˜RÕ r)   c                 ó(   — | j                  ||«       y r©   rª   r«   s      r'   Útest_axes_non_standardzTestFFT.test_axes_non_standard  s   € ð 	×Ñ˜˜RÕ r)   c           
      ó²  — t        ||«      }|j                  t        d«      |¬«      }g d¢}|D ]¡  }t        t	        |j
                  «      D �cg c]*  }||d d v rd|j                  |   z  n|j                  |   ‘Œ, c}«      } ||j                  ||¬«      |d d d¬«      }	|j                   |||d d |d d ¬«      |¬«      }
t        |	|
«       Œ£ y c c}w ©N)rA   é   é   rW   )r�   rž   rŸ   r@   r    ©r   r,   )Úsr¡   ©	r(   rE   r   ÚtuplerO   ÚndimÚshaper¢   r	   ©rG   r£   r%   r&   r7   r¡   r¤   Úaxr¸   r¥   r¦   s              r'   Ú$test_axes_subset_with_shape_standardz,TestFFT.test_axes_subset_with_shape_standard  sê   € ô
 )¨¨RÓ0ˆØ�J‰J”v˜jÓ)°ˆJÓ7ˆÚ0ˆãˆAäÜ%*¨1¯6©6¤]ó4Ù%2˜rð -/°!°B°Q°%©K˜1˜QŸW™W R™[š=¸Q¿W¹WÀR¹[ÑHØ%2ñ4ó 5ˆEñ �r—‘ q¨q�Ó1Ø˜r ˜¨ô1ˆEà—O‘O¡B q¨E°"°1¨I¸A¸b¸q¸EÔ$BØ./ð $ó 1ˆEä˜E 5Õ)ñ ùò4ó   Á/C
c           
      ó²  — t        ||«      }|j                  t        d«      |¬«      }g d¢}|D ]¡  }t        t	        |j
                  «      D �cg c]*  }||d d v rd|j                  |   z  n|j                  |   ‘Œ, c}«      } ||j                  ||¬«      |d d d¬«      }	|j                   |||d d |d d ¬«      |¬«      }
t        |	|
«       Œ£ y c c}w r°   rµ   r¹   s              r'   Ú(test_axes_subset_with_shape_non_standardz0TestFFT.test_axes_subset_with_shape_non_standard   sá   € ô )¨¨RÓ0ˆØ�J‰J”v˜jÓ)°ˆJÓ7ˆÚ0ˆãˆAäÜ%*¨1¯6©6¤]ó4Ù%2˜rð -/°!°B°Q°%©K˜1˜QŸW™W R™[š=¸Q¿W¹WÀR¹[ÑHØ%2ñ4ó 5ˆEñ �r—‘ q¨q�Ó1°U¸2¸A°YÀVÔLˆEØ—O‘O¡B q¨E°"°1¨I¸A¸b¸q¸EÔ$BÈ�OÓKˆEÜ˜E 5Õ)ñ ùò4r¼   c                 óÊ  — |j                  t        d«      |j                  ¬«      }|j                  j	                  |«      }t        |«      dz  }t        j                  t        j                  ft        j                  t        j                  ft        j                  t        j                  fg}|D ]°  \  }}|t        j                  k(  r8|j                  ||j                  ¬«      }|j                  j	                  |«      }t        |«      dt        |«      z  fD ]D  }dD ]=  } ||||¬«      }	 ||	||¬«      }	t        |j                  j	                  |	«      |«       Œ? ŒF Œ² y )NrR   rW   r@   rc   rx   )rE   r   r"   ÚlinalgÚvector_normr   r   r   r   r   r   r   r!   r	   )
rG   r%   r7   Úx_normry   Ú
func_pairsÚforwÚbackrU   Útmps
             r'   Útest_all_1d_norm_preservingz#TestFFT.test_all_1d_norm_preserving6  s  € ð �J‰J”v˜b“z¨¯©ˆJÓ4ˆà—‘×&Ñ& qÓ)ˆÜ�A‹J˜‰NˆÜ—x‘x¤§¡Ð+ô —y‘y¤#§(¡(Ð+ä—w‘w¤§¡Ð)ðˆ
ó %‰JˆD�$Ø”s—w‘wŠØ—J‘J˜q¨¯©�JÓ6�ØŸ™×.Ñ.¨qÓ1�Ü˜a“j !¤G¨A£J¡,Ó/�Û<�DÙ˜q A¨DÔ1�CÙ˜s a¨dÔ3�CÜ# B§I¡I×$9Ñ$9¸#Ó$>ÀÕGñ =ñ 0ñ	 %r)   r&   c                 óZ  — t        d«      j                  |«      }t        j                  t        j                  t        j
                  t        j                  i}|j                  ||   «      }t        j                  t        j                  |«      «      }t        j                  t        j                  |«      «      }t        j                  t        j                  |«      |j                  d   «      }t        ||«       t        ||«       t        ||«       |j                  |j                  k(  sJ ‚|j                  t        j                   t        j"                  |j                  «      k(  sJ ‚|j                  t        j                   t        j"                  |j                  «      k(  sJ ‚y )NrR   r   )r   Úastyper0   Úfloat16Ú	complex64Ú
longdoubleÚclongdoubler   r   r   r   r   r   r¸   r   r&   Úresult_typeÚfloat32)rG   r&   r7   Ú
out_dtypesÚ	x_complexÚres_fftÚres_rfftÚres_hffts           r'   Útest_dtypes_nonstandardzTestFFT.test_dtypes_nonstandardN  s  € ä�2‹J×Ñ˜eÓ$ˆÜ—j‘j¤"§,¡,´·±¼r¿~¹~ÐNˆ
Ø—H‘H˜Z¨Ñ.Ó/ˆ	ä—(‘(œ3Ÿ7™7 1›:Ó&ˆÜ—9‘9œSŸX™X a›[Ó)ˆÜ—8‘8œCŸI™I a›L¨!¯'©'°!©*Ó5ˆä! '¨9Ô5Ü! (¨AÔ.Ü! (¨AÔ.Ø�}‰} 	§¡Ò/Ð/Ð/Ø�~‰~¤§¡´·
±
¸A¿G¹GÓ!DÒDÐDÐDØ�~‰~¤§¡´·
±
¸A¿G¹GÓ!DÒDÐDÑDr)   rÏ   r"   c                 ó<  — |j                  t        d«      t        ||«      ¬«      }t        j                  t        j
                  |«      «      }t        j                  t        j                  |«      |j                  d   «      }t        ||«       t        ||«       y )NrR   rW   r   )
rE   r   Úgetattrr   r   r   r   r   r¸   r	   )rG   r&   r%   r7   rÓ   rÔ   s         r'   Útest_dtypes_realzTestFFT.test_dtypes_real_  sk   € ð �J‰J”v˜b“z¬°°UÓ);ˆJÓ<ˆä—9‘9œSŸX™X a›[Ó)ˆÜ—8‘8œCŸI™I a›L¨!¯'©'°!©*Ó5ˆä˜ !Ô$Ü˜ !Õ$r)   rË   r!   c                 ó  — t         j                  j                  d«      }|j                  |j                  d«      t	        ||«      ¬«      }t        j                  t        j
                  |«      «      }t        ||«       y )NiÒ  rR   rW   )r0   r   Údefault_rngrE   r×   r   r   r	   )rG   r&   r%   Úrngr7   rÒ   s         r'   Útest_dtypes_complexzTestFFT.test_dtypes_complexj  sY   € ô �i‰i×#Ñ# DÓ)ˆØ�J‰J�s—z‘z "“~¬W°R¸Ó-?ˆJÓ@ˆä—(‘(œ3Ÿ7™7 1›:Ó&ˆä˜ Õ#r)   c                 óˆ   — ddgddggddgddggddgddggg}t         ||«       |t        j                  |«      «      «       y )Ng      ð?)r	   r0   rE   )rG   r£   r7   s      r'   Útest_array_likezTestFFT.test_array_liket  sX   € ð �Cˆj˜3 ˜*Ð%Ø�Cˆj˜3 ˜*Ð%Ø�Cˆj˜3 ˜*Ð%ð'ˆô 	™˜1›™r¤"§*¡*¨Q£-Ó0Õ1r)   N)=r    Ú
__module__Ú__qualname__r   r   r   r   r   rK   Úskip_xp_backendsrP   r\   ra   re   r   rk   r   rm   r   rr   r   ru   rz   r|   r   r€   r   rƒ   r   r‡   r   rŠ   r   r‘   r   r“   r   r   r•   r—   r   r   r™   r›   r§   ÚpytestÚmarkÚparametrizer   r¬   r®   r»   r¾   rÇ   r0   rÊ   rÌ   rÕ   rØ   rÜ   rÞ   © r)   r'   r<   r<   *   s  „ Ù�s—x‘x §¡¨#¯(©(°C·I±IÓ>ñFó ?ðFñ ˜dÐ+SÔTñFó UðFñ �s—w‘wÓñAó  ðAñ ˜dÐ+FÔGñ1ó Hð1ñ �s—w‘w §¡Ó)ñKó *ðKñ �s—w‘w §¡Ó)ñIó *ðIñ �s—x‘x §¡Ó+ñJó ,ðJñ �s—w‘w §¡Ó)ñNó *ðNñ �s—x‘x §¡Ó+ñ#ó ,ð#ñ �s—w‘w §¡Ó)ñ
ó *ð
ñ �s—y‘y #§(¡(Ó+ñMó ,ðMñ �s—y‘yÓ!ñJó "ðJñ �s—y‘y #§*¡*Ó-ñOó .ðOñ �s—x‘x §¡Ó+ñOó ,ðOñ �s—z‘z 3§9¡9Ó-ñOó .ðOñ �s—x‘x §¡Ó)ñGó *ðGñ �s—x‘x §¡Ó+ñWó ,ðWñ �s—y‘y #§*¡*Ó-ñOó .ðOñ �s—y‘yÓ!ñ	Kó "ð	Kñ �s—y‘y #§*¡*Ó-ñOó .ðOñ �s—y‘y #§*¡*Ó-ñ	Pó .ð	Pò*ð ‡[�[×Ñ˜TÑ$8¸¿¹Ó$BÙ$8¸¿¹Ó$CÙ$8¸¿¹Ó$CÙ$8¸¿¹Ó$Dð$Fó Gñ!ó	Gð!ð ‡[�[×Ñ˜TÑ$8¸¿¹Ó$CÙ$8¸¿¹Ó$Dð$Fó Gñ!óGð!ð ‡[�[×Ñ˜TÑ$8¸¿¹Ó$BÙ$8¸¿¹Ó$CÙ$8¸¿¹Ó$CÙ$8¸¿¹Ó$Dð$Fó Gñ*ó	Gð*ð  ‡[�[×Ñ˜TÑ$8¸¿¹Ó$BÙ$8¸¿¹Ó$CÙ$8¸¿¹Ó$CÙ$8¸¿¹Ó$DÙ$8¸¿¹Ó$CÙ$8¸¿¹Ó$DÙ$8¸¿¹Ó$CÙ$8¸¿¹Ó$Dð$Fó Gñ*óGð*ñ �s—x‘x §¡¨C¯I©I°s·x±xÀÇÁÈ#Ï(É(ÓSñHó TðHð. ‡[�[×Ñ˜W r§z¡z°2·=±=Ð&AÓBñEó CðEñ  �s—y‘y #§(¡(Ó+Ø‡[�[×Ñ˜W y°)Ð&<Ó=ñ%ó >ó ,ð%ñ �s—w‘w §¡Ó)Ø‡[�[×Ñ˜W {°LÐ&AÓBñ$ó Có *ð$ð ‡[�[×Ñ˜T C§G¡G¨S¯X©XØ$'§H¡H¨c¯i©iØ$'§H¡H¨c¯i©iØ$'§H¡H¨c¯i©iØ$'§I¡I¨s¯z©zØ$'§I¡I¨s¯z©zØ$'§H¡H¨c¯i©iØ$'§I¡I¨s¯z©zØ$'§I¡I¨s¯z©zð$<ó =ñ2ó=ñ2r)   r<   r&   ÚorderÚFznon-contiguousr   c                 ó’  — t         j                  j                  d«      }|j                  ddd«      j	                  | d¬«      }|dk(  rt        j
                  |«      }n#|d d d…   }t        j                  |d d d…   «      }|j                  j                  d	«      r1t        d
«      D ]"  } |||¬«      } |||¬«      }t        ||«       Œ$ y |j                  j                  d«      rZg d¢}	|j                  j                  d«      r|	j                  g d¢«       |	D ]"  }
 |||
¬«      } |||
¬«      }t        ||«       Œ$ y t        ‚)Né*   r±   é   é   F)Úcopyrç   r+   r   r_   r-   )r   r   )r³   )r,   r@   )r   r@   r   ))r   )r,   )r@   Nr    )r0   r   ÚRandomStateÚrandrÉ   ÚasfortranarrayÚascontiguousarrayr    ÚendswithrO   r   Úextendr#   )r&   ræ   r   rÛ   ÚXÚYr.   ÚX_resÚY_resr¡   rº   s              r'   Útest_fft_with_orderr÷   „  s%  € ô �)‰)×
Ñ
 Ó
#€CØ�‰��A�rÓ×!Ñ! %¨eÐ!Ó4€AØ�‚|Ü×Ñ˜aÓ ‰ð ‰d�ˆd‰GˆÜ× Ñ  ¡4 R 4¡Ó)ˆà
‡|�|×Ñ˜UÔ#Ü˜!–HˆDÙ˜ Ô%ˆEÙ˜ Ô%ˆEÜ% e¨UÕ3ñ ð 
�‰×	Ñ	Ð/Ô	0Ú'ˆØ�<‰<× Ñ  Ô(Ø�K‰KÒ0Ô1ÛˆBÙ˜ ”OˆEÙ˜ ”OˆEÜ% e¨UÕ3ñ ô
 Ðr)   T)Úcpu_onlyc                   ó@  — e Zd ZdZdZddœd„Z eej                  «      d„ «       Z eej                  «      d„ «       Z
 eej                  «      d„ «       Z eej                  «      d	„ «       Z eej                  «      d
„ «       Z eej"                  «      d„ «       Zy)ÚTestFFTThreadSaferA   )i   éÈ   N©r%   c                óº  ‡— ˆfd„}t        j                  «       } ‰|Ž }t        | j                  «      D �cg c]  }t	        j
                  |||f¬«      ‘Œ }}|D �	cg c]  }	|	j                  «       ‘Œ c}	 |D �	cg c]  }	|	j                  «       ‘Œ c}	 t        | j                  «      D ]   }t        |j                  d¬«      |d¬«       Œ" y c c}w c c}	w c c}	w )Nc                 ó.   •— |j                   ‰| Ž «       y r©   )Úput)ÚargsÚqr$   s     €r'   Úworkerz.TestFFTThreadSafe._test_mtsame.<locals>.worker¯  s   ø€ Ø�E‰E‘$˜�+Õr)   )Útargetr   é   )Útimeoutz6Function returned wrong value in multithreaded context)Úerr_msg)
ÚqueueÚQueuerO   ÚthreadsÚ	threadingÚThreadÚstartÚjoinr
   Úget)
rG   r$   r%   r   r  r  ÚexpectedrJ   Útr7   s
    `        r'   Ú_test_mtsamezTestFFTThreadSafe._test_mtsame®  sÅ   ø€ ô	ô �K‰K‹MˆÙ˜�;ˆô ˜DŸL™LÔ)ó+Ù)�ô ×Ñ V°4¸°)Ö<Ø)ð 	
ð +áÓ™A�qˆ�‰�˜AÒáÓ™1�aˆ�‰�˜1Òô �t—|‘|Ö$ˆAÜØ—‘˜a�Ó  (ØPöñ %ùò+ùâùâs   · CÁCÁ;Cc                 ó–   — |j                  | j                  |j                  ¬«      }| j                  t        j                  ||¬«       y ©NrW   rü   )ÚonesÚinput_shaper!   r  r   ©rG   r%   r¤   s      r'   r\   zTestFFTThreadSafe.test_fftÃ  s7   € à�G‰G�D×$Ñ$¨B¯M©MˆGÓ:ˆØ×Ñœ#Ÿ'™' 1¨ÐÕ,r)   c                 ó€   — |j                  | j                  d«      }| j                  t        j                  ||¬«       y ©Ny      ð?        rü   )Úfullr  r  r   r   r  s      r'   re   zTestFFTThreadSafe.test_ifftÈ  s1   € à�G‰G�D×$Ñ$ dÓ+ˆØ×Ñœ#Ÿ(™( A¨"ÐÕ-r)   c                 ó~   — |j                  | j                  «      }| j                  t        j                  ||¬«       y ©Nrü   )r  r  r  r   r   r  s      r'   rz   zTestFFTThreadSafe.test_rfftÍ  s/   € à�G‰G�D×$Ñ$Ó%ˆØ×Ñœ#Ÿ(™( A¨"ÐÕ-r)   c                 ó€   — |j                  | j                  d«      }| j                  t        j                  ||¬«       y r  )r  r  r  r   r   r  s      r'   r|   zTestFFTThreadSafe.test_irfftÒ  s1   € à�G‰G�D×$Ñ$ dÓ+ˆØ×Ñœ#Ÿ)™) Q¨2ÐÕ.r)   c                 ó–   — |j                  | j                  |j                  ¬«      }| j                  t        j
                  ||¬«       y r  )r  r  rË   r  r   r   r  s      r'   r‘   zTestFFTThreadSafe.test_hfft×  s7   € à�G‰G�D×$Ñ$¨B¯L©LˆGÓ9ˆØ×Ñœ#Ÿ(™( A¨"ÐÕ-r)   c                 ó~   — |j                  | j                  «      }| j                  t        j                  ||¬«       y r  )r  r  r  r   r   r  s      r'   r“   zTestFFTThreadSafe.test_ihfftÜ  s/   € à�G‰G�D×$Ñ$Ó%ˆØ×Ñœ#Ÿ)™) Q¨2ÐÕ.r)   )r    rß   rà   r	  r  r  r   r   r\   r   re   r   rz   r   r|   r   r‘   r   r“   rå   r)   r'   rú   rú   ©  sÂ   „ à€GØ€Kà+/ô ñ* �s—w‘wÓñ-ó  ð-ñ �s—x‘xÓ ñ.ó !ð.ñ �s—x‘xÓ ñ.ó !ð.ñ �s—y‘yÓ!ñ/ó "ð/ñ �s—x‘xÓ ñ.ó !ð.ñ �s—y‘yÓ!ñ/ó "ñ/r)   rú   r$   c           
      ó6  — t        j                  d«      5 }|j                  | t        d«      D �cg c]  }t	        j
                  d«      ‘Œ c}«      }d d d «        | t	        j
                  d«      «      }D ]  }t        ||«       Œ y c c}w # 1 sw Y   Œ=xY w)Nr@   r²   éd   )ÚmultiprocessingÚPoolÚmaprO   r0   r  r   )r$   ÚpÚ_Úresr[   r7   s         r'   Útest_multiprocessr'  â  sz   € ô 
×	Ñ	˜aÔ	  AØ�e‰e�D´°q´Ó:±¨Aœ2Ÿ7™7 3�<°Ñ:Ó;ˆ÷ 
!ñ ”"—'‘'˜#“,Ó€FÛˆÜ˜˜6Õ"ñ ùò ;÷ 
!Ð	 ús   –B°B
ÁBÂ
BÂBc                   ó   — e Zd Zd„ Zy)Ú
TestIRFFTNc                 ó¬   — t         j                  j                  d«      \  }}|d|z  z   }|j                  |«      }d}t        j                  ||¬«       y )N)r@   rA   r±   é    r?   )éþÿÿÿr    )r0   r   rE   r   r   )rG   r%   ÚarÚair¤   r¡   s         r'   Útest_not_last_axis_successz%TestIRFFTN.test_not_last_axis_successñ  sI   € Ü—‘×!Ñ! .Ó1‰ˆˆBØ��B‘‰JˆØ�J‰J�q‹Mˆàˆô 	�
‰
�1˜4Ö r)   N)r    rß   rà   r/  rå   r)   r'   r)  r)  î  s   „ ó!r)   r)  c                 óÞ   — | j                   dv r|j                  }n|j                  }|j                  g d¢|¬«      } | |«       t	        |«      r | |d¬«       y t        t        | |d¬«       y )N)r   r   r   r^   rW   r@   )Úworkers)r    r"   r!   rE   r   r`   r#   )r$   r%   r&   r7   s       r'   Útest_non_standard_paramsr2  ü  s[   € ð ‡}�}Ð2Ñ2Ø—
‘
‰à—‘ˆà
�
‰
’9 Eˆ
Ó*€Aáˆ„Gä�„|ÙˆQ˜Öä”j $¨°1Ö5r)   rÏ   r"   c                 óR   — |j                  g d¢t        ||«      ¬«      } | |«       y )Nr^   rW   )rE   r×   )r$   r&   r%   r7   s       r'   Útest_real_inputr4    s$   € ð 	�
‰
’9¤G¨B°Ó$6ˆ
Ó7€Aáˆ…Gr)   )4r  r
  r!  Únumpyr0   râ   Únumpy.randomr   Únumpy.testingr   r   r   r`   Ú	scipy.fftr   Úscipy._lib._array_apir   r   r	   r
   r   r   Úlazy_xp_modulesrã   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   r2  r4  rå   r)   r'   Ú<module>r;     sÔ  ðÛ Û Û Û Û Ý ß DÝ *Ý ÷÷ ð
 �%€Ø—;‘;×/Ñ/Ð ò
ò+÷W2ñ W2ðt
 ‡�×ÑØØ	�‰�R—Z‘Z §¡Ø	�‰�r—}‘} b§n¡nð	6ó7ð ‡�×Ñ˜ 3Ð(8Ð"9Ó:Ø‡�×ÑØØ	�‰�#—(‘(˜CŸH™H c§h¡h°·	±	¸3¿9¹9ÐEóGñóGó ;ó	7ðñ: ˜4Ô ÷5/ð 5/ó !ð5/ðp ‡�×Ñ˜ #§'¡'¨3¯8©8°S·X±X¸s¿y¹yÐ!IÓJñ#ó Kð#ñ �3—:‘:Ó÷
!ð 
!ó ð
!ð ‡�×Ñ˜Ñ"6°s·w±wÓ"?Ù"6°s·x±xÓ"@Ù"6°s·x±xÓ"@Ù"6°s·y±yÓ"AÙ"6°s·x±xÓ"@Ù"6°s·y±yÓ"AÙ"6°s·y±yÓ"AÙ"6°s·z±zÓ"BÙ"6°s·x±xÓ"@Ù"6°s·y±yÓ"Að	"Có 	Dñ6ó	Dð6ð( ‡�×Ñ˜ 9¨iÐ"8Ó9Ø‡�×Ñ˜Ñ"6°s·w±wÓ"?Ù"6°s·x±xÓ"@Ù"6°s·y±yÓ"AÙ"6°s·x±xÓ"@Ù"6°s·y±yÓ"AÙ"6°s·z±zÓ"BÙ"6°s·x±xÓ"@ð"Bó CñóCó :ñr)   