§
    Ì²ÅjU  ã                  óP  — d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZ d dlmZmZmZmZmZmZ  ed ed e	 ee¦  «        ¦  «        ¬¦  «         ed eej        ¦  «        dd¬¦  «        d¬	¦  «        Z ed
 ed
 e	 ee¦  «        ¦  «        ¬¦  «         ed eej        ¦  «        dd¬¦  «        d¬	¦  «        Z ed ed ee¦  «        ¬¦  «         ed eej        ¦  «        dd¬¦  «        d¬	¦  «        Z ed ed ee¦  «        ¬¦  «         ed eej        ¦  «        dd¬¦  «        d¬	¦  «        Z edd¦  «        Z ed ed ee¦  «        ¬¦  «         ed eej        ¦  «        dd¬¦  «        d¬	¦  «        Zddœd'd„Zd(d„Zd)d „Zd*d"„Z d+d#„Z!d,d%„Z"d)d&„Z#dS )-é    )Úannotations)Ú
dispatcher)	ÚBaseCppTypeÚ	BaseCTypeÚBindingÚboolTÚConstRefCTypeÚCTypeÚlongTÚ
NamedCTypeÚtensorT)ÚArgumentÚBaseTyÚBaseTypeÚFunctionSchemaÚNativeFunctionÚNativeFunctionsViewGroupÚbase)ÚnameÚtypeN)r   r   ÚdefaultÚ
annotation)r   ÚnctypeÚargumentr   Úmutated_viewÚmutated_view_idxÚreapply_viewszat::functionalizationÚInverseReturnModeÚinverse_return_mode)r   Úgr   Ú
is_reverseÚboolÚinclude_namespaceúbool | NoneÚreturnÚstrc               óò   — |€|sJ ‚|rt          | j        |¦  «        S |sJ ‚| j        €J ‚|r#| j        j        j                             ¦   «         n"| j        j        j                             ¦   «         }d|› d�S )Nz
at::_ops::z::call)Úreverse_nameÚviewÚ	view_copyÚfuncr   Úunambiguous_name)r    r!   r#   r   Úapi_names        úOC:\Projects\Historical\venv\Lib\site-packages\torchgen/api/functionalization.pyr   r   [   s�   € ð Ðð ÐÐˆzØð 7Ý˜AœFÐ$5Ñ6Ô6Ð6àÐÐÐØŒ;Ð"Ð"Ð"ð ð	6ˆŒŒÔ×)Ò)Ñ+Ô+Ð+àŒ[ÔÔ"×3Ò3Ñ5Ô5ð ð
 )˜Ð(Ð(Ð(Ð(ó    Úfr   c                óX   — | j         j                             ¦   «         }|rd|› d�S |› d�S )Nz+at::functionalization::FunctionalInverses::Ú_inverse)r+   r   r,   )r0   r#   r-   s      r.   r(   r(   s   sA   € ð ŒvŒ{×+Ò+Ñ-Ô-€Hàð %ØO¸XÐOÐOÐOÐOàÐ$Ð$Ð$Ð$r/   r+   r   úlist[Binding]c               óê   — | j         j        }|d         j        t          t          j        ¦  «        k    sJ ‚|dd …         }d„ |D ¦   «         }|rt          nt          g}|                     |¦  «         |S )Nr   é   c                ó:   — g | ]}t          j        |d ¬¦  «        ‘ŒS )T)Úremove_non_owning_ref_types©r   r   ©Ú.0Úas     r.   ú
