+
    /i
Z                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	H
t
 ^ RIHt ^ RIHt ^ RIHtHtHtHtHtHt ].t]P.                  P0                  tR tR t ! R R	4      t]P.                  P9                  R
]P:                  ]P<                  ]P>                  ]P@                  ]PB                  ]PD                  .4      ]P.                  P9                  RRR.4      ]P.                  P9                  R]P                  ]PF                  ]PH                  ]PJ                  ]PL                  ]PN                  .4      R 4       4       4       t(]! RR7       ! R R4      4       t)]P.                  P9                  R]P                  ]PJ                  ]PT                  ]PV                  .4      R 4       t,]! ]PZ                  4       ! R R4      4       t.]P.                  P9                  R]! ]P                  4      ]! ]PJ                  4      ]! ]PT                  4      ]! ]PV                  4      ]! ]PH                  4      ]! ]PN                  4      ]! ]P^                  4      ]! ]PZ                  4      ]! ]P`                  4      ]! ]Pb                  4      .
4      R 4       t2]P.                  P9                  R
RR.4      ]P.                  P9                  R]! ]P                  4      ]! ]PJ                  4      ]! ]PV                  4      ]! ]PH                  4      ]! ]PN                  4      ]! ]PZ                  4      ]! ]P`                  4      .4      R 4       4       t3R# )    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                     V P                   R9   d   VP                  pV# V P                   R9   d   VP                  pV# \        RV  24      h)fftzUnknown FFT function: )r   fftnfft2ifftifftnifft2hffthfftnhfft2irfftirfftnirfft2)rfftrfftnrfft2ihfftihfftnihfft2)__name__
complex128float64
ValueError)funcxpdtypes   && X/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/fft/tests/test_basic.pyget_expected_input_dtyper(      sY    }} H H L 
Q	Q

 L 1$899    c                 \   \        V 4      pR\        P                  ,          \        P                  ! V4      \	        V4      ,          ,          p\        P                  ! V4      P                  R^4      V,          p\        P                  ! V \        P                  ! V4      ,          ^R7      # )y               @axisy              )lennppiarangefloatreshapesumexp)xLphases   &  r'   fft1r9   #   sj    AAIryy|E!H,-EIIaL  Q'%/E66!BFF5M/**r)   c                     a  ] tR t^*t o ]! ]P                  ]P
                  ]P                  ]P                  4      R 4       t	]
! RRR7      R 4       t]! ]P
                  4      R 4       t]
