+
    –°³jûH  ã                   óž  € ^ RI t ^ RIHtHt ^ RIHtHt ^ RIt^ RIH	t
 ^ RIHt ^ RIHt ^ RIHtHtHt ^ RIHtHt . RKOtR]RL,          ,          t0 RMmt]P2                  P4                  P6                  tR R ltR	 R
 ltRNR R lltR R ltR R lt R R lt!R R lt"]! ]PF                  4      ]! 4       ROR R ll4       4       t$]! ]PJ                  4      ]! 4       ROR R ll4       4       t&]! ]PN                  4      ]! 4       ROR R ll4       4       t(]! ]PR                  4      ]! 4       ROR R ll4       4       t*]! ]PV                  4      ]! 4       ROR R ll4       4       t,]! ]PZ                  4      ]! 4       ROR R  ll4       4       t. ! R! R"]4      t/R# R$ lt0R% R& lt1R' R( lt2]! ]Pf                  4      ]! 4       RPR) R* ll4       4       t4]! ]Pj                  4      ]! 4       RPR+ R, ll4       4       t6]! ]Pn                  4      ]! 4       RPR- R. ll4       4       t8]! ]Pr                  4      ]! 4       RPR/ R0 ll4       4       t: ! R1 R2]4      t;R3 R4 lt<]! ]Pz                  4      ]! 4       RPR5 R6 ll4       4       t>]! ]P~                  4      ]! 4       RPR7 R8 ll4       4       t@]! ]P‚                  4      ]! 4       RQR9 R: ll4       4       tB]! ]P†                  4      ]! 4       RQR; R< ll4       4       tD]! ]PŠ                  4      ]! 4       RQR= R> ll4       4       tF]! ]PŽ                  4      ]! 4       RQR? R@ ll4       4       tH]! ]P’                  4      ]! 4       RQRA RB ll4       4       tJ]! ]P–                  4      ]! 4       RQRC RD ll4       4       tLRE RF ltM]! ]Pœ                  4      RRRG RH ll4       tO]! ]P                   4      RRRI RJ ll4       tQR# )Sé    N)ÚIterableÚSequence)ÚLiteralÚ
NamedTuple)Úregister_decomposition)ÚDimsTypeÚ	ShapeTypeÚTensorLikeType)Ú_maybe_convert_to_dtypeÚout_wrapperc          
      óT   € V ^8„  d   QhR\         R\        R\        R\        R\         /# )é   ÚxÚnormÚsignal_numelÚforwardÚreturn)r
   ÚNormTypeÚintÚbool)Úformats   "ÚP/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_refs/fft.pyÚ__annotate__r   +   s4   € ÷ 6ñ 6Üð6Ü%ð6Ü58ð6ÜCGð6äñ6ó    c                ó@  a€ \         P                  ! S\        9   V3R l4       SR8X  d%   V ^\        P                  ! V4      ,          ,          # V'       * ;'       d    SRJ ;'       g    SR8H  ;'       g    T;'       d    SR8H  pV'       d   V ^V,          ,          # T # )z3Apply normalization to the un-normalized FFT resultc                  ó   <€ R S  2# )zInvalid normalization mode: © )r   s   €r   Ú<lambda>Ú_apply_norm.<locals>.<lambda>/   s   ø€ Ð1MÈdÈVÑ/Tr   ÚorthoNÚbackwardr   )ÚtorchÚ_checkÚ_NORM_VALUESÚmathÚsqrt)r   r   r   r   Ú	normalizes   &f&& r   Ú_apply_normr(   +   s‘   ø€ ô 
