
    Χg                        d dl mZ d dlmZ 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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 d dlm Z  d#dZ!d$dZ"d%dZ#d&dZ$d'd Z%d(d!Z&d"S ))    )annotations)Sequence)local)cpp)ArgName	BaseCTypeBindingboolTConstRefCTypeCTypedeviceTlayoutT	ListCTypeMutRefCType
NamedCTypeOptionalCTypescalarTscalarTypeTtensorT)ArgumentFunctionSchemaReturnSelfArgumentTensorOptionsArgumentsType)assert_neverfuncr   returnstrc                    t          | j        j                  }|                                 r|dz  }| j        j        r|d| j        j         z  }|S )N_out_)r   name	is_out_fnoverload_name)r   r#   s     O/var/www/html/ai-engine/env/lib/python3.11/site-packages/torchgen/api/native.pyr#   r#   /   sX    ty~D~~ y .-DI+---K    tr   mutableboolbindsr   symintr   c                  t          |           dk    rpt          t          t                              }|r0t	          j                    st          |t          |                    S t          |t          |                    S t          |           dk    rIt          |t          t          t          t          t                                                            S t          |           dk    r/t          |t          t          t                                        S t          |           dk    r<t          |t          t          t          t                                                  S t          j        | |||          S )NzTensor?z	Tensor?[]ScalarzScalar?r)   r+   r,   )r   r   r   r   r   !use_const_ref_for_mutable_tensorsr   r   r   r   r   r   argumenttype_type)r(   r)   r+   r,   tensor_types        r&   r1   r1   9   sB    1vv%29W3E3E%F%F 	A5BDD 	Ae[%=%=>>>e];%?%?@@@	Q;		==79K9K+L+L!M!MNN
 
 	
 
Q8		%y/A/A!B!BCCC	Q9		%}Yw=O=O/P/P!Q!QRRR G5PPPPr'   rsSequence[Return]r   c               .    t          j        | |          S )Nr,   )r   returns_type)r3   r,   s     r&   r7   r7   M   s    Bv....r'   ar   c               <    t          | j        | j        ||          S )Nr/   )r1   typeis_write)r8   r+   r,   s      r&   argument_typer<   Q   s    QVQZuVTTTTr'   0Argument | SelfArgument | TensorOptionsArgumentsis_outlist[Binding]c                  | }t          | t                    rZd }|r(| j        !t          j        | j        | j        |          }t          t          | | j        |          | j        ||           gS t          | t                    rt          | j
        ||          S t          | t                    rd }|rd}t          t          dt          t          t                                        d||           t          t          dt          t          t                                         d||           t          t          dt          t          t"                                        d||           t          t          d	t          t          t$                                        d	||           gS t'          |            d S )
Nr6   )r+   r,   )nctyper#   defaultargument)r>   r,   z{}dtypelayoutdevice
pin_memory)
isinstancer   rB   r   default_exprr:   r	   r<   r#   r   rC   r   r   r   r   r   r   r   r
   r   )r8   r>   r,   should_defaultrB   s        r&   rC   rC   U   s     ZN!X 1" 	Iai3&qy!&HHHG$QafVDDDV	  
 	
 
A|	$	$ %
6&AAAA	A-	.	. " 	G
 !'=;9O9O+P+PQQ	   !(M)G:L:L,M,MNN	   !(M)G:L:L,M,MNN	   !,i>N>N0O0OPP!	  '
 	
6 	Qr'   c                    g }|                      j        j                   |                      j        j                    fd|D             S )Nc                b    g | ]+}t          |                                           D ]}|,S ))r,   r>   )rC   r$   ).0argrr   r,   s      r&   
<listcomp>zarguments.<locals>.<listcomp>   sS       8Ct~~GWGW#X#X#X    r'   )extend	argumentsnon_outout)r   r,   argss   `` r&   rR   rR      sg    CEDKK&'''KK"###       r'   N)r   r   r   r   )
r(   r   r)   r*   r+   r   r,   r*   r   r   )r3   r4   r,   r*   r   r   )r8   r   r+   r   r,   r*   r   r   )r8   r=   r>   r*   r,   r*   r   r?   )r   r   r,   r*   r   r?   )'
__future__r   typingr   torchgenr   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   torchgen.utilsr   r#   r1   r7   r<   rC   rR    r'   r&   <module>r^      s   " " " " " "                                                   "                ( ' ' ' ' '   Q Q Q Q(/ / / /U U U U= = = =@     r'   