
    Χg                    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        Z/var/www/html/ai-engine/env/lib/python3.11/site-packages/torchgen/api/functionalization.pyr   r   [   s       7AF$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 %OX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
A4@@@  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<8FM222222HM 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24L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DL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GA,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<8FM222222HM 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ii6H6H(I(IJJJX((6=114D      w	:>ii>P>P0Q0QRRRX((6=114D       #7	:-IIe4D4DEEEX((6=114D        	:?51A1ABBBX88FK#8#8$SW       ![!8:MNN %g	:0yyAS7T7TUUUX"Xfk""      * "&) ) ) ) ) )0	% 	% 	% 	%   $   8 8 8 8   " " " " " "r/   