! RRR7      R 4       t]! ]P
                  ]P                  4      R	 4       t]! ]P
                  ]P                  4      R
 4       t]! ]P                  ]P"                  4      R 4       t]! ]P
                  ]P&                  4      R 4       t]! ]P                  ]P*                  4      R 4       t]! ]P
                  ]P                  4      R 4       t]! ]P                  ]P                  4      R 4       t]! ]P2                  4      R 4       t]! ]P2                  ]P6                  4      R 4       t]! ]P&                  ]P:                  4      R 4       t]! ]P>                  ]P:                  4      R 4       t ]! ]PB                  ]P
                  4      R 4       t"]! ]PB                  ]PF                  4      R 4       t$]! ]PJ                  ]PL                  4      R 4       t']! ]P"                  4      R 4       t(]! ]PR                  ]PT                  4      R 4       t+]! ]P*                  ]PT                  4      R 4       t,R t-].P^                  Pa                  R]1! ]P&                  4      ]1! ]P*                  4      ]1! ]P:                  4      ]1! ]P>                  4      .4      R 4       t2].P^                  Pa                  R]1! ]PR                  4      ]1! ]PT                  4      .4      R 4       t3].P^                  Pa                  R]1! ]P&                  4      ]1! ]P*                  4      ]1! ]P:                  4      ]1! ]P>                  4      .4      R 4       t4].P^                  Pa                  R]1! ]P                  4      ]1! ]P"                  4      ]1! ]P2                  4      ]1! ]P6                  4      ]1! ]PJ                  4      ]1! ]PL                  4      ]1! ]PR                  4      ]1! ]PT                  4      .4      R 4       t5]! ]P                  ]P                  ]PF                  ]PB                  ]P
                  ]P                  4      R  4       t6].P^                  Pa                  R!]7Pp                  ]7Pr                  .4      R" 4       t:]! ]P                  ]P                  4      ].P^                  Pa                  R!R#R$.4      R% 4       4       t;]! ]P
                  ]P                  4      ].P^                  Pa                  R!R&R'.4      R( 4       4       t<].P^                  Pa                  R]P
                  ]P                  ]P                  ]P"                  ]P&                  ]P*                  ]P                  ]P                  ]P2                  ]P6                  ]P:                  ]P>                  ]PB                  ]PF                  ]PJ                  ]PL                  ]PR                  ]PT                  .4      R) 4       t=R*t>V t?R+# ),TestFFTc           
        R pVP                  \        V4      R\        V4      ,          ,           4      pVP                  \        V4      4      pR Fx  p\        \        P                  ! \        P                  ! V^ V 4      4      V^ V 4       \        \        P
                  ! \        P                  ! V^ V 4      V4      V^ V 4       Kz  	  R# )                 ?N)	            r=   5      i  i  )asarrayr   r	   r   r   r   r   selfr%   maxlenr6   xris   &&    r'   test_identityTestFFT.test_identity+   s    JJvf~6&>(99:ZZv'8ACHHSWWQqV_5q1v>CIIchhr!Aw&7;R!WE 9r)   Tz&significant overhead for some backends)np_onlyreasonc           
        R pVP                  \        V4      R\        V4      ,          ,           4      pVP                  \        V4      4      p\        ^V4       Fx  p\        \        P
                  ! \        P                  ! V^ V 4      4      V^ V 4       \        \        P                  ! \        P                  ! V^ V 4      V4      V^ V 4       Kz  	  R# )r=   r>   N)rE   r   ranger	   r   r   r   r   rF   s   &&    r'   test_identity_extensiveTestFFT.test_identity_extensive5   s    JJvf~6&>(99:ZZv'q&!ACHHSWWQqV_5q1v>CIIchhr!Aw&7;R!WE "r)   c                   \        ^4      R\        ^4      ,          ,           pVP                  \        V4      4      pVP                  V4      p\        \        P                  ! V4      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! VRR7      W1P                  VP                  ^VP                  R7      4      ,          4       \        \        P                  ! VRR7      V^,          4       R# )   r>   backwardnormorthor&   forwardN)r   rE   r9   r	   r   sqrtr"   rG   r%   r6   expects   &&  r'   test_fftTestFFT.test_fft>   s    2JF2J&DG$JJqM
F+
3V<0Bbjj)I!JJ	M	2FRK@r)   zsome backends allow `n=0`c                    VP                  . ROVP                  R7      p\        \        \        P                  V^ 4       R# r?   rY   Nr?   r@      )rE   r!   assert_raisesr#   r   )rG   r%   r6   s   && r'   
test_fft_nTestFFT.test_fft_nI   s*    JJyJ6j#''1a0r)   c           
     P   VP                  \        ^4      R\        ^4      ,          ,           4      p\        \        P                  ! \        P                  ! V4      4      V4       R F:  p\        \        P                  ! \        P                  ! W#R7      VR7      V4       K<  	  R# )rT   r>   rV   NrU   rX   rZ   )rE   r   r	   r   r   rG   r%   r6   rW   s   &&  r'   	test_ifftTestFFT.test_ifftN   sd    JJvbzBvbzM12,a04DCHHSWWQ%:FJ 5r)   c                >   VP                  \        R	4      R\        R	4      ,          ,           4      p\        P                  ! \        P                  ! V^R7      ^ R7      p\        \        P                  ! V4      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! VRR7      W1P                  VP                  R