‡L‚L�œÑ%Ô'TÔUàˆw„Ø�AœŸ	š	 ,Ó/Õ/Õ0Ð0à”×EÐE $¨$ ,÷ Ð"D°$¸*Ñ2D÷ ð Ø×%Ð%�D˜IÑ%ð ÷ &/ˆ1��LÕ Õ!Ð5°AÐ5r   c                ó„   € V ^8„  d   QhR\         P                  R\        R\         P                  R\         P                  /# )r   ÚdtypeÚrequire_complexÚdevicer   )r"   r*   r   r,   )r   s   "r   r   r   :   s8   € ÷ !ñ !Ü�;‰;ð!Ü)-ð!Ü7<·|±|ð!ä
‡[�[ñ!r   c                óì  a € S P                   '       d   S # S P                  '       g   \        P                  ! 4       o \        P                  \        P
                  .pVP                  R9   pV'       dE   VP                  \        P                  4       S \        P                  8X  d   \        P                  o \        P                  ! S V9   V 3R l4       V'       d   \        P                  ! S 4      o S # )z@Helper to promote a dtype to one supported by the FFT primitivesc                  ó   <€ R S  2# )zUnsupported dtype r   ©r*   s   €r   r   Ú#_promote_type_fft.<locals>.<lambda>U   s   ø€ Ð*<¸U¸GÑ(Dr   )ÚcudaÚmetaÚxpu)Ú
is_complexÚis_floating_pointr"   Úget_default_dtypeÚfloat32Úfloat64ÚtypeÚappendÚfloat16Úbfloat16Ú_check_not_implementedÚutilsÚcorresponding_complex_dtype)r*   r+   r,   Úallowed_typesÚmaybe_support_halfs   f&&  r   Ú_promote_type_fftrB   :   s³   ø€ ð ××ÐØˆð ×"×"Ð"Ü×'Ò'Ó)ˆä—]‘]¤E§M¡MÐ2€MØŸ™Ð(?Ñ?ÐçØ×ÑœUŸ]™]Ô+ð ”E—N‘NÔ"Ü—M‘MˆEÜ	× Ò Ø�ÑÔ Dô÷ Ü×1Ò1°%Ó8ˆà€Lr   c                ó<   € V ^8„  d   QhR\         R\        R\         /# )r   Útr+   r   )r
   r   )r   s   "r   r   r   ^   s$   € ÷ 0ñ 0Üð0Ü(,ð0äñ0r   c                ó\   € V P                   p\        W!V P                  4      p\        W4      # )zEHelper to promote a tensor to a dtype supported by the FFT primitives)r*   rB   r,   r   )rD   r+   Úcur_typeÚnew_types   &&  r   Ú_maybe_promote_tensor_fftrH   ^   s(   € ð �w‰w€HÜ  ¸A¿H¹HÓE€HÜ" 1Ó/Ð/r   c                ó|   € V ^8„  d   QhR\         R\        \        R3,          R\        \        R3,          R\         /# )r   r   Údims.Úsizesr   )r
   Útupler   )r   s   "r   r   r   g   sB   € ÷ Dñ DÜðDÜ"¤3¨ 8�_ðDÜ5:¼3À¸8µ_ðDäñDr   c                ó”  € \        V4      \        V4      8w  d$   \        R\        V4       R\        V4       24      hRpV P                  p^ .\        V4      ,          ^,          p\        \        V4      4       F­  pW&,          R8X  d   K  WAV,          ,          W&,          8  dG   Rp\        V4      ^W,          ,          ,
          ^,
          pW&,          WAV,          ,          ,
          WW&   WAV,          ,          W&,          8”  g   KŽ  V P	                  W,          ^ W&,          4      p K¯  	  V'       d   \
        P                  ! W4      # T # )zv
Fixes the shape of x such that x.size(dims[i]) == sizes[i],
either by zero-padding, or by slicing x starting from 0.
z.dims and sizes must have the same length, got z and FTéÿÿÿÿ)ÚlenÚAssertionErrorÚshapeÚrangeÚnarrowr"   Úconstant_pad_nd)r   rJ   rK   Ú	must_copyÚx_sizesÚ
pad_amountÚiÚpad_idxs   &&&     r   Ú_resize_fft_inputrZ   g   s  € ô ˆ4ƒy”C˜“JÔÜØ<¼SÀ»Y¸KÀuÌSÐQVËZÈLÐYó
ð 	
ð €IØ�g‰g€GØ�”s˜7“|Õ# aÕ'€JÜ”3�t“9ÖˆØ�8�rŒ>Ùà˜•7Õ˜e�hÔ&ØˆIÜ˜*“o¨¨D­G­Õ3°aÕ7ˆGà"'¥(¨W¸!µWÕ-=Õ"=ˆJÑà˜•7Õ˜e�hÖ&Ø—‘˜� ! U¥XÓ.ŠAñ ÷ 4=Œ5× Ò  Ó/ÐCÀ!ÐCr   c                óz   € V ^8„  d   QhR\         R\        R\        R,          R\        R\        R\        R\        /# ©	r   Ú	func_nameÚinputÚnNÚdimr   r   r   ©Ústrr
   r   r   r   )r   s   "r   r   r   …   s[   € ÷ Wñ WÜðWäðWô ˆT…zðWô 
ð	Wô
 ðWô ðWô ñWr   c                ó¸  a€ \        VRR7      p\        P                  ! VP                  VRR7      3pVe   TM ^VP                  V,          ^,
          ,          o\
        P                  ! S^8¬  V3R l4       Ve   \        WS^,          ^,           3R7      pV'       d   \
        P                  ! V4      p\        P                  ! WSR7      p\        WtSVR7      # )	zBCommon code for performing any complex to real FFT (irfft or hfft)T©r+   F©Úwrap_scalarc                  ó   <€ R S  R2# ©zInvalid number of data points (z) specifiedr   ©Úlast_dim_sizes   €r   r   Ú_fft_c2r.<locals>.<lambda>“   ó   ø€ Ð1°-°ÀÑLr   )rJ   rK   ©r`   rj   ©r   r   r   )rH   r>   Úcanonicalize_dimÚndimrQ   r"   r#   rZ   ÚconjÚprimsÚfft_c2rr(   )	r]   r^   r_   r`   r   r   rJ   Úoutputrj   s	   &&&&&&  @r   Ú_fft_c2rru   …   s²   ø€ ô & e¸TÔB€EÜ×"Ò" 5§:¡:¨sÀÔFÐH€DØš‘A¨A°·±¸SÕ1AÀAÕ1EÕ,F€MÜ	‡L‚LØ˜ÑÜLôð
 	‚}Ü! %¸=ÈAÕ;MÐPQÕ;QÐ:SÔTˆçÜ—
