+
    ,i#                        ^ RI t^ RIHtHt ^ RIt^ RIt^ RIHtH	t	H
t
HtHtHtHtHt ^ RIHt ^ RIHt ^ RIHtHt ]P,                  P.                  t]P0                  ! ^4      t]! RR7      ]P,                  P5                  R]]	3]]3.4      ]P,                  P5                  R	. R%O4      ]P,                  P5                  R
. R&O4      ]P,                  P5                  R^ ^.4      ]P,                  P5                  R. R'O4      ]P,                  P5                  RRR.4      R 4       4       4       4       4       4       4       t]! RRR7      ]P,                  P5                  R]]	3]]3.4      ]P,                  P5                  R	. R%O4      ]P,                  P5                  R]P8                  ]P:                  ]P<                  ]P>                  ]P@                  .4      ]P,                  P5                  R^ ^.4      ]P,                  P5                  R. R'O4      ]P,                  P5                  RRR.4      R 4       4       4       4       4       4       4       t!]! RR7      ]P,                  P5                  R]
]3]]3.4      ]P,                  P5                  R	. R%O4      ]P,                  P5                  R. R(O4      ]P,                  P5                  R. R'O4      ]P,                  P5                  RRR.4      R 4       4       4       4       4       4       t"]! RRR7      ]P,                  P5                  R]
]3]]3.4      ]P,                  P5                  R	. R%O4      ]P,                  P5                  R. R)O4      ]P,                  P5                  R]P8                  ]P:                  ]P<                  ]P>                  ]P@                  .4      ]P,                  P5                  R. R'O4      ]P,                  P5                  RRR.4      R 4       4       4       4       4       4       4       t#]! RR7      ]P,                  P5                  R. R*O4      ]P,                  P5                  R	. R%O4      ]P,                  P5                  R. R'O4      R 4       4       4       4       t$]! RR7      ]P,                  P5                  R]]]
].4      ]P,                  P5                  R	. R%O4      R 4       4       4       t%]! RR7      ]P,                  P5                  R. R+O4      ]P,                  P5                  R]^3]^3]^3.4      R 4       4       4       t&]! RRR7      ]! RR7      ]P,                  P5                  R. R+O4      R  4       4       4       t']! RRR7      ]! RR7      ]P,                  P5                  R. R+O4      ]P,                  P5                  R]].4      R! 4       4       4       4       t(]! RRR7      ]! RR7      ]P,                  P5                  R. R+O4      ]P,                  P5                  R]].4      R" 4       4       4       4       t)]! RR#R7      ]P,                  P5                  R]]	]
]]]]].4      R$ 4       4       t*R# ),    N)assert_allcloseassert_array_equal)dctidctdctnidctndstidstdstnidstn)fftpack)xp_copyxp_assert_closeT)cpu_onlyzforward, backwardtypenaxisnormorthogonalizeFc           	      d   VP                  \        P                  P                  W34      4      pV ! WWEVR 7      p	V! WWEVR 7      p
\	        W4       R.^,          pRW&   VP                  \        P
                  ! \        P                   ! V	4      VRR7      4      pV! WW4WVR7      p\	        W4       R# ))r   r   r   edgemoder   Nr   r   r      )asarraynprandomrandr   pad)forwardbackwardr   r   r   r   r   xpxyzr"   y2z2s   &&&&&&&&      F/usr/lib/python3/dist-packages/scipy/fft/tests/test_real_transforms.pytest_identity_1dr,      s     	

299>>!'(Ad]KAtmLAA(Q,CCI	BFF2::a=#F;	<B	"AT	GBB    z/`overwrite_x` only supported for NumPy backend.)np_onlyreasondtypeoverwrite_xc                 H   \         P                  P                  ^^4      P                  V4      pVP	                  4       p	V ! WWEVR7      p
V
P	                  4       pV! WWEVR7      pV'       g'   \        WRRR7       \        W4       \        W4       R# \        WRRR7       R# )   )r   r   r1   ư>rtolatolN)r   r    r!   astypecopyr   r   )r#   r$   r   r0   r   r   r1   r%   r&   x_origr'   y_origr(   s   &&&&&&&&     r+   test_identity_1d_overwriter<   +   s     			q!##E*AVVXFd;GAVVXFtKHA4d31%1%48r-   zshape, axesc           	      N   VP                  \        P                  P                  V4      4      pVe   \        P                  ! W44      pV ! WWEVR7      p	V! WWEVR7      p
\	        W4       Vf   R.VP
                  ,          pMP\        V\        4      '       d   R.VP
                  ,          pRW&   M!R.VP
                  ,          pV F  pRW&   K	  	  VP                  \        P                  ! \        P                   ! V	4      VRR7      4      pV! WW4WVR7      p\	        W4       R # )N)axesr   r   r   r   r   r   r   )	r   r   r    taker   ndim
isinstanceintr"   )r#   r$   r   shaper>   r   r   r%   r&   r'   r(   r"   ar)   r*   s   &&&&&&&&       r+   test_identity_ndrE   E   s    * 	

