
    '}h              
       F   d dl mZmZmZ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ede"fd	Z#d
ede$de
de$def
dZ%dee   de$defdZ&dede
de$defdZ'deeeef   de$de$dee   fdZ(dede$dee   fdZ)y)    )ListOptionalSequenceUnion)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funcreturnc                     t        | j                  j                        }| j                         r|dz  }| j                  j                  r|d| j                  j                   z  }|S )N_out_)strname	is_out_fnoverload_name)r   r%   s     R/var/www/html/test/engine/venv/lib/python3.12/site-packages/torchgen/api/native.pyr%   r%   -   sU    tyy~~D~~yy!DII++,--K    tmutablebindssymintc                V   t        |       dk(  rXt        t        t                    }|r)t	        j
                         st        |t        |            S t        |t        |            S t        |       dk(  r4t        |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(   r2   r2   7   s     1v%29W3E%F5BBDe[%=>>e];%?@@	Q;	==79K+L!MN
 	
 
Q8	%y/A!BCC	Q9	%}Yw=O/P!QRR  G5PPr)   rsc                0    t        j                  | |      S )Nr-   )r   returns_type)r4   r-   s     r(   r7   r7   K   s    Bv..r)   ac                H    t        | j                  | j                  ||      S )Nr0   )r2   typeis_write)r8   r,   r-   s      r(   argument_typer<   O   s    QVVQZZuVTTr)   is_outc                   | }t        | t              rld }|r8| j                  ,t        j                  | j                  | j
                  |      }t        t        | | j                  |      | j                  ||       gS t        | t              rt        | j                  ||      S t        | t              rd }|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'        |        y )
Nr6   )r,   r-   )nctyper%   defaultargument)r=   r-   z{}dtypelayoutdevice
pin_memory)
isinstancer   r@   r   default_exprr:   r   r<   r%   r   rA   r   r   r   r
   r   r   r   r   r   )r8   r=   r-   should_defaultr@   s        r(   rA   rA   S   sW     ZN!X!%aii3&&qyy!&&HG$QaffVDVV	
 	
 
A|	$

6&AA	A-	.G
 !'=;9O+PQ	 !(M)G:L,MN	 !(M)G:L,MN	 !,i>N0OP!	'
 	
6 	Qr)   c          
         g }|j                  | j                  j                         |j                  | j                  j                         |D cg c]%  }t	        ||| j                               D ]  }| ' c}}S c c}}w )N)r-   r=   )extend	argumentsnon_outoutrA   r&   )r   r-   argsargrs        r(   rK   rK      sr    HJDKK&&'KK""#8Ct~~GW#X	  s   *B N)*typingr   r   r   r   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$   r%   boolr2   r7   r<   rA   rK    r)   r(   <module>rY      s   2 2      "  (~ # QQQ&-Q7;QQ(/Xf% /$ /5 /UX U U$ U: U=X|%;;<= = 	=
 
']=@N t W r)   