’
˜5Ó!ˆä�]Š]˜5¸-ÔH€FÜ�v°}ÈgÔVÐVr   c                ó†   € V ^8„  d   QhR\         R\        R\        R,          R\        R\        R\        R\        R	\        /# )
r   r]   r^   r_   Nr`   r   r   Úonesidedr   ra   )r   s   "r   r   r       s\   € ÷ /ñ /Üð/äð/ô ˆT…zð/ô 
ð	/ô
 ð/ô ð/ô ð/ô ñ/r   c                óê  a aa	€ \         P                  ! SP                  P                  '       * V V3R l4       \	        S4      o\
        P                  ! SP                  VRR7      3pVe   TMSP                  V,          o	\         P                  ! S	^8¬  V	3R l4       Ve   \        SWr34      o\        P                  ! SWvR7      p\        W„S	V4      pV'       d   V# \         P                  ! V4      # )zBCommon code for performing any real to complex FFT (rfft or ihfft)c                  ó&   <€ S  R SP                    2# )z0 expects a floating point input tensor, but got r/   ©r]   r^   s   €€r   r   Ú_fft_r2c.<locals>.<lambda>¬   s   ø€ �9�+ÐMÈeÏkÉkÈ]Ñ[r   Fre   c                  ó   <€ R S  R2# rh   r   ©Údim_sizes   €r   r   r{   ²   ó   ø€ Ð!@ÀÀ
È+ÑVr   ©r`   rw   )r"   Ú_check_typer*   r4   rH   r>   ro   rp   rQ   r#   rZ   rr   Úfft_r2cr(   rq   )
r]   r^   r_   r`   r   r   rw   rJ   Úretr~   s
   ff&&&&&  @r   Ú_fft_r2cr„       s¿   ú€ ô 
×ÒØ�K‰K×"Ñ"Ô"Ý[ôô & eÓ,€EÜ×"Ò" 5§:¡:¨sÀÔFÐH€DØ’M‰q u§{¡{°3Õ'7€HÜ	‡L‚LØ�A‰ÔVôð 	‚}Ü! %¨¨tÓ4ˆä
�-Š-˜ 4Ô
;€CÜ
�c ¨7Ó
3€Cßˆ3Ð.œuŸzšz¨#›Ð.r   c                óz   € V ^8„  d   QhR\         R\        R\        R,          R\        R\        R\        R\        /# r\   ra   )r   s   "r   r   r   ½   sR   € ÷ 5ñ 5Üð5äð5ô ˆT…zð5ô 
ð	5ô
 ð5ô ð5ô ñ5r   c                óŠ  a aa€ \         P                  ! SP                  P                  V V3R l4       \        P
                  ! SP                  VRR7      3pVe   TMSP                  V,          o\         P                  ! S^8¬  V3R l4       Ve   \        SWb34      o\        P                  ! SWeR7      p\        WtSV4      # )zCCommon code for performing any complex to complex FFT (fft or ifft)c                  ó&   <€ S  R SP                    2# ©z) expects a complex input tensor, but got r/   rz   s   €€r   r   Ú_fft_c2c.<locals>.<lambda>È   s   ø€ �9�+ÐFÀuÇ{Á{ÀmÑTr   Fre   c                  ó   <€ R S  R2# rh   r   r}   s   €r   r   r‰   Í   r   r   ©r`   r   )r"   r#   r*   r4   r>   ro   rp   rQ   rZ   rr   Úfft_c2cr(   )	r]   r^   r_   r`   r   r   rJ   rƒ   r~   s	   ff&&&&  @r   Ú_fft_c2cr�   ½   sœ   ú€ ô 