VP                  R7      4      ,          4       \        \        P                  ! VRR7      VR
,          4       R# rT   r>   r+   rU   rV   rX   rY   rZ   NrT      X  )rE   r   r   r	   r   r[   r"   r\   s   &&  r'   	test_fft2TestFFT.test_fft2U   s    JJvh'"VH-=*==>+!4V,4f=1G2::)N!OO	Q3Vw5GHr)   c                >   VP                  \        R	4      R\        R	4      ,          ,           4      p\        P                  ! \        P                  ! V^R7      ^ R7      p\	        \        P
                  ! V4      V4       \	        \        P
                  ! VRR7      V4       \	        \        P
                  ! VRR7      W1P                  VP                  R
VP                  R7      4      ,          4       \	        \        P
                  ! VRR7      VR
,          4       R# rm   )rE   r   r   r   r	   r   r[   r"   r\   s   &&  r'   
test_ifft2TestFFT.test_ifft2_   s    JJvh'"VH-=*==>#((11-A6		!f-		!*5v>		!'2G2::)N!OO	Q		!)4f6HIr)   c                j   VP                  \        R	4      R\        R	4      ,          ,           4      p\        P                  ! \        P                  ! \        P                  ! V^R7      ^R7      ^ R7      p\        \        P                  ! V4      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! VRR7      W1P                  VP                  R
VP                  R7      4      ,          4       \        \        P                  ! VRR7      VR
,          4       R# )rT   r>   r+   rU   rV   rX   rY   rZ   NrT   ro   
   p  )rE   r   r   r	   r   r[   r"   r\   s   &&  r'   	test_fftnTestFFT.test_fftni   s    JJvl+b1E.EEF!3!<1EV,4f=1L

)S!TT	V3V|5LMr)   c                   VP                  \        R4      R\        R4      ,          ,           4      p\        P                  ! \        P                  ! \        P                  ! V^R7      ^R7      ^ R7      p\	        \        P
                  ! V4      VRR7       \	        \        P
                  ! VRR7      VRR7       \	        \        P
                  ! VRR7      \        P
                  ! V4      VP                  VP                  RVP                  R7      4      ,          4       \	        \        P
                  ! VR	R7      VR,          RR7       R
# )rT   r>   r+   gHz>)rtolrU   rV   rX   rY   rZ   Nrw   ry   )rE   r   r   r   r	   r   r[   r"   r\   s   &&  r'   
test_ifftnTestFFT.test_ifftns   s    JJvl+b1E.EEF#((388AA#6Q?aH		!f48		!*5vDIIIag&IIaL2772::l"**:#MNN	
 			!)4,/!	#r)   c                @   VP                  \        ^4      VP                  R7      p\        V4      ^\        V4      ,          3 F  pR Ff  p\	        \
        P                  ! W#VR7      \
        P
                  ! VP                  W!P                  R7      W4R7      RV^,          ^,            4       Kh  	  \	        \
        P                  ! W#RR7      \
        P                  ! W#R7      VP                  VP                  W1P                  R7      4      ,          4       K  	  R# )   rY   NrX   nrW   )r   )NrU   rX   rZ   )	rE   r   r"   r   r	   r   r   r!   r[   )rG   r%   r6   r   rW   s   &&   r'   	test_rfftTestFFT.test_rfft   s    JJvbzJ4!*a
l+A>d ; #

1MM
(J*+!88C!Q$(!EF ? g. 2772::azz:+J#KK ,r)   c           
     "   VP                  \        ^4      4      p\        \        P                  ! \        P
                  ! V4      4      V4       R F:  p\        \        P                  ! \        P
                  ! W#R7      VR7      V4       K<  	  R# )rT   rV   Nrh   )rE   r   r	   r   r   r   ri   s   &&  r'   
test_irfftTestFFT.test_irfft   sW    JJvbz"		#((1+.24DCIIchhq&<4H!L 5r)   c                :   VP                  \        R4      VP                  R7      p\        P                  ! VP                  W!P
                  R7      4      R,          p\        \        P                  ! V4      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! VRR7      W1P                  VP                  R	VP                  R7      4      ,          4       \        \        P                  ! VRR7      VR	,          4       R# 
rT   rY   rU   rV   rX   rZ   Nrn   )NNN:N   Nrp   )	rE   r   r"   r   r   r!   r	   r   r[   r\   s   &&  r'   
test_rfft2TestFFT.test_rfft2   s    JJvh'rzzJ:"**Qmm*<=fE		!f-		!*5v>		!'2G2::)N!OO	Q		!)4f6HIr)   c           
     "   VP                  \        R4      4      p\        \        P                  ! \        P
                  ! V4      4      V4       R F:  p\        \        P                  ! \        P
                  ! W#R7      VR7      V4       K<  	  R# rT   rV   Nrn   rh   )rE   r   r	   r   r   r   ri   s   &&  r'   test_irfft2TestFFT.test_irfft2   sX    JJvh'(