299##E*+A$d]KAtmLAA|h	D#		h	hACF  
BFF2::a=#F;	<B	"E	KBBr-   c	                 v   \         P                  P                  V4      P                  V4      p	V	P                  4       p
Ve   \         P                  ! W44      pV ! WWFR7      pVP                  4       pV! WWFR7      pV'       d   \        WRRR7       R # \        WRRR7       \        W4       \        W4       R # )N)r>   r   r4   r5   )r   r    r8   r9   r?   r   r   )r#   r$   r   rC   r>   r0   r   r1   r%   r&   r:   r'   r;   r(   s   &&&&&&&&&     r+   test_identity_nd_overwriterG   t   s    $ 			&&u-AVVXF$d.AVVXFt/A484d31%1%r-   funcc                     \         P                  P                  ^^4      pVP                  \	        \
        V 4      ! WAVR7      4      pVP                  V4      p\	        \        V 4      ! WAVR7      p\        We4       R# )   )r   N)r   r    r!   r   getattrr   fftr   )rH   r   r   r%   r&   fftpack_resfft_ress   &&&&   r+   test_fftpack_equivaliencerO      s\    
 			q"A**WWd3A$GHK


1Ac4 t4GG)r-   c                     VP                  \        P                  P                  ^d4      4      pR F$  w  rEV ! W1WER7      pV ! W1VR7      p\	        Wg4       K&  	  R# )d   r   r   r   )r   r   N))r#   F)r$   F)orthoTr   r   r    r!   r   )rH   r   r%   r&   r   rS   rD   bs   &&&     r+   test_orthogonalize_defaultrV      sO    
 	

299>>#&'A
 D>D)r-   z
func, typec                     VP                  \        P                  P                  ^d4      4      pV ! WAVRR7      pV ! WAVRR7      p\	        WV4       R# )rQ   TrR   FNrT   )rH   r   r   r%   r&   y1r)   s   &&&&   r+   test_orthogonalize_nooprY      sC     	

299>>#&'A	aT	:B	aU	;BBr-   z	jax.numpyz)jax arrays do not support item assignment)r/   c                    VP                  \        P                  P                  ^d4      4      p\	        W!R7      pV^ ;;,          \
        ,          uu&   VR;;,          \
        ,          uu&   \        V^V RR7      p\        V^V RR7      pV^ ;;,          \
        ,          uu&   VR;;,          \
        ,          uu&   \        WE4       R# rQ   )r%   TrR   FN)r   r   r    r!   r   SQRT_2r   r   )r   r%   r&   x2rX   r)   s   &&    r+   test_orthogonalize_dct1r_      s    
 	

299>>#&'A		BqEVOErFfF	QQT	6B	Rad%	8BqEVOErFfFBr-   c                     VP                  \        P                  P                  ^d4      4      pV ! V^VRR7      pV ! V^VRR7      pYP\        8X  d   ^ MR;;,          \
        ,          uu&   \        WE4       R# )rQ   TrR   FNr\   )r   r   r    r!   r   r]   r   )rH   r   r%   r&   rX   r)   s   &&&   r+   test_orthogonalize_dcst2ra      s]     	

299>>#&'A	aad$	7B	aad%	8BCKqR F* Br-   c                 
   VP                  \        P                  P                  ^d4      4      p\	        W2R7      pY@\
        8X  d   ^ MR;;,          \        ,          uu&   V ! V^VRR7      pV ! V^VRR7      p\        WV4       R# r[   )r   r   r    r!   r   r   r]   r   )rH   r   r%   r&   r^   rX   r)   s   &&&    r+   test_orthogonalize_dcst3rc      sg     	

299>>#&'A		BCKqR F* 	aad$	7B	bqt5	9BBr-   z,array-likes only supported for NumPy backendc                     R R .R R ..R R .R R ..R R .R R ...p\        V! V4      V! V P                  V4      4      4       R# )g      ?N)r   r   )r%   rH   r&   s   && r+   test_array_likere      sX     *sCj	!*sCj	!*sCj	!	#A DGT"**Q-01r-   )         r   )rg   rh   r      
      )Nr$   rS   r#   )	)r   r   r   )rl   rf   )rl   N)rl   r   rf   )rj      N)rn   rm   )r   ri      N)rp   rf   )rp   )r   rg   ))r   ri   r   )rr   rf   )rr   N)r   r	   r   r   )r$   rS   r#   )+numpyr   numpy.testingr   r   pytestmath	scipy.fftr   r   r   r   r	   r
   r   r   rL   scipyr   scipy._lib._array_apir   r   markskip_xp_backendssqrtr]   parametrizer,   float16float32float64	complex64
complex128r<   rE   rG   rO   rV   rY   r_   ra   rc   re    r-   r+   <module>r      s(    =   D D D   :;;// 	1 4 ,T{S$K.HI.23!Q(!GH5$-8 9 I ) 4 / J !  $JL,T{S$K.HI.2::rzz2::#%<<#@ A!Q(!GHu69 7 I )A / JL9" 4 ,e}tUm.LM.
 !GH5$-8 9 I / N !"< $JL,e}tUm.LM. 2::rzz2::#%<<#@ A!GH6& 7 IA / NL&* 4 !?@.!GH* I / A !* 4 #sD$!78. / 9 ! 4 !AB!HsAha(" ## C ! +DF4 !AB C !F +DF4 !AB#s, - C !F
 +DF4 !AB#s, - C !F
 $GI#tT5#tT5!QR2 SI2r-   