‡L‚LØ�‰×ÑÝTôô ×"Ò" 5§:¡:¨sÀÔFÐH€DØ’M‰q u§{¡{°3Õ'7€HÜ	‡L‚LØ�A‰ÔVôð 	‚}Ü! %¨¨tÓ4ˆä
�-Š-˜ 4Ô
9€CÜ�s (¨GÓ4Ð4r   c          
      ób   € V ^8„  d   QhR\         R\        R,          R\        R\        R\         /# ©r   r^   r_   Nr`   r   r   ©r
   r   r   )r   s   "r   r   r   Ù   sE   € ÷ 	Rñ 	RÜð	Rä
ˆT…zð	Rô 
ð	Rô ð		Rô
 ñ	Rr   c           
      óx   € V P                   P                  '       d   \        R WW#RR7      # \        R WW#RRR7      # )ÚfftT©r   F©r   rw   ©r*   r4   r�   r„   ©r^   r_   r`   r   s   &&&&r   r’   r’   ×   s8   € ð ‡{�{××ÐÜ˜˜u¨¸DÔAÐAä˜˜u¨¸DÈ5ÔQÐQr   c          
      ób   € V ^8„  d   QhR\         R\        R,          R\        R\        R\         /# r�   r�   )r   s   "r   r   r   ç   sE   € ÷ 	Tñ 	TÜð	Tä
ˆT…zð	Tô 
ð	Tô ð		Tô
 ñ	Tr   c           
      óx   € V P                   P                  '       d   \        R WW#RR7      # \        R WW#RRR7      # )ÚifftFr“   r”   r•   r–   s   &&&&r   r™   r™   å   s8   € ð ‡{�{××ÐÜ˜ ¨#¸UÔCÐCä˜ ¨#¸UÈUÔSÐSr   c          
      ób   € V ^8„  d   QhR\         R\        R,          R\        R\        R\         /# r�   r�   )r   s   "r   r   r   õ   sE   € ÷ Nñ NÜðNä
ˆT…zðNô 
ðNô ð	Nô
 ñNr   c           
      ó"   € \        R WW#RRR7      # )ÚrfftTr”   ©r„   r–   s   &&&&r   rœ   rœ   ó   s   € ô �F˜E c¸ÈÔMÐMr   c          
      ób   € V ^8„  d   QhR\         R\        R,          R\        R\        R\         /# r�   r�   )r   s   "r   r   r      sE   € ÷ Añ AÜðAä
ˆT…zðAô 
ðAô ð	Aô
 ñAr   c           	      ó    € \        R WW#RR7      # )ÚirfftFr“   ©ru   r–   s   &&&&r   r    r    þ   s   € ô �G˜U s¸%Ô@Ð@r   c          
      ób   € V ^8„  d   QhR\         R\        R,          R\        R\        R\         /# r�   r�   )r   s   "r   r   r     s>   € ÷ ?ñ ?Üð?ä
ˆT…zð?ô 
ð?ô ð	?ô
 ñ?r   c           	      ó    € \        R WW#RR7      # )ÚhfftTr“   r¡   r–   s   &&&&r   r¤   r¤   	  s   € ô �F˜E c¸Ô>Ð>r   c          
      ób   € V ^8„  d   QhR\         R\        R,          R\        R\        R\         /# r�   r�   )r   s   "r   r   r     sE   € ÷ Pñ PÜðPä
ˆT…zðPô 
ðPô ð	Pô
 ñPr   c           
      ó"   € \        R WW#RRR7      # )ÚihfftFTr”   r�   r–   s   &&&&r   r§   r§     s   € ô �G˜U s¸%È$ÔOÐOr   c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )Ú_ShapeAndDimsi  c                óZ   <€ V ^8„  d   Qh/ S[ S[R3,          ;R&   S[ S[R3,          ;R&   # )r   .rQ   rJ   ©rL   r   )r   Ú__classdict__s   "€r   r   Ú_ShapeAndDims.__annotate__  s+   ø‡ ‚ Ù‘�c��?Ññ á
‘�S��/Ñò r   r   N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r¬   s   @r   r©   r©     ó   ø‡ ‡ „ r   r©   c                ód   € V ^8„  d   QhR\         R\        R,          R\        R,          R\        /# )r   r^   rQ   Nr`   r   )r
   r	   r   r©   )r   s   "r   r   r   $  s5   € ÷ 69ñ 69Üð69Ü"+¨dÕ"2ð69Ü9AÀD½ð69äñ69r   c                óò  aaaa€ V P                   oV P                  oVei   \        V\        4      '       g   V3p\        P
                  ! SVRR7      p\        P                  ! \        \        V4      4      \        V4      8H  R 4       Veä   \        V\        4      '       g   V3p\        P                  ! VRJ ;'       g    \        V4      \        V4      8H  R 4       \        V4      o\        P                  ! SS8*  VV3R l4       Vf   \        \        SS,
          S4      4      p\        ;QJ d!    . V3R l\        VX4       4       F  NK  	  5M! V3R l\        VX4       4       4      pMVVf!   \        \        S4      4      p\        S4      pM2\        ;QJ d    . V3R lX 4       F  NK  	  5M! V3R lX 4       4      pV F!  o\        P                  ! S^ 8„  V3R	 l4       K#  	  \        WCR
7      # )zTConvert the shape and dim arguments into a canonical form where neither are optionalNFre   c                  ó   € R # )zFFT dims must be uniquer   r   r   r   r   Ú6_canonicalize_fft_shape_and_dim_args.<locals>.<lambda>2  s   € Ñ9Rr   c                  ó   € R # )z=When given, dim and shape arguments must have the same lengthr   r   r   r   r   r»   <  s   € ÑSr   c                  ó   <€ R S RS  R2# )zGot shape with z" values but input tensor only has z dimensions.r   )Ú	input_dimÚtransform_ndims   €€r   r   r»   B  s   ø€ �o nÐ%5ð 6Ø!�{ ,ñ0r   c              3   óL   <"  € T F  w  rVR8w  d   TMSV,          x € K  	  R# 5i)é   NrN   r   )Ú.0ÚsÚdÚinput_sizess   &  €r   Ú	<genexpr>Ú7_canonicalize_fft_shape_and_dim_args.<locals>.<genexpr>K  s)   øé € ð 
á.‘�ð �b”‰A˜k¨!�nÔ,Û.ùs   ƒ!$c              3   ó6   <"  € T F  pSV,          x € K  	  R # 5i©Nr   )rÂ   rÄ   rÅ   s   & €r   rÆ   rÇ   U  s   øé € Ð;±(¨Q˜+ aŸ.š.³(ùs   ƒc                  ó   <€ R S  R2# rh   r   )r_   s   €r   r   r»   X  s   ø€ Ð&EÀaÀSÈÑ$Tr   )rQ   rJ   )rp   rQ   Ú
isinstancer   r>   Úcanonicalize_dimsr"   r#   rO   ÚsetrL   rR   Úzipr©   )	r^   rQ   r`   Úret_dimsÚ	ret_shaper¾   rÅ   r_   r¿   s	   &&&  @@@@r   Ú$_canonicalize_fft_shape_and_dim_argsrÑ   $  s˜  û€ ð —
‘
€IØ—+‘+€Kà
‚Ü˜#œx×(Ò(Ø�&ˆCÜ×*Ò*¨9°cÀuÔMˆô 	�ŠÜ”�H“Ó¤# h£-Ñ/Ñ1Rô	
ð ÒÜ˜%¤×*Ò*Ø�HˆEô 	�ŠØ�4ˆK×1Ð1œ3˜s›8¤s¨5£zÑ1ÙSô	
ô ˜U›ˆä�ŠØ˜iÑ'õ0ô	
ð Š;ÜœU 9¨~Õ#=¸yÓIÓJˆH÷ ”Eô 
ä˜e XÔ.ó
—E‘Eô 
ä˜e XÔ.ó
ó 
‰	ð 
Šäœ˜yÓ)Ó*ˆÜ˜+Ó&‰	÷ ”EÔ;±(Ó;—E‘EÔ;±(Ó;Ó;ˆ	ãˆÜ�Š�Q˜‘UÔTÖUñ ô ˜yÔ8Ð8r   c                óF   € V ^8„  d   QhR\         \        ,          R\        /# )r   Úxsr   )r   r   )r   s   "r   r   r   ]  s   € ÷ ñ Œh”s�mð ¤ñ r   c                ó,   € ^pV  F  pW,          pK  	  V# )zCompute product of a listr   )rÓ   Úprodr   s   &  r   Ú_prodrÖ   ]  s   € à€DÛˆØ�	Šñ à€Kr   c                ó    € V ^8„  d   QhR\         R\        R\        \        R3,          R\        \        R3,          R\        R\
        R\        /# )	r   Úfunction_namer^   rQ   .r`   r   r   r   )rb   r
   rL   r   r   r   )r   s   "r   r   r   e  sg   € ÷ Vñ VÜðVäðVô ”�c��?ðVô 
Œs�Cˆx�ð	Vô
 ðVô ðVô ñVr   c                óÜ   a a€ \         P                  ! SP                  P                  V V3R l4       \	        SW24      p\
        P                  ! WcVR7      p\        Wt\        V4      VR7      # )zECommon code for n-dimensional complex to complex FFTs (fftn or ifftn)c                  ó&   <€ S  R SP                    2# rˆ   r/   )rØ   r^   s   €€r   r   Ú_fftn_c2c.<locals>.<lambda>p  s   ø€ �=�/ð "Ø—;‘;�-ñ!r   r‹   rn   )	r"   r#   r*   r4   rZ   rr   rŒ   r(   rÖ   )rØ   r^   rQ   r`   r   r   r   rt   s   ff&&&&  r   Ú	_fftn_c2crÜ   e  sT   ù€ ô 
‡L‚LØ�‰×Ñõ	!ôô
 	˜% Ó,€AÜ�]Š]˜1¨wÔ7€FÜ�v´u¸U³|ÈWÔUÐUr   c          
      óp   € V ^8„  d   QhR\         R\        R,          R\        R,          R\        R\         /# ©r   r^   rÃ   Nr`   r   r   ©r
   r	   r   r   )r   s   "r   r   r   z  sJ   € ÷ @ñ @Üð@ä�4Õð@ô 