399Q<0!44DCJJsyy'>TJAN 5r)   c                :   VP                  \        R4      VP                  R7      p\        P                  ! VP                  W!P
                  R7      4      R,          p\        \        P                  ! V4      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! VRR7      W1P                  VP                  R	VP                  R7      4      ,          4       \        \        P                  ! VRR7      VR	,          4       R# 
rT   rY   rU   rV   rX   rZ   Nrw   )r   r   :N   Nry   )	rE   r   r"   r   r   r!   r	   r   r[   r\   s   &&  r'   
test_rfftnTestFFT.test_rfftn   s    JJvl+2::J>"**Qmm*<=hG		!f-		!*5v>		!'2L

)S!TT	V		!)4f6MNr)   c           
     "   VP                  \        R4      4      p\        \        P                  ! \        P
                  ! V4      4      V4       R F:  p\        \        P                  ! \        P
                  ! W#R7      VR7      V4       K<  	  R# rT   rV   Nrw   rh   )rE   r   r	   r   r   r   ri   s   &&  r'   test_irfftnTestFFT.test_irfftn   sX    JJvl+,

399Q<0!44DCJJsyy'>TJAN 5r)   c                   \        ^4      R\        ^4      ,          ,           p\        P                  ! \        ^4      V\        ^4      34      p\        P                  ! W2RRR1,          P                  4       34      pVP	                  V4      pVP	                  V4      pVP                  \        P                  ! V4      4      p\        \        P                  ! V4      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! VRR7      WAP                  VP	                  ^VP                  R7      4      ,          4       \        \        P                  ! VRR7      V^,          4       R# )	   r>   NrU   rV   rX   rY   rZ   r-   )r   r/   concatenateconjrE   realr   r	   r   r[   r"   )rG   r%   r6   x_hermr]   s   &&   r'   	test_hfftTestFFT.test_hfft   s    2JF2J&Avay 9:NNFddGLLN34JJqMF#$(&1j96Bg6Bbjj)I!JJ	Li8&2+Fr)   c           
     *   \        ^4      R\        ^4      ,          ,           p\        P                  ! \        ^4      V\        ^4      34      p\        P                  ! W2RRR1,          P                  4       34      pVP	                  V4      pVP	                  V4      p\        \        P                  ! \        P                  ! V4      4      V4       R F:  p\        \        P                  ! \        P                  ! W4R7      VR7      V4       K<  	  R# )r   r>   NrV   r-   rh   )	r   r/   r   r   rE   r	   r   r   r   )rG   r%   r6   r   rW   s   &&   r'   
test_ihfftTestFFT.test_ihfft   s    2JF2J&Avay 9:NNFddGLLN34JJqMF#		#((6"23V<4DCIIchhv&AMvV 5r)   c           
     "   VP                  \        R4      4      p\        \        P                  ! \        P
                  ! V4      4      V4       R F:  p\        \        P                  ! \        P
                  ! W#R7      VR7      V4       K<  	  R# r   )rE   r   r	   r   r   r   ri   s   &&  r'   