<listcomp>z%capture_arguments.<locals>.<listcomp>†   s5   € ð ð ð ØEF�
Ô˜A¸4Ð@Ñ@Ô@ðð ð r/   )	Ú	argumentsÚflat_allr   r   r   ÚTensorÚinverse_return_mode_bindingÚreapply_views_bindingÚextend)r+   r!   ÚargsÚnon_self_argsÚnon_self_value_bindingsÚall_bindingss         r.   Úcapture_argumentsrG      s�   € ð Œ>Ô"€DØ�Œ7Œ<�8¥F¤MÑ2Ô2Ò2Ð2Ð2Ð2Ø˜˜˜”H€Mðð ØJWðñ ô Ðð
 (2ÐLÕ#Ð#Õ7Lð€Lð ×ÒÐ/Ñ0Ô0Ð0ØÐr/   r
   c                ó¨   — t          | j        ¦  «        dk    sJ ‚| j        D ]}|j                             ¦   «         sJ ‚Œt	          t
          ¦  «        S )Nr5   )ÚlenÚreturnsr   Úis_tensor_liker   r   )r+   Úrets     r.   Úreturns_typerM   ‘   s[   € åˆtŒ|ÑÔ Ò!Ð!Ð!Ð!ØŒ|ð )ð )ˆØŒx×&Ò&Ñ(Ô(Ð(Ð(Ð(Ð(õ •WÑÔÐr/   c                óJ   — | rt           t          t          gS t           t          gS )N)Úbase_bindingÚmutated_view_bindingÚmutated_view_idx_binding)r!   s    r.   Úouter_argumentsrR   ›   s%   € Øð 8ÝÕ2Õ4LÐMÐMåÕ6Ð7Ð7r/   úBinding | Nonec                ó¼   — t          | j        ¦  «        dk    s<t          | j        ¦  «        dk    r+| j        d         j                             ¦   «         rt          S d S )Nr5   r   )rI   rJ   r   Úis_list_likerQ   )r+   s    r.   Úinner_call_indexrV   ¢   sS   € õ ˆ4Œ<ÑÔ˜1ÒÐÝˆDŒLÑÔ˜QÒÐ 4¤<°¤?Ô#7×#DÒ#DÑ#FÔ#FÐå'Ð'Øˆ4r/   c                ó4  — | j         j        }|d         j        t          t          j        ¦  «        k    sJ ‚|dd …         }d„ |D ¦   «         }|st          g|z   S t          | ¦  «        }|�t          t          t          |g|z   S t          t          t          g|z   S )Nr   r5   c                ó6   — g | ]}t          j        |¦  «        ‘ŒS © r8   r9   s     r.   r<   z#inner_arguments.<locals>.<listcomp>²   s#   € ÐGÐGÐG°A�Ô,¨QÑ/Ô/ÐGÐGÐGr/   )
r=   r>   r   r   r   r?   rO   rV   rP   r@   )r+   r!   rC   rD   Únon_self_bindingsÚindex_bindings         r.   Úinner_argumentsr\   ¬   s»   € ØŒ>Ô"€DØ�Œ7Œ<�8¥F¤MÑ2Ô2Ò2Ð2Ð2Ð2Ø˜˜˜”H€Mð HÐG¸ÐGÑGÔGÐØð "åˆ~Ð 1Ñ1Ð1õ
 )¨Ñ.Ô.ˆØÐ$åÝ$Ý+Øð	ð
 "ñ"ð "õ Ý$Ý+ðð "ñ	"ð "r/   )
r    r   r!   r"   r#   r"   r   r$   r%   r&   )r0   r   r#   r"   r%   r&   )r+   r   r!   r"   r%   r3   )r+   r   r%   r
   )r!   r"   r%   r3   )r+   r   r%   rS   )$Ú
__future__r   Útorchgen.apir   Útorchgen.api.typesr   r   r   r   r	   r
   r   r   r   Útorchgen.modelr   r   r   r   r   r   r?   rO   rP   rQ   r"   rA   ÚInverseReturnModeTr@   r   r(   rG   rM   rR   rV   r\   rY   r/   r.   ú<module>rb      s¸  ðØ "Ð "Ð "Ð "Ð "Ð "à #Ð #Ð #Ð #Ð #Ð #ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð4 ˆwØ	Øˆ:˜6¨¨°i°iÀÑ6HÔ6HÑ(IÔ(IÐJÑJÔJØˆXØ˜(˜( 6¤=Ñ1Ô1¸4ÈDðñ ô ð ðñ ô €ð �wØ	Øˆ:˜>°°¸i¸iÈÑ>PÔ>PÑ0QÔ0QÐRÑRÔRØˆXØ˜(˜( 6¤=Ñ1Ô1¸4ÈDðñ ô ð ðñ ô Ð ð #˜7Ø	Øˆ:Ð-°I°I¸eÑ4DÔ4DÐEÑEÔEØˆXØ˜(˜( 6¤=Ñ1Ô1¸4ÈDðñ ô ð ðñ ô Ð ð  ˜Ø	Øˆ:˜?°°¸5Ñ1AÔ1AÐBÑBÔBØˆXØ 8 8¨F¬KÑ#8Ô#8À$ÐSWðñ ô ð ðñ ô Ð ð !�[Ð!8Ð:MÑNÔNÐ Ø%˜gØ	Øˆ:Ð0°y°yÐASÑ7TÔ7TÐUÑUÔUØˆXØ"àˆX�f”kÑ"Ô"ØØðñ ô ð ðñ ô Ð ð* "&ð)ð )ð )ð )ð )ð )ð0	%ð 	%ð 	%ð 	%ðð ð ð ð$ð ð ð ð8ð 8ð 8ð 8ðð ð ð ð"ð "ð "ð "ð "ð "r/   