�D�ð@ô ð	@ô
 ñ@r   c           	      óV   € \        WV4      w  rB\        V R R7      p\        RWTW#R R7      # )Trd   Úfftnr“   ©rÑ   rH   rÜ   ©r^   rÃ   r`   r   rQ   r   s   &&&&  r   rá   rá   x  s/   € ô 8¸À#ÓF�L€UÜ! %¸Ô>€AÜ�V˜Q s¸$Ô?Ð?r   c          
      óp   € V ^8„  d   QhR\         R\        R,          R\        R,          R\        R\         /# rÞ   rß   )r   s   "r   r   r   ‡  sJ   € ÷ Bñ BÜðBä�4ÕðBô 
�D�ðBô ð	Bô
 ñBr   c           	      óV   € \        WV4      w  rB\        V R R7      p\        RWTW#RR7      # )Trd   ÚifftnFr“   râ   rã   s   &&&&  r   ræ   ræ   …  s/   € ô 8¸À#ÓF�L€UÜ! %¸Ô>€AÜ�W˜a¨¸5ÔAÐAr   c          
      óp   € V ^8„  d   QhR\         R\        R,          R\        R,          R\        R\         /# rÞ   rß   )r   s   "r   r   r   ”  sJ   € ÷ Pñ PÜðPä�4ÕðPô 
�D�ðPô ð	Pô
 ñPr   c                 ó  a € \         P                  ! S P                  P                  '       * V 3R  l4       \	        S W4      w  rB\        S RR7      o \        S W$4      o \        P                  ! S VRR7      p\        WS\        V4      RR7      # )c                  ó"   <€ R S P                    2# )z2rfftn expects a real-valued input tensor, but got r/   ©r^   s   €r   r   Úrfftn.<locals>.<lambda>œ  s   ø€ ÐDÀUÇ[Á[ÀMÑRr   Frd   Tr€   rn   )r"   r�   r*   r4   rÑ   rH   rZ   rr   r‚   r(   rÖ   )r^   rÃ   r`   r   rQ   Úouts   f&&&  r   Úrfftnrí   ’  ss   ø€ ô 