test_hfft2TestFFT.test_hfft2   sX    JJvh'(		#**Q-0!44DCIIcjj&>TJAN 5r)   c                :   VP                  \        R4      VP                  R7      p\        P                  ! VP                  W!P
                  R7      4      R,          p\        \        P                  ! V4      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! VRR7      W1P                  VP                  R	VP                  R7      4      ,          4       \        \        P                  ! VRR7      VR	,          4       R# r   )	rE   r   r"   r   r   r!   r	   r   r[   r\   s   &&  r'   test_ihfft2TestFFT.test_ihfft2   s    JJvh'rzzJ:2::a}}:=>vF

1v.

1:6?JJqw'WWRZZrzzZBCC	
 	

195v7IJr)   c           
     "   VP                  \        R4      4      p\        \        P                  ! \        P
                  ! V4      4      V4       R F:  p\        \        P                  ! \        P
                  ! W#R7      VR7      V4       K<  	  R# r   )rE   r   r	   r   r   r   ri   s   &&  r'   
test_hfftnTestFFT.test_hfftn   sX    JJvl+,		#**Q-0!44DCIIcjj&>TJAN 5r)   c                :   VP                  \        R4      VP                  R7      p\        P                  ! VP                  W!P
                  R7      4      R,          p\        V\        P                  ! V4      4       \        V\        P                  ! VRR7      4       \        \        P                  ! VRR7      W1P                  VP                  R	VP                  R7      4      ,          4       \        \        P                  ! VRR7      VR	,          4       R# r   )	rE   r   r"   r   r   r!   r	   r   r[   r\   s   &&  r'   test_ihfftnTestFFT.test_ihfftn   s    JJvl+2::J>2::a}}:=>xH

1.

1: >?JJqw'WWRZZBJJZGHH	
 	

