
    (ph_2                        S SK rS SKrS SKJr  S SKJrJrJrJ	r	  S SK
r
S SKrS r " S S5      r " S S5      r\R                  R!                  S	\R"                  \R$                  \R&                  \R(                  /5      \R                  R!                  S
SS/5      \R                  R!                  S\R*                  R*                  \R*                  R,                  \R*                  R.                  \R*                  R0                  \R*                  R2                  \R*                  R4                  /5      S 5       5       5       r\R                  R9                  \	SS9 " S S5      5       rg)    N)random)assert_array_equalassert_raisesassert_allcloseIS_WASMc                    [        U 5      nS[        R                  -  [        R                  " U5      U-  -  n[        R                  " U5      R	                  SS5      U-  n[        R
                  " U [        R                  " U5      -  SS9$ )Ny                 axis)lennppiarangereshapesumexp)xLphases      Q/var/www/html/venv/lib/python3.13/site-packages/numpy/fft/tests/test_pocketfft.pyfft1r      sf    AA"%%K299Q<!+,EIIaL  Q'%/E66!BFF5M/**    c                       \ rS rSrS rSrg)TestFFTShift   c                 \    [        [        [        R                  R                  / SQS5        g )N)r
         r   )r   
ValueErrorr   fft)selfs    r   
test_fft_nTestFFTShift.test_fft_n   s    j"&&**i;r    N)__name__
__module____qualname____firstlineno__r#   __static_attributes__r%   r   r   r   r      s    <r   r   c                   :   \ rS rSrS rS r\R                  R                  SS5      S 5       r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS r\R                  R                  S\R.                  R0                  \R.                  R2                  \R.                  R4                  \R.                  R6                  /5      S 5       rS r\R                  R                  S\R<                  \R>                  \R@                  \RB                  /5      S 5       r"Sr#g)	TestFFT1D   c           
         Sn[        U5      S[        U5      -  -   n[        U5      n[        SU5       H  n[        [        R                  R                  [        R                  R	                  USU 5      5      USU SS9  [        [        R                  R                  [        R                  R                  USU 5      U5      USU SS9  M     g )Ni                 ?r
   r   g-q=atol)r   ranger   r   r!   ifftirfftrfft)r"   maxlenr   xris        r   test_identityTestFFT1D.test_identity   s    6NRv..F^q&!ABFFKK

1Qq6(:;QqV!&(BFFLLR!W)=qAqG%1 "r   c                    [        S5      S[        S5      -  -   n[        [        U5      [        R                  R	                  U5      SS9  [        [        U5      [        R                  R	                  USS9SS9  [        [        U5      [        R
                  " S5      -  [        R                  R	                  USS9SS9  [        [        U5      S-  [        R                  R	                  US	S9SS9  g )
N   r/   ư>r0   backwardnormortho      >@forward)r   r   r   r   r!   sqrtr"   r   s     r   test_fftTestFFT1D.test_fft$   s    2JF2J&QAT:QAJ!?dKQ"''"+-

17
3$	@Q#

19
5D	Br   r@   Nr>   rA   rC   c           
      ^   [        S5      S[        S5      -  -   n[        U[        R                  R	                  [        R                  R                  X!S9US9SS9  [
        R                  " [        SS9   [        R                  R	                  / US9  S S S 5        g ! , (       d  f       g = f)Nr<   r/   r?   r=   r0   z!Invalid number of FFT data points)match)r   r   r   r!   r3   pytestraisesr    )r"   r@   r   s      r   	test_ifftTestFFT1D.test_ifft-   s    2JF2J&rvv{{266::a:3${?	 ]]:!DFFFKKK&F F Fs   6B
B,c           	         [        S5      S[        S5      -  -   n[        [        R                  R                  [        R                  R                  USS9SS9[        R                  R	                  U5      SS9  [        [        R                  R	                  U5      [        R                  R	                  USS	9SS9  [        [        R                  R	                  U5      [        R
                  " S
5      -  [        R                  R	                  USS	9SS9  [        [        R                  R	                  U5      S-  [        R                  R	                  USS	9SS9  g Nr<      r/   r
   r   r   r=   r0   r>   r?   X  rA        @rC   )r   r   r   r!   fft2rD   rE   s     r   	test_fft2TestFFT1D.test_fft28   s    8r&"222

266::aa:#8q
AAT	3AAJ7d	DA)99AG44	AA)4AI6T	Cr   c           	         [        S5      S[        S5      -  -   n[        [        R                  R	                  [        R                  R	                  USS9SS9[        R                  R                  U5      SS9  [        [        R                  R                  U5      [        R                  R                  USS	9SS9  [        [        R                  R                  U5      [        R                  " S
5      -  [        R                  R                  USS	9SS9  [        [        R                  R                  U5      S-  [        R                  R                  USS	9SS9  g rP   )r   r   r   r!   r3   ifft2rD   rE   s     r   
test_ifft2TestFFT1D.test_ifft2C   s    8r&"222BFFKKK$:CQd	4QQZ8t	EQ"'''*::QW5D	BQ95QY7d	Dr   c                    [        S5      S[        S5      -  -   n[        [        R                  R                  [        R                  R                  [        R                  R                  USS9SS9SS9[        R                  R	                  U5      SS9  [        [        R                  R	                  U5      [        R                  R	                  US	S
9SS9  [        [        R                  R	                  U5      [        R
                  " S5      -  [        R                  R	                  USS
9SS9  [        [        R                  R	                  U5      S-  [        R                  R	                  USS
9SS9  g Nr<   rR   
   r/   r   r   r
   r   r=   r0   r>   r?   p  rA        p@rC   )r   r   r   r!   fftnrD   rE   s     r   	test_fftnTestFFT1D.test_fftnN   s   < 2f\&:#::FFJJrvvzz"&&**QQ*"7az@qJIFFKKN	' 	AAJ7d	DA)>>AG44	AA/:AI6T	Cr   c                    [        S5      S[        S5      -  -   n[        [        R                  R	                  [        R                  R	                  [        R                  R	                  USS9SS9SS9[        R                  R                  U5      SS9  [        [        R                  R                  U5      [        R                  R                  US	S
9SS9  [        [        R                  R                  U5      [        R                  " S5      -  [        R                  R                  USS
9SS9  [        [        R                  R                  U5      S-  [        R                  R                  USS
9SS9  g r]   )r   r   r   r!   r3   ifftnrD   rE   s     r   
test_ifftnTestFFT1D.test_ifftnZ   s   < 2f\&:#::FFKKBFFKKK$:C!KLFFLLO$	( 	QQZ8t	EQ"'',*??QW5D	BQ?;QY7d	Dr   c                    [        S5      nUR                  SUR                  -  4 GH9  nS HO  n[        [        R                  R	                  XUS9S US-  S-    [        R                  R                  XUS9SS9  MQ     [        [        R                  R                  XS9[        R                  R                  XS	S9SS9  [        [        R                  R                  XS9[        R                  " U5      -  [        R                  R                  XS
S9SS9  [        [        R                  R                  XS9U-  [        R                  R                  XSS9SS9  GM<     g )Nr<   r   rH   nr@   r
   r=   r0   )rk   r>   rA   rC   )r   sizer   r   r!   r5   rD   )r"   r   rk   r@   s       r   	test_rfftTestFFT1D.test_rfftf   s   2J&&!AFF(#A>FFJJqDJ1+AqD1H>FFKKTK2? ? A#A44A A#bggaj0A1> A#a'A3$@ $r   c           
      6   [        S5      n[        U[        R                  R	                  [        R                  R                  U5      5      SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  g )Nr<   r=   r0   r>   r?   rA   rC   )r   r   r   r!   r4   r5   rE   s     r   
test_irfftTestFFT1D.test_irfftw   s    2J266<<A7dC266<<AJ(G' ( )/3	5266<<AG(D$ ( &,0	2266<<AI(F& ( (.2	4r   c                    [        S5      n[        [        R                  R	                  U5      S S 2S S24   [        R                  R                  U5      SS9  [        [        R                  R                  U5      [        R                  R                  USS9SS9  [        [        R                  R                  U5      [        R                  " S5      -  [        R                  R                  USS9SS9  [        [        R                  R                  U5      S	-  [        R                  R                  US
S9SS9  g )NrQ      r=   r0   r>   r?   rS   rA   rT   rC   )r   r   r   r!   rU   rfft2rD   rE   s     r   
test_rfft2TestFFT1D.test_rfft2   s    8Aq#2#v.QdKQQZ8t	EQ"'''*::QW5D	BQ95QY7d	Dr   c           
      6   [        S5      n[        U[        R                  R	                  [        R                  R                  U5      5      SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  g )NrQ   r=   r0   r>   r?   rA   rC   )r   r   r   r!   irfft2rt   rE   s     r   test_irfft2TestFFT1D.test_irfft2   s    8266==a9E266==aj)I' ) )/3	5266==ag)F$ ) &,0	2266==ai)H& ) (.2	4r   c                    [        S5      n[        [        R                  R	                  U5      S S 2S S 2S S24   [        R                  R                  U5      SS9  [        [        R                  R                  U5      [        R                  R                  USS9SS9  [        [        R                  R                  U5      [        R                  " S5      -  [        R                  R                  USS9SS9  [        [        R                  R                  U5      S	-  [        R                  R                  US
S9SS9  g )Nr^      r=   r0   r>   r?   r`   rA   ra   rC   )r   r   r   r!   rb   rfftnrD   rE   s     r   
test_rfftnTestFFT1D.test_rfftn   s    < Aq!RaRx0"&&,,q/MQQZ8t	EQ"'',*??QW5D	BQ?;QY7d	Dr   c           
      6   [        S5      n[        U[        R                  R	                  [        R                  R                  U5      5      SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  g )Nr^   r=   r0   r>   r?   rA   rC   )r   r   r   r!   irfftnr}   rE   s     r   test_irfftnTestFFT1D.test_irfftn   s    < 266==a9E266==aj)I' ) )/3	5266==ag)F$ ) &,0	2266==ai)H& ) (.2	4r   c                 :   [        S5      S[        S5      -  -   n[        R                  " [        S5      U[        S5      45      n[        R                  " X!S S S2   R                  5       45      n[	        [        R
                  R                  U5      [        R
                  R                  U5      SS9  [	        [        R
                  R                  U5      [        R
                  R                  USS9SS9  [	        [        R
                  R                  U5      [        R                  " S	5      -  [        R
                  R                  US
S9SS9  [	        [        R
                  R                  U5      S-  [        R
                  R                  USS9SS9  g )N   r/   r
   r	   r=   r0   r>   r?   r<   rA   rB   rC   )r   r   concatenateconjr   r!   hfftrD   r"   r   x_herms      r   	test_hfftTestFFT1D.test_hfft   s   2JF2J&Avay 9:NNFddGLLN34

1rvv{{6':FF+F<4	IF+bggbk9F9	FF+c1F;$	Hr   c           
          [        S5      S[        S5      -  -   n[        R                  " [        S5      U[        S5      45      n[        R                  " X!S S S2   R                  5       45      n[	        U[        R
                  R                  [        R
                  R                  U5      5      SS9  [	        U[        R
                  R                  [        R
                  R                  USS9SS9SS9  [	        U[        R
                  R                  [        R
                  R                  US	S9S	S9SS9  [	        U[        R
                  R                  [        R
                  R                  US
S9S
S9SS9  g )Nr   r/   r
   r	   r=   r0   r>   r?   rA   rC   )r   r   r   r   r   r!   ihfftr   r   s      r   
test_ihfftTestFFT1D.test_ihfft   s4   2JF2J&Avay 9:NNFddGLLN34RVV[[-@ AMRVV[[' .9 .)/9 !- !;AE	GRVV[[$ .9 .&,3 !- !5;?	ARVV[[& .9 .(.7 !- !9?C	Er   opc                     [        S5      n/ SQnU HD  nU" [        R                  " X$5      5      n[        R                  " U" X$S9U5      n[        XVSS9  MF     g )Nr^   ))r   r
   r   )r   r   r
   )r
   r   r   )r
   r   r   )r   r   r
   )r   r
   r   axesr=   r0   )r   r   	transposer   )r"   r   r   r   aop_trtr_ops          r   	test_axesTestFFT1D.test_axes   sN     < QAr||A)*ELLA2EEt4 r   c           	         [        S5      n[        R                  R                  U5      nUR                  S-  n[        R
                  R
                  [        R
                  R                  4[        R
                  R                  [        R
                  R                  4[        R
                  R                  [        R
                  R                  4/nU Hf  u  pVUR                  SUR                  -  4 HB  nS H9  nU" XUS9nU" XUS9n[        U[        R                  R                  U5      SS9  M;     MD     Mh     g )Nr<   r   rH   rj   r=   r0   )r   r   linalgr@   rl   r!   r3   r5   r4   r   r   r   )	r"   r   x_normrk   
func_pairsforwbackr@   tmps	            r   test_all_1d_norm_preserving%TestFFT1D.test_all_1d_norm_preserving   s    2J"FFQJvvzz266;;/vv{{BFFLL1 vv||RVV[[1	
 %JDffah'BDqD1Csd3C#F$&IINN3$7dD C ( %r   dtypec                 L   [        S5      R                  U5      n[        [        R                  R                  [        R                  R	                  U5      5      USS9  [        [        R                  R                  [        R                  R                  U5      5      USS9  g )Nr<   r=   r0   )r   astyper   r   r!   r3   r4   r5   )r"   r   r   s      r   test_dtypesTestFFT1D.test_dtypes   sb    
 2Je$BFFJJqM2ADARVV[[^4adCr   r%   N)$r&   r'   r(   r)   r9   rF   rK   markparametrizerM   rV   rZ   rc   rg   rm   rp   ru   ry   r~   r   r   r   r   r!   rb   rf   r}   r   r   r   halfsingledouble
longdoubler   r*   r%   r   r   r,   r,      s   1B [[V%KL' M'	C	D
C
D@"4D4D4
H
E [[TBFFKK$&FFLL"&&--$A B5B5D& [[Wrww		299')}}'6 7D7Dr   r,   r   orderFznon-contiguousr!   c                 \   [         R                  R                  S5      nUR                  SSS5      R	                  U SS9nS[         R
                  " [         R                  " UR                  5      5      -  [         R                  " UR                  5      R                  -  nUS:X  a  [         R                  " U5      nO$US S S	2   n[         R                  " US S S	2   5      nUR                  R                  S
5      (       a)  [        S5       H  nU" XGS9nU" XgS9n	[!        XXUS9  M     g UR                  R                  S5      (       aW  / SQn
UR                  R                  S5      (       a  U
R#                  / SQ5        U
 H  nU" XKS9nU" XkS9n	[!        XXUS9  M     g [%        5       e)N*            F)copyg       @r   r	   r!   r   r   )r1   rtol)rU   rb   ))r   r
   )r
   r   )r   r   rb   ))r   )r
   )r   Nr   )r   r   RandomStaterandr   rD   log2rl   finfor   epsasfortranarrayascontiguousarrayr&   endswithr2   r   extendr    )r   r   r!   rngX_tolYr   X_resY_resr   axs               r   test_fft_with_orderr      s_    ))


#CAr!!%e!4A))BHHQWW,=,A,AAD|a  ddG  4R4)
||U##!HD%E%EEt?  
		/	0	0'<<  ((KK01BOEOEEt? 
 lr   zCannot start thread)reasonc                   :    \ rS rSrSrSrS rS rS rS r	S r
S	rg
)TestFFTThreadSafei     )i      c                   ^ U4S jn[         R                  " 5       nT" U6 n[        U R                  5       Vs/ s H  n[        R
                  " X2U4S9PM     nnU Vs/ s H  oR                  5       PM       nU Vs/ s H  oR                  5       PM       n[        U R                  5       H  n[        UR                  SS9US5        M     g s  snf s  snf s  snf )Nc                 .   > UR                  T" U 6 5        g N)put)argsqfuncs     r   worker.TestFFTThreadSafe._test_mtsame.<locals>.worker  s    EE$+r   )targetr      )timeoutz6Function returned wrong value in multithreaded context)
queueQueuer2   threads	threadingThreadstartjoinr   get)	r"   r   r   r   r   expectedr8   tr   s	    `       r   _test_mtsameTestFFTThreadSafe._test_mtsame  s    	 KKM; DLL)+) V)<) 	
 +AqA1a1t||$AquuQu/HJ %+s    CC>Cc                     [         R                  " U R                  5      S-  S-   nU R                  [         R                  R                  U5        g Nr
   y                )r   onesinput_shaper   r!   r"   r   s     r   rF   TestFFTThreadSafe.test_fft&  s8    GGD$$%)","&&**a(r   c                     [         R                  " U R                  5      S-  S-   nU R                  [         R                  R
                  U5        g r   )r   r   r   r   r!   r3   r   s     r   rM   TestFFTThreadSafe.test_ifft*  s8    GGD$$%)","&&++q)r   c                     [         R                  " U R                  5      nU R                  [         R                  R
                  U5        g r   )r   r   r   r   r!   r5   r   s     r   rm   TestFFTThreadSafe.test_rfft.  s.    GGD$$%"&&++q)r   c                     [         R                  " U R                  5      S-  S-   nU R                  [         R                  R
                  U5        g r   )r   r   r   r   r!   r4   r   s     r   rp   TestFFTThreadSafe.test_irfft2  s8    GGD$$%)","&&,,*r   r%   N)r&   r'   r(   r)   r   r   r   rF   rM   rm   rp   r*   r%   r   r   r   r     s&    GKJ$)**+r   r   )numpyr   rK   numpy.randomr   numpy.testingr   r   r   r   r   r   r   r   r,   r   r   float32float64	complex64
complex128r!   rU   rb   r3   rY   rf   r   skipifr   r%   r   r   <module>r      s,     
 
  +< <MD MD` 	RZZr}}=? 3(8"9:	RVV[["&&++	bffllBFFLL	23	3 ;?> G$9:$+ $+ ;$+r   