×ÒØ�K‰K×"Ñ"Ô"ÜRôô 6°e¸QÓD�J€EÜ% e¸UÔC€EÜ˜e SÓ0€EÜ
�-Š-˜ 3°Ô
6€CÜ�s´E¸%³LÈ$ÔOÐOr   c          
      óp   € V ^8„  d   QhR\         R\        R,          R\        R,          R\        R\         /# rÞ   rß   )r   s   "r   r   r   §  sJ   € ÷ Qñ QÜðQä�4ÕðQô 
�D�ðQô ð	Qô
 ñQr   c                 ó@  a € \         P                  ! S P                  P                  '       * V 3R  l4       \	        S W4      w  rB\         P
                  ! \        V4      ^ 8„  R 4       \        S RR7      o \        S W$4      o \        P                  ! S VR	R RR7      p\        V4      ^8X  d,   \        WSV^ ,          RR7      p\        P                  ! V4      # \        P                  ! V4      p\        P                  ! WRRR	 RR7      p\        WS\        V4      RR7      # )
c                  ó"   <€ R S P                    2# )z3ihfftn expects a real-valued input tensor, but got r/   rê   s   €r   r   Úihfftn.<locals>.<lambda>¯  s   ø€ ÐEÀeÇkÁkÀ]ÑSr   c                  ó   € R # )z'ihfftn must transform at least one axisr   r   r   r   r   rñ   ²  s   € Ñ)Rr   Frd   NTr€   rn   r‹   rN   )r"   r�   r*   r4   rÑ   r#   rO   rH   rZ   rr   r‚   r(   rq   Úconj_physicalrŒ   rÖ   )r^   rÃ   r`   r   rQ   Útmps   f&&&  r   Úihfftnrõ   ¥  sá   ø€ ô 
×ÒØ�K‰K×"Ñ"Ô"ÜSôô 6°e¸QÓD�J€EÜ	‡L‚L”�U“˜a‘Ñ!RÔSÜ% e¸UÔC€EÜ˜e SÓ0€Eä
�-Š-˜ 3 r s 8°dÔ
;€Cä
ˆ3ƒx�1„}Ü˜#°u¸QµxÈÔOˆÜ�zŠz˜#‹Ðä
×
Ò
˜cÓ
"€CÜ
�-Š-˜ S b °5Ô
9€CÜ�s´E¸%³LÈ%ÔPÐPr   c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )Ú_CanonicalizeC2rReturniÁ  c                óf   <€ V ^8„  d   Qh/ S[ S[R3,          ;R&   S[ S[R3,          ;R&   S[;R&   # )r   .rQ   r`   rj   r«   )r   r¬   s   "€r   r   Ú#_CanonicalizeC2rReturn.__annotate__Á  s8   ø‡ ‚ Ù‘�c��?Ññ á	‰s�Cˆx�Ññ ñ Ñò r   r   Nr®   r¶   s   @r   r÷   r÷   Á  r·   r   r÷   c          
      óp   € V ^8„  d   QhR\         R\        R\        R,          R\        R,          R\        /# )r   Úfnamer^   rÃ   Nr`   r   )rb   r
   r	   r   r÷   )r   s   "r   r   r   Ç  sC   € ÷ ñ Üðäðô �4Õðô 
�D�ð	ô
 ñr   c                óž  a a€ \        WV4      w  rC\        P                  ! \        V4      ^ 8„  V 3R l4       Ve   VR,          R8X  d*   ^VP                  VR,          ,          ^,
          ,          oM	VR,          o\        P                  ! S^8¬  V3R l4       \        V4      pS^,          ^,           VR&   \        \        V4      VSR7      # )z–Canonicalize shape and dim arguments for n-dimensional c2r transforms,
as well as calculating the last_dim_size which is shape[dim[-1]] for the outputc                  ó   <€ S  R 2# )z! must transform at least one axisr   )rû   s   €r   r   Ú:_canonicalize_fft_c2r_shape_and_dim_args.<locals>.<lambda>Ð  s   ø€ ¨E¨7Ð2SÑ)Tr   c                  ó   <€ R S  R2# rh   r   ri   s   €r   r   rþ   Ù  rl   r   )rQ   r`   rj   rN   )rÑ   r"   r#   rO   rQ   Úlistr÷   rL   )rû   r^   rÃ   r`   rQ   Ú
shape_listrj   s   f&&&  @r   Ú(_canonicalize_fft_c2r_shape_and_dim_argsr  Ç  s¬   ù€ ô 8¸À#ÓF�L€UÜ	‡L‚L”�U“˜a‘Ô!TÔUà‚y�A�b•E˜R”KØ˜UŸ[™[¨¨R­Õ1°AÕ5Õ6‰à˜b�	ˆä	‡L‚LØ˜ÑÜLôô
 �e“€JØ" aÕ'¨!Õ+€Jˆr�NÜ!Ü�JÓ S¸ôð r   c          
      óp   € V ^8„  d   QhR\         R\        R,          R\        R,          R\        R\         /# rÞ   rß   )r   s   "r   r   r   å  sJ   € ÷ Sñ SÜðSä�4ÕðSô 
�D�ðSô ð	Sô
 ñSr   c                 óÊ   a€ \        R WV4      w  rBp\        V RR7      p \        WV4      p \        P                  ! WVR7      o\        SV\        V3R lV 4       4      RR7      # )ÚirfftnTrd   rm   c              3   óJ   <"  € T F  pSP                   V,          x € K  	  R # 5irÉ   )rQ   )rÂ   rÄ   rì   s   & €r   rÆ   Úirfftn.<locals>.<genexpr>ñ  s   øé € Ð'B¹c¸¨¯	©	°!¯ª»cùs   ƒ #Fr“   )r  rH   rZ   rr   rs   r(   rÖ   )r^   rÃ   r`   r   rQ   rj   rì   s   &&&&  @r   r  r  ã  sb   ø€ ô !IØ�%˜Có!Ñ€E�ô & e¸TÔB€EÜ˜e¨%Ó0€EÜ
�-Š-˜°mÔ
D€CÜ�s˜D¤%Ô'B¹cÓ'BÓ"BÈEÔRÐRr   c          
      óp   € V ^8„  d   QhR\         R\        R,          R\        R,          R\        R\         /# rÞ   rß   )r   s   "r   r   r   ö  sC   € ÷ ?ñ ?Üð?ä�4Õð?ô 
�D�ð?ô ð	?ô
 ñ?r   c           	      ó`  € \        R WV4      w  rBp\        V RR7      p \        WV4      p \        V4      ^8”  d   \        P
                  ! WRR RR7      MT p\        Wc\        VRR 4      RR7      p\        P                  ! V4      p\        P                  ! WbRR VR7      p\        WsVRR7      # )ÚhfftnTrd   Nr‹   r“   rm   rN   )
r  rH   rZ   rO   rr   rŒ   r(   rÖ   ró   rs   )r^   rÃ   r`   r   rQ   rj   rô   rì   s   &&&&    r   r
  r
  ô  s¦   € ô !IØ�˜3ó!Ñ€E�ô & e¸TÔB€EÜ˜e¨%Ó0€Eä>AÀ#»hÈ¼lŒ%�-Š-˜ s¨ 8°TÕ
:ÐPU€CÜ
�c¤ u¨S¨b zÓ!2¸DÔ
A€CÜ
×
Ò
˜cÓ
"€CÜ
�-Š-˜ R S ¸Ô
G€CÜ�s -¸Ô>Ð>r   c          
      óp   € V ^8„  d   QhR\         R\        R,          R\        R,          R\        R\         /# rÞ   rß   )r   s   "r   r   r     sC   € ÷ :ñ :Üð:ä�4Õð:ô 
�D�ð:ô ð	:ô
 ñ:r   c                 óD   € \         P                  P                  WW#R 7      # ©)rÃ   r`   r   )r"   r’   rá   ©r^   rÃ   r`   r   s   &&&&r   Úfft2r  	  s   € ô �9‰9�>‰>˜%¨#ˆ>Ó9Ð9r   c          
      óp   € V ^8„  d   QhR\         R\        R,          R\        R,          R\        R\         /# rÞ   rß   )r   s   "r   r   r     óC   € ÷ ;ñ ;Üð;ä�4Õð;ô 
�D�ð;ô ð	;ô
 ñ;r   c                 óD   € \         P                  P                  WW#R 7      # r  )r"   r’   ræ   r  s   &&&&r   Úifft2r    ó   € ô �9‰9�?‰?˜5¨3ˆ?Ó:Ð:r   c          
      óp   € V ^8„  d   QhR\         R\        R,          R\        R,          R\        R\         /# rÞ   rß   )r   s   "r   r   r   !  r  r   c                 óD   € \         P                  P                  WW#R 7      # r  )r"   r’   rí   r  s   &&&&r   Úrfft2r    r  r   c          
      óp   € V ^8„  d   QhR\         R\        R,          R\        R,          R\        R\         /# rÞ   rß   )r   s   "r   r   r   ,  óC   € ÷ <ñ <Üð<ä�4Õð<ô 
�D�ð<ô ð	<ô
 ñ<r   c                 óD   € \         P                  P                  WW#R 7      # r  )r"   r’   r  r  s   &&&&r   Úirfft2r  *  ó   € ô �9‰9×Ñ˜E¨CÐÓ;Ð;r   c          
      óp   € V ^8„  d   QhR\         R\        R,          R\        R,          R\        R\         /# rÞ   rß   )r   s   "r   r   r   7  r  r   c                 óD   € \         P                  P                  WW#R 7      # r  )r"   r’   r
  r  s   &&&&r   Úhfft2r  5  r  r   c          
      óp   € V ^8„  d   QhR\         R\        R,          R\        R,          R\        R\         /# rÞ   rß   )r   s   "r   r   r   B  r  r   c                 óD   € \         P                  P                  WW#R 7      # r  )r"   r’   rõ   r  s   &&&&r   Úihfft2r"  @  r  r   c                ó`   € V ^8„  d   QhR\         R,          R\        R\        \        ,          /# )r   r`   Nr   r   )r   r
   r   r   )r   s   "r   r   r   K  s)   € ÷ ñ œ( T�/ð ¬nð ÄÄcÅñ r   c                óŽ   € V f   \        \        VP                  4      4      # \        V \        4      '       g   V .# \        V 4      # )zIConvert Optional[DimsType] to a simple list, defaulting to all dimensions)r   rR   rp   rË   r   )r`   r   s   &&r   Ú_default_alldimsr%  K  s8   € à
‚{Ü”E˜!Ÿ&™&“MÓ"Ð"Ü˜œX×&Ò&Øˆuˆä�C‹yÐr   c                óJ   € V ^8„  d   QhR\         R\        R,          R\         /# ©r   r^   r`   Nr   ©r
   r   )r   s   "r   r   r   V  s%   € ÷ *ñ *”Nð *¬°D­ð *ÄNñ *r   c                 ó    € \        W4      pV Uu. uF  q0P                  V,          ^,          NK  	  pp\        P                  ! WV4      # u upi )r   ©r%  rQ   r"   Úroll©r^   r`   rJ   rÄ   Úshifts   &&   r   Úfftshiftr.  U  sD   € ä˜CÓ'€DÙ*.Ó/©$ Q�[‰[˜�^˜q× Ð ©$€EÐ/Ü�:Š:�e DÓ)Ð)ùò 0s   �"Ac                óJ   € V ^8„  d   QhR\         R\        R,          R\         /# r'  r(  )r   s   "r   r   r   ]  s%   € ÷ *ñ *”^ð *¬(°T­/ð *Ä^ñ *r   c                 ó®   € \        W4      pV Uu. uF#  q0P                  V,          ^,           ^,          NK%  	  pp\        P                  ! WV4      # u upi )rÁ   r*  r,  s   &&   r   Ú	ifftshiftr1  \  sI   € ä˜CÓ'€DÙ04Ó5±¨1�k‰k˜!�n˜qÕ  Q×&Ð&±€EÐ5Ü�:Š:�e DÓ)Ð)ùò 6s   �)A)r’   r  rá   r¤   r  r
  rœ   r  rí   r™   r  ræ   r§   r"  rõ   r    r  r  r.  r1  )r   r!   r    >   Nr    r   r!   )F)NrN   N)NNN)N)éþÿÿÿrN   NrÉ   )Rr%   Úcollections.abcr   r   Útypingr   r   r"   Útorch._primsÚ_primsrr   Útorch._prims_commonÚ_prims_commonr>   Útorch._decompr   r   r	   r
   Útorch._prims_common.wrappersr   r   Ú__all__r   r$   Ú_opsÚopsÚatenr(   rB   rH   rZ   ru   r„   r�   Úfft_fftr’   Úfft_ifftr™   Úfft_rfftrœ   Ú	fft_irfftr    Úfft_hfftr¤   Ú	fft_ihfftr§   r©   rÑ   rÖ   rÜ   Úfft_fftnrá   Ú	fft_ifftnræ   Ú	fft_rfftnrí   Ú
fft_ihfftnrõ   r÷   r  Ú
fft_irfftnr  Ú	fft_hfftnr
  Úfft_fft2r  Ú	fft_ifft2r  Ú	fft_rfft2r  Ú
fft_irfft2r  Ú	fft_hfft2r  Ú
fft_ihfft2r"  r%  Úfft_fftshiftr.  Úfft_ifftshiftr1  r   r   r   Ú<module>rS     s½  ðÛ ß .ß &ã Ý Ý #Ý 0ß CÑ Cß Mò€ð2 �'Ð8Õ9Õ9€Ú5€Ø‡z�z‡~�~×Ñ€õ6õ!÷H0õDõ<Wõ6/õ:5ñ4 ˜Ÿ™Ó%Ùƒö	Ró ó &ð	Rñ ˜Ÿ™Ó&Ùƒö	Tó ó 'ð	Tñ ˜Ÿ™Ó&ÙƒöNó ó 'ðNñ ˜Ÿ™Ó'ÙƒöAó ó (ðAñ ˜Ÿ™Ó&Ùƒö?ó ó 'ð?ñ ˜Ÿ™Ó'ÙƒöPó ó (ðPô�Jô õ
69õrõVñ& ˜Ÿ™Ó&Ùƒö@ó ó 'ð@ñ ˜Ÿ™Ó'ÙƒöBó ó (ðBñ ˜Ÿ™Ó'ÙƒöPó ó (ðPñ" ˜Ÿ™Ó(ÙƒöQó ó )ðQô4˜Zô õñ8 ˜Ÿ™Ó(ÙƒöSó ó )ðSñ ˜Ÿ™Ó'Ùƒö?ó ó (ð?ñ& ˜Ÿ™Ó&Ùƒö:ó ó 'ð:ñ ˜Ÿ™Ó'Ùƒö;ó ó (ð;ñ ˜Ÿ™Ó'Ùƒö;ó ó (ð;ñ ˜Ÿ™Ó(Ùƒö<ó ó )ð<ñ ˜Ÿ™Ó'Ùƒö;ó ó (ð;ñ ˜Ÿ™Ó(Ùƒö<ó ó )ð<õñ ˜×)Ñ)Ó*ö*ó +ð*ñ ˜×*Ñ*Ó+ö*ó ,ò*r   