195v7NOr)   c                    \        W4      pVP                  \        R4      VR7      p. ROpV F@  pV! VP                  WFR7      4      pVP                  V! WFR7      VR7      p\	        Wx4       KB  	  R# )rT   rY   axesNrw   )r   r?   r@   r   r@   r?   )r?   r   r@   r?   r@   r   )r@   r   r?   )r@   r?   r   )r(   rE   r   permute_dimsr	   )	rG   opr%   r&   r6   r   aop_trtr_ops	   &&&      r'   _check_axesTestFFT._check_axes   se    (0JJvl+5J9QArq12EOOBqMO:EE) r)   r   c                (    V P                  W4       R # Nr   rG   r   r%   s   &&&r'   test_axes_standardTestFFT.test_axes_standard   s    
 	 r)   c                (    V P                  W4       R # r   r   r   s   &&&r'   test_axes_non_standardTestFFT.test_axes_non_standard  s     	 r)   c           	        \        W4      pVP                  \        R4      VR7      p. ROpV F  p\        \	        VP
                  4       Uu. uF=  pWvR,          9   d   ^VP                  V,          ,          MVP                  V,          NK?  	  up4      pV! VP                  WFR7      VR,          RR7      p	VP                  V! WHR,          VR,          R7      VR7      p
\        W4       K  	  R# u upi 	rA   rY   :Nr@   Nr   )sr   N)rA         )r   r   r   r   r?   	r(   rE   r   tuplerP   ndimshaper   r	   rG   r   r%   r&   r6   r   r   axr   r   r   s   &&&        r'   $test_axes_subset_with_shape_standard,TestFFT.test_axes_subset_with_shape_standard  s    
 )0JJvj)J70A%*166]4%2r -/B%K1QWWR[=QWWR[H%24 5E rq1r1EOOBq"IAbE$B./ $ 1EE) 4   AC3
c           	        \        W4      pVP                  \        R4      VR7      p. ROpV F  p\        \	        VP
                  4       Uu. uF=  pWvR,          9   d   ^VP                  V,          ,          MVP                  V,          NK?  	  up4      pV! VP                  WFR7      VR,          RR7      p	VP                  V! WHR,          VR,          R7      VR7      p
\        W4       K  	  R# u upi r   r   r   s   &&&        r'   (test_axes_subset_with_shape_non_standard0TestFFT.test_axes_subset_with_shape_non_standard   s     )0JJvj)J70A%*166]4%2r -/B%K1QWWR[=QWWR[H%24 5E rq1U2YVLEOOBq"IAbE$BOKEE) 4r   c           	        VP                  \        ^4      VP                  R7      pVP                  P	                  V4      p\        V4      ^,          p\        P                  \        P                  3\        P                  \        P                  3\        P                  \        P                  3.pV F  w  rgV\        P                  8X  d8   VP                  W!P                  R7      pVP                  P	                  V4      p\        V4      ^\        V4      ,          3 FE  pR F<  pV! W$VR7      p	V! WVR7      p	\        VP                  P	                  V	4      V4       K>  	  KG  	  K  	  R# )rT   rY   r   Nrh   )rE   r   r"   linalgvector_normr   r   r   r   r   r   r   r!   r	   )
rG   r%   r6   x_normr   
func_pairsforwbackrW   tmps
   &&        r'   test_all_1d_norm_preserving#TestFFT.test_all_1d_norm_preserving6  s    JJvbzJ4&&q)AJNxx+ yy#((+ww)
 %JDswwJJqJ6..q1aj!GAJ,/<DqD1Csd3C#BII$9$9#$>G = 0	 %r)   r&   c                   \        ^4      P                  V4      p\        P                  \        P                  \        P
                  \        P                  /pVP                  W1,          4      p\        P                  ! \        P                  ! V4      4      p\        P                  ! \        P                  ! V4      4      p\        P                  ! \        P                  ! V4      VP                  ^ ,          4      p\        WT4       \        Wb4       \        Wr4       VP                  VP                  8X  g   Q hVP                  \        P                   ! \        P"                  VP                  4      8X  g   Q hVP                  \        P                   ! \        P"                  VP                  4      8X  g   Q hR# )rT   N)r   astyper/   float16	complex64
longdoubleclongdoubler   r   r   r   r   r   r   r   r&   result_typefloat32)rG   r&   r6   
out_dtypes	x_complexres_fftres_rfftres_hffts   &&      r'   test_dtypes_nonstandardTestFFT.test_dtypes_nonstandardN  s	   2Je$jj",,r~~N
HHZ./	((3771:&99SXXa[)88CIIaL!''!*5!'5!(.!(.}}	///~~

AGG!DDDD~~

AGG!DDDDr)   r   r"   c                H   VP                  \        ^4      \        W!4      R7      p\        P                  ! \        P
                  ! V4      4      p\        P                  ! \        P                  ! V4      VP                  ^ ,          4      p\        WC4       \        WS4       R# )rT   rY   N)
rE   r   getattrr   r   r   r   r   r   r	   )rG   r&   r%   r6   r   r   s   &&&   r'   test_dtypes_realTestFFT.test_dtypes_real_  se     JJvbz);J<99SXXa[)88CIIaL!''!*5$$r)   r   r!   c                   \         P                  P                  R 4      pVP                  VP                  ^4      \	        W!4      R7      p\
        P                  ! \
        P
                  ! V4      4      p\        WT4       R# )i  rY   N)r/   r   default_rngrE   r   r   r   r	   )rG   r&   r%   rngr6   r   s   &&&   r'   test_dtypes_complexTestFFT.test_dtypes_complexj  sU     ii##D)JJszz"~WR-?J@((3771:&#r)   c                    R R .R R ..R R .R R ..R R .R R ...p\        V! V4      V! \        P                  ! V4      4      4       R# )g      ?N)r	   r/   rE   )rG   r   r6   s   && r'   test_array_likeTestFFT.test_array_liket  sX     Cj3*%Cj3*%Cj3*%' 	1r"**Q-01r)    N)@r    
__module____qualname____firstlineno__r   r   r   r   r   rK   skip_xp_backendsrQ   r^   re   rj   r   rq   r   rt   r   rz   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   pytestmarkparametrizer   r   r   r   r   r   r/   r   r   r   r   r   r   __static_attributes____classdictcell____classdict__s   @r'   r;   r;   *   s    sxx#((CII>F ?F d+STF UF swwA  A d+FG1 H1 sww)K *K sww)I *I sxx+J ,J sww)N *N sxx+# ,# sww)
 *
 syy#((+M ,M syy!J "J syy#**-O .O sxx+O ,O szz399-O .O sxx)G *G sxx+W ,W syy#**-O .O syy!	K "	K syy#**-O .O syy#**-	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* sxxCIIsxx#((SH TH. [[Wrzz2==&ABE CE  syy#((+[[Wy)&<=% > ,% sww)[[W{L&AB$ C *$ [[TCGGSXX$'HHcii$'HHcii$'HHcii$'IIszz$'IIszz$'HHcii$'IIszz$'IIszz$< =2=2r)   r;   r&   orderFznon-contiguousr   c                    \         P                  P                  ^*4      pVP                  ^^^4      P	                  V RR7      pVR8X  d   \         P
                  ! V4      pM,VRRR	1,          p\         P                  ! VRRR	1,          4      pVP                  P                  R4      '       d2   \        ^4       F   pV! WFR7      pV! WVR7      p\        Wx4       K"  	  R# VP                  P                  R
4      '       da   . ROp	VP                  P                  R4      '       d   V	P                  . RO4       V	 F   p
V! WJR7      pV! WZR7      p\        Wx4       K"  	  R# \        h)*   F)copyr  Nr   r+   r   r   r-   )r   r   )r   )r?   r@   )r   r@   ))r   )r?   )r@   N)r/   r   RandomStaterandr   asfortranarrayascontiguousarrayr    endswithrP   r   extendr#   )r&   r  r   r   XYr,   X_resY_resr   r   s   &&&        r'   test_fft_with_orderr    s"    ))


