ó
    IC˜j  ã                  óÔ   • S SK Jr  S SKJr  S SKJr  S SKJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJr  S SKJrJrJrJrJrJrJrJrJr  SS jr SS jr!SS jr"SS	 jr#SS
 jr$SS jr%g)é    )Úannotations)Úassert_never)Úcpp)ÚArgNameÚArrayRefCTypeÚ	BaseCTypeÚBindingÚConstRefCTypeÚintArrayRefTÚiOptTensorListRefTÚiTensorListRefTÚ
NamedCTypeÚOptionalCTypeÚoptionalIntArrayRefTÚoptionalScalarRefTÚoptionalTensorRefTÚscalarTÚtensorT)	ÚArgumentÚBaseTyÚBaseTypeÚListTypeÚNativeFunctionsGroupÚOptionalTypeÚSelfArgumentÚTensorOptionsArgumentsÚTypec               ó  • [         R                  " U SX!S9nUb  U$ [        U [        5      (       aŽ  U R                  [
        R                  :X  a"  [        U[        [        [        5      5      5      $ U R                  [
        R                  :X  a"  [        U[        [        [        5      5      5      $ [        SU  35      e[        U [        5      (       Ga  U R                  [        [
        R                  5      :X  a  [        U[        [         5      5      $ U R                  [        [
        R                  5      :X  a  [        U[        ["        5      5      $ [        U R                  [$        5      (       a<  ['        U R                  R                  5      S:X  a  [        U[        [(        5      5      $ [+        U R                  XS9n[        U[-        UR.                  5      5      $ [        U [$        5      (       a÷  U R                  [        [
        R                  5      :X  a"  [        U[        [        [0        5      5      5      $ U R                  [        [        [
        R                  5      5      :X  a  [        U[        [2        5      5      $ ['        U R                  5      S:X  a  [        U[        [4        5      5      $ [+        U R                  XS9n[        U[7        UR.                  5      5      $ [        S[9        U 5       35      e)NF)ÚsymintÚbindsÚmutablez&base type should have been value type Úint©r!   r    zunrecognized type )r   Úvaluetype_typeÚ
isinstancer   Únamer   ÚTensorr   r
   r   r   ÚScalarr   ÚAssertionErrorr   Úelemr   r   r   Ústrr   Úargumenttype_typer   Útyper   r   r   r   Úrepr)Útr!   r    Úrr*   s        Ú¥C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\torchgen/api/structured.pyr,   r,   ,   s  € ô 	×Ò˜1 U°%ÑI€AØ�}Øˆä�!”X×ÑØ�6‰6”V—]‘]Ó"Ü˜e¤]´9¼WÓ3EÓ%FÓGÐGØ�V‰V”v—}‘}Ó$Ü˜e¤]´9¼WÓ3EÓ%FÓGÐGä Ð#IÈ!ÈÐ!MÓNÐNÜ	�A”|×	$Ò	$Ø�6‰6”XœfŸm™mÓ,Ó,Ü˜e¤YÔ/AÓ%BÓCÐCØ�V‰V”x¤§¡Ó.Ó.Ü˜e¤YÔ/AÓ%BÓCÐCÜ˜Ÿ™¤×)Ñ)¬c°!·&±&·+±+Ó.>À%Ó.GÜ˜e¤YÔ/CÓ%DÓEÐEÜ  §¡°ÑFˆÜ˜%¤¨t¯y©yÓ!9Ó:Ð:Ü	�A”x×	 Ñ	 Ø�6‰6”XœfŸm™mÓ,Ó,Ü˜e¤]´9¼_Ó3MÓ%NÓOÐOØ�V‰V”|¤H¬V¯]©]Ó$;Ó<Ó<Ü˜e¤YÔ/AÓ%BÓCÐCô �—‘‹[˜EÓ!Ü˜e¤Y¬|Ó%<Ó=Ð=Ü  §¡°ÑFˆÜ˜%¤¨t¯y©yÓ!9Ó:Ð:äÐ1´$°q³'°Ð;Ó<Ð<ó    c               ó@   • [        U R                  U R                  US9$ )Nr#   )r,   r-   Úis_write)Úar    s     r1   Úargument_typer6   W   s   € Ü˜QŸV™V¨Q¯Z©Z¸uÑEÐEr2   c                ó(  • [        U [        5      (       a(  [        [        X R                  S9U R                  S U S9/$ [        U [
        5      (       a  [        U R                  5      $ [        U [        5      (       a  [        S5      e[        U 5        g )N)r    )Únctyper&   ÚdefaultÚargumentz2structured kernels don't support TensorOptions yet)
r%   r   r	   r6   r&   r   r:   r   r)   r   )r5   s    r1   r:   r:   b   sy   € Ü�!”X×ÑäÜ$ Q¯f©fÑ5Ø—V‘VØØñ	ð
ð 	
ô 
�A”|×	$Ñ	$Ü˜Ÿ
™
Ó#Ð#Ü	�AÔ-×	.Ñ	.ÜÐQÓRÐRä�Q�r2   c                óˆ  • / nU R                   R                  (       Ga  / nU R                   R                  R                  R                   H•  n[        U[        5      (       al  UR                  U R                   R                  R                  ;   a>  UR                  U R                   R                  R                  UR                     5        M„  UR                  U5        M—     UR                  U5        UR                  U R                   R                  R                  5        O9UR                  U R                   R                  R                  R                  5        UR                  U R                   R                  R                  R                   5        U VVs/ s H  n[        U5        H  oUPM     M     snn$ s  snnf ©N)ÚoutÚprecomputedÚfuncÚ	argumentsÚnon_outr%   r   r&   ÚreplaceÚextendÚappendÚaddr:   )ÚgÚargsÚnon_out_args_replacedr5   Úargr0   s         r1   Úimpl_argumentsrJ   t   s3  € ØCE€Dà‡u�u××Ðð ð 	ð —‘—‘×%Ñ%×-Ô-ˆAÜ˜!œX×&Ñ&¨1¯6©6°Q·U±U×5FÑ5F×5NÑ5NÓ+Nð &×,Ñ,¨Q¯U©U×->Ñ->×-FÑ-FÀqÇvÁvÑ-NÖOð &×,Ñ,¨QÖ/ñ .ð 	�‰Ð)Ô*ð 	�‰�A—E‘E×%Ñ%×)Ñ)Õ*à�‰�A—E‘E—J‘J×(Ñ(×0Ñ0Ô1à‡K�K�—‘—
‘
×$Ñ$×(Ñ(Ô)ÙÔ5š�#¤x°§} !ŠA¡}‰A™Ò5Ð5ùÓ5s   ÆF>c                óÒ   • / nUR                  U R                  R                  R                  R                  5        U VVs/ s H  n[        U5        H  o3PM     M     snn$ s  snnf r<   )rC   Ú
functionalr?   r@   rA   r:   ©rF   rG   rI   r0   s       r1   Úmeta_argumentsrN   ’   sM   € ØCE€DØ‡K�K�—‘×!Ñ!×+Ñ+×3Ñ3Ô4ÙÔ5š�#¤x°§} !ŠA¡}‰A™Ò5Ð5ùÓ5ó   ÁA#c                óÒ   • / nUR                  U R                  R                  R                  R                  5        U VVs/ s H  n[	        U5        H  o3PM     M     snn$ s  snnf r<   )rC   r=   r?   r@   r:   rM   s       r1   Úout_argumentsrQ   ˜   sK   € ØCE€DØ‡K�K�—‘—
‘
×$Ñ$×(Ñ(Ô)ÙÔ5š�#¤x°§} !ŠA¡}‰A™Ò5Ð5ùÓ5rO   N)r/   r   r!   Úboolr    r   Úreturnr   )r5   r   r    r   rS   r   )r5   z0Argument | SelfArgument | TensorOptionsArgumentsrS   úlist[Binding])rF   r   rS   rT   )&Ú
__future__r   Útyping_extensionsr   Útorchgen.apir   Útorchgen.api.typesr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   Útorchgen.modelr   r   r   r   r   r   r   r   r   r,   r6   r:   rJ   rN   rQ   © r2   r1   Ú<module>r[      sV   ðÝ "å *å ÷÷ ÷ ÷ ñ ÷"
÷ 
õ 
ô*(=ôVFôô$6ô<6õ6r2   