#CAr!!%e!4A|a  ddG  4R4)
||U##!HD%E%E%e3  
		/	0	0'<<  ((KK01BOEOE%e3 
 r)   T)cpu_onlyc                   V  a  ] tR tRt o ^tRtRR/R lt]! ]P                  4      R 4       t	]! ]P                  4      R 4       t]! ]P                  4      R 4       t]! ]P                  4      R 4       t]! ]P                   4      R	 4       t]! ]P$                  4      R
 4       tRtV tR# )TestFFTThreadSafei  r%   Nc                 a V3R  lp\         P                  ! 4       pS! V!  p\        V P                  4       Uu. uF  p\        P
                  ! WCV3R7      NK  	  ppV U	u. uF  qP                  4       NK  	   p	V U	u. uF  qP                  4       NK  	   p	\        V P                  4       F!  p\        VP                  ^R7      VRR7       K#  	  R# u upi u up	i u up	i )c                 2   < VP                  S! V !  4       R # r   )put)argsqr$   s   &&r'   worker.TestFFTThreadSafe._test_mtsame.<locals>.worker  s    EE$+r)   )targetr"  )timeoutz6Function returned wrong value in multithreaded context)err_msgN)
queueQueuerP   threads	threadingThreadstartjoinr
   get)
rG   r$   r%   r"  r$  r#  expectedrJ   tr6   s
   &f$*      r'   _test_mtsameTestFFTThreadSafe._test_mtsame  s    	 KKM; DLL)+) V)<) 	
 +AqA1a1 t||$Aa (P %+s   "C"C C c                    VP                  V P                  VP                  R 7      pV P                  \        P                  W!R7       R# rY   r%   N)onesinput_shaper!   r3  r   rG   r%   r   s   && r'   r^   TestFFTThreadSafe.test_fft  s5    GGD$$BMMG:#''1,r)   c                    VP                  V P                  R4      pV P                  \        P                  W!R7       R# r?   r7  Ny      ?        )fullr9  r3  r   r   r:  s   && r'   rj   TestFFTThreadSafe.test_ifft  s/    GGD$$d+#((A-r)   c                ~    VP                  V P                  4      pV P                  \        P                  W!R 7       R# r7  N)r8  r9  r3  r   r   r:  s   && r'   r   TestFFTThreadSafe.test_rfft  s-    GGD$$%#((A-r)   c                    VP                  V P                  R4      pV P                  \        P                  W!R7       R# r=  )r>  r9  r3  r   r   r:  s   && r'   r   TestFFTThreadSafe.test_irfft  s/    GGD$$d+#))Q.r)   c                    VP                  V P                  VP                  R 7      pV P                  \        P
                  W!R7       R# r6  )r8  r9  r   r3  r   r   r:  s   && r'   r   TestFFTThreadSafe.test_hfft  s5    GGD$$BLLG9#((A-r)   c                ~    VP                  V P                  4      pV P                  \        P                  W!R 7       R# rA  )r8  r9  r3  r   r   r:  s   && r'   r   TestFFTThreadSafe.test_ihfft  s-    GGD$$%#))Q.r)   r   )i      )r    r  r  r  r+  r9  r3  r   r   r^   r   rj   r   r   r   r   r   r   r   r   r  r	  r
  s   @r'   r  r    s     GK4 * sww-  - sxx . !. sxx . !. syy!/ "/ sxx . !. syy!/ "/r)   r  r$   c                 b   \         P                  ! ^4      ;_uu_ 4       pTP                  T \        ^4       Uu. uF  p\        P
                  ! ^d4      NK  	  up4      pRRR4       V ! \        P
                  ! ^d4      4      pX F  p\        WT4       K  	  R# u upi   + '       g   i     LG; i)r@   N)multiprocessingPoolmaprP   r/   r8  r   )r$   p_resr]   r6   s   &     r'   test_multiprocessrQ    s{     
		a	 	 AeeDq:A2773<:; 
! "''#,F"  ; 
!	 s   BBBBB.	c                   &   a  ] tR tRt o R tRtV tR# )
TestIRFFTNi  c                    \         P                  P                  R4      w  r#VRV,          ,           pVP                  V4      pRp\        P                  ! WER7       R# )r@   r>   r   N)r@   rA   r       ))r/   r   rE   r   r   )rG   r%   arair   r   s   &&    r'   test_not_last_axis_success%TestIRFFTN.test_not_last_axis_success  sE    !!.1BJJJqM 	

1 r)   r   N)r    r  r  r  rY  r  r	  r
  s   @r'   rS  rS    s     ! !r)   rS  c                     V P                   R9   d   VP                  pMVP                  pVP                  . ROVR7      pV ! V4       \	        V4      '       d   V ! V^R7       R# \        \        W^R7       R# )r   rY   )workersN)r   r   r   rb   )r    r"   r!   rE   r   rd   r#   )r$   r%   r&   r6   s   &&  r'   test_non_standard_paramsr]    s[     }}22




9E
*AG||Qj$15r)   r   r"   c                 R    VP                  . RO\        W!4      R7      pV ! V4       R# ra   )rE   r   )r$   r&   r%   r6   s   &&& r'   test_real_inputr_    s"     	

9GB$6
7AGr)   )4r)  r,  rK  numpyr/   r  numpy.randomr   numpy.testingr   r   r   rd   	scipy.fftr   scipy._lib._array_apir   r   r	   r
   r   r   lazy_xp_modulesr  r  r(   r9   r;   r  r   r"   r   r   r!   r   r   r   r   r   r   r  r  r   r   rQ  r   rS  r   r   r   r]  r_  r   r)   r'   <module>rf     s         D *  
 %;;// 
+W2 W2t
 	RZZ	r}}bnn	67 3(8"9:	#((CHHchh		399EGG ;	7: 4 5/ 5/ !5/p #''388SXXsyy!IJ# K# 3::
! 
! 
! "6sww"?"6sxx"@"6sxx"@"6syy"A"6sxx"@"6syy"A"6syy"A"6szz"B"6sxx"@"6syy"A	"C 	D6	D6( 9i"89"6sww"?"6sxx"@"6syy"A"6sxx"@"6syy"A"6szz"B"6sxx"@"B CC :r)   