
    %hH@                        d dl mZmZmZmZ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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,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2 d dl3m4Z4 dddde+d	e5d
e5de6fdZ7dddde2de	de5de5dee         f
dZ8dddde2de5de	de5de5defdZ9ddde'de	de5defdZ:ddde2de5de5defdZ;ddde/de5defdZ<dddee/         de5defdZ=ddde-d e6dee6         fd!Z>d"d#d$d%d&d'd(d)Z?d*e6de2de5de6fd+Z@dddee'e1e0f         d,ee6         d-e5d.e5de5d/e5dee         fd0ZAddd1e(d.e5de5d-e5d,ee6         dee         fd2ZBd3S )4    )ListOptionalSequenceSetUnion)local)ArgName
ArrayCTypeArrayRefCType	BaseCTypeBaseTypeToCppMappingBindingboolTConstRefCTypeCTypedimnameListTintArrayRefTiTensorListRefT	ListCTypelongTMutRefCType
NamedCTypeOptionalCTypeoptionalIntArrayRefToptionalSymIntArrayRefTscalarTSpecialArgNamesymIntArrayRefTSymIntTtensorListTtensorOptionsTtensorT
TupleCTypeVectorCTypevoidT)Argument	ArgumentsBaseTyBaseTypeFunctionSchemaListTypeNativeFunctionOptionalTypeReturnSelfArgumentTensorOptionsArgumentsType)assert_neverF)faithful_name_for_out_overloadssymint_overloadfuncr3   r4   returnc                    t          | j        j                  }|r|dz  }|                                 r|r|dz  }n|dz  }|S )N_symint_outf_out)strname	is_out_fn)r5   r3   r4   r<   s       P/var/www/html/auto_sub_bot/venv/lib/python3.11/site-packages/torchgen/api/cpp.pyr<   r<   E   sZ     ty~D 	~~ * 	GODDFNDK    )remove_non_owning_ref_typessyminttbindsr@   rA   c                   t          | t                    r| j        t          j        k    s| j        t          j        k    rd S t          |           dk    rF|r"t          |t          t                              S t          |t          t                              S |r$| j        t          j        k    rt          d          t          |t          t          | j                                     S t          | t                    r=t          | j        ||          }|d S t          |t!          |j                            S t          | t$                    rXt          | j                  dk    r>| j        J t          |t)          t          t*                    | j                            S d S t          dt-          |                      )NSymIntz1string ref->value conversion: not implemented yetrC   rA   boolunrecognized type )
isinstancer)   r<   r(   TensorScalarr;   r   r   r   r   AssertionErrorr   r-   valuetype_typeelemr   typer+   sizer
   r   repr)rB   rC   r@   rA   rN   s        r>   rM   rM   Z   s    !X =6V]""af&=&=4VVx ;!%7););<<<!%5)9)9:::& 	v##$G   %+?+G!H!HIII	A|	$	$ =afE&AAA<4%ty!9!9:::	Ax	 	  =qv;;&  6%%%eZ	%0@0@!&%I%IJJJ4;$q'';;<<<r?   mutablec                *   t          | |||          }||S t          | t                    r| j        t          j        k    rs|rBt          j                    s/t          |t          t          t                                        S t          |t          t          t                                        S | j        t          j        k    r/t          |t          t          t                                        S t          d|            t          | t                     rt#          | j                  dk    r|rBt          j                    s/t          |t          t          t                                        S t          |t          t'          t          t                                                  S t#          | j                  dk    r<t          |t          t'          t          t                                                  S t          | j        t(                    r?t#          | j        j                  dk    r"t          |t          t*                              S t          | j        t(                    rct#          | j        j                  dk    rF|r"t          |t          t,                              S t          |t          t*                              S t/          | j        |||          }t          |t'          |j                            S t          | t(                    rt#          | j                  dk    rS|r/t          |t3          t          t4                                        S t          |t          t6                              S t#          | j                  dk    r|r`|r/t          |t3          t          t8                                        S t          |t3          t          t4                                        S |r"t          |t          t:                              S t          |t          t6                              S t#          | j                  dk    rdt          j                    r/t          |t          t          t>                                        S t          |t          t@                              S t#          | j                  dk    r/t          |tC          t          t                                        S t#          | j                  dk    r"t          |t          tD                              S t#          | j                  d	k    rIt          |t          tG          t'          t          t                                                            S t/          | j        |||          }t          |tC          |j                            S t          d
tI          |                      )N)rC   rA   r@   z&base type should have been value type rJ   rK   intrE   )rR   rC   rA   DimnameTensor?rH   )%rM   rI   r)   r<   r(   rJ   r   !use_const_ref_for_mutable_tensorsr   r   r   r"   r   rK   r   rL   r-   r;   rN   r   r+   r   r   argumenttype_typerO   r$   r   r   r   r   use_ilistref_for_tensor_listsr   r    r   r   r   rQ   )rB   rR   rC   r@   rA   rrN   s          r>   rX   rX      s    		$?		 	 	A 	}!X A=6V]"" LuFHH L!%Yw5G5G)H)HIII!%y7I7I)J)JKKKVv}$$e]9W3E3E%F%FGGG !M!!M!MNNN	A|	$	$ 7=qv;;("" uFHH !;y'9'9::   "=y7I7I)J)JKK   [[H$$e]=7ASAS3T3T%U%UVVV)) 	Jc!&+.>.>%.G.GeY/C%D%DEEE)) 	Jc!&+.>.>(.J.J J!%3J)K)KLLL!%3G)H)HIII fUUU%ty!9!9:::	Ax	 	  "=qv;;%* B!%Yu5E5E)F)FGGG!%<)@)@AAAqv;;(""* 	F L%e[79K9K-L-LMMM%e[59I9I-J-JKKK F%eY-G-GHHH%eY|-D-DEEEqv;;(""244 A!%y7Q7Q)R)RSSS!%;)?)?@@@[[H$$e]9W3E3E%F%FGGG[[I%%eY|%<%<===[[I%%}Y}Yw=O=O/P/P%Q%QRR   !fUUU%ty!9!9:::;$q'';;<<<r?   rA   ac                <    t          | j        | j        ||          S )N)rR   rA   rC   )rX   rO   is_write)r\   rC   rA   s      r>   argument_typer_      s    QVQZeTTTTr?   c                2   t          | dd          }||j        S t          | t                    r| j        t
          j        k    rk|rUt          j                    r!t          t          t                              S t          t          t                              S t          t                    S | j        t
          j        k    rt          t                    S nt          | t                    rE|r
J d            t!          | j        d          }| j        J d|              t'          |          S t          | t(                    r=t!          | j        |          }t+          | j                  dk    rt-          |          S t/          d	|            )
N__placeholder__TrF   zTNative functions should never return a mutable tensor list. They should return void.F)rR   z'fixed size list returns not supported: rJ   zunrecognized return type )rM   rO   rI   r)   r<   r(   rJ   r   rW   r   r   r"   r   rK   r   r+   returntype_typerN   rP   r$   r-   r;   r   rL   )rB   rR   rA   rZ   rN   s        r>   rb   rb      s    	q 1$???A}v!X '6V]"" 
*:<< ;(7););<<<&y'9'9::: !)))Vv}$$W%%% %	Ax	 	  
'	b 	ba	b 	bqvu555v~~LLL~~~4   	A|	$	$ 'qvw777qv;;("" &&&
8Q88
9
99r?   rZ   c                :    t          | j        | j        |          S )N)rR   rA   )rb   rO   r^   )rZ   rA   s     r>   return_typerd   
  s    161:fEEEEr?   rsc                    t          |           dk    rt          t                    S t          |           dk    rt          | d                   S t	          fd| D                       S )Nr      r[   c                 2    g | ]}t          |           S )r[   )rd   ).0rZ   rA   s     r>   
<listcomp>z returns_type.<locals>.<listcomp>  s&    EEEQ;q888EEEr?   )lenr   r%   rd   r#   )re   rA   s    `r>   returns_typerl     si    
2ww!||	RA2a50000EEEE"EEEFFFr?   result)fallback_namefrn   c                N   g }t          | j        j                  D ]\  }| j        j        j        j        r|dk    s
J d            d}n| j                                        r| j        j        j        |         j        }nj        r`t          fd| j        	                                D                       }|r$| j                                        sj         d}n-j        }n%t          | j        j                  dk    r|n| | }|                    |           |S )Nr   z.illegal inplace function with multiple returnsselfc              3   8   K   | ]}j         |j         k    V  d S )N)r<   )ri   r\   rZ   s     r>   	<genexpr>zreturn_names.<locals>.<genexpr>(  s=          %&!&            r?   _returnrg   )	enumerater5   returnsr<   inplacer=   	argumentsoutanyschema_order_argumentsrk   append)ro   rn   rv   ir<   name_conflictrZ   s         @r>   return_namesr     sV   G!&.))  1 6;# 	X666K666DD V 	X6#'*/DDV 	X        *+&*G*G*I*I       M  QV%5%5%7%7 &)))v
 %($7$71$<$<==]BWTUBWBWDtNr?   falsetruec10::nulloptzat::Reduction::Mean{}zMemoryFormat::Contiguous	at::kLong)FalseTrueNoneMeanz[]contiguous_formatlongdc                   | dk    rt          |          dk    rdS t          |t                    r|j        t          j         u rt          |           dk    r| d         dk    r| d         dk    rd}d	}|d	z   t          |           k     ro| |         d
k    r#| |         dk    r|dz  }n|| |         z  }|d	z  }n*| |d	z            dk    r|dz  }n|| ||dz            z  }|dz  }|d	z   t          |           k     od| dS t          |t                    r| dk    rdS t          | |j        |          S t          |t                    r| 
                    d          r%|                     d          rd| d	d         z   dz   S |r2|                                 rt          |j                  dk    rd|  dS |j        t          d|  d          t                              | |           S )Nr   rV   r      r   ' rg   \"z\"r   r[   []{}rE   zc10::SymInt()z,Expected a list default '[...]' but found: ')r;   rI   r)   r<   r(   rk   r-   default_exprrN   r+   
startswithendswithisdigitrP   
ValueErrorJIT_TO_CPP_DEFAULTget)r   rB   rA   sr}   s        r>   r   r   D  s   F{{s1vv**t!X 16VZ#7#7q66Q;;1Q43;;1R5C<<AAa%#a&&..Q44<<ts{{U
QqT	FAAQx3SQq1q5y\)FA a%#a&&.. q888O!\"" 6;;!>Aqvf5555!X R<< 	RC 	R1R4=3&& 	R		 	RAFx(?(?&!&&&&V^PAPPPQQQ!!!Q'''r?   cpp_no_default_argsmethodfaithfulhas_tensor_optionsc                   dt           t          t          t          f         dt          t
                   ffd}t          | t                    rx| j        dk    rrt          j	        }n| j        }d }| j        vr#| j
        t          | j
        | j                  }t          t          | |          | j        ||           gS t          | t                    rrC || j                   || j                  z    || j                  z    || j                  z   S d }dvsJ t%          d	 |                                 D                       rd
}n| j        j
        dk    rd}t          t'          dt)          t*                              d||           gS t          | t                    rrg S  || j                  S t/          |            d S )Nr\   r6   c                 .    t          |           S )N)r   r   r   rA   r   )argument)r\   r   r   r   r   rA   s    r>   sub_argumentzargument.<locals>.sub_argumentz  s.      31
 
 
 	
r?   memory_formatr[   rF   )nctyper<   defaultr   optionsc              3   ,   K   | ]}|j         d k    V  dS )r   N)r   )ri   xs     r>   rs   zargument.<locals>.<genexpr>  s)      88119&888888r?   r   r   r   )r   r&   r0   r/   r   r   rI   r<   r    possibly_redundant_memory_formatr   r   rO   r_   dtypelayoutdevice
pin_memoryallr   r   r!   r   r2   )	r\   r   r   r   rA   r   r   rC   r   s	    `````   r>   r   r   q  sC   

1<?@

	g

 

 

 

 

 

 

 

 

 

 !X 06_$$);$"CEEFE!%6,,,1F"19afVDDDG$QeFCCCV	  
 	
 
A-	.	.  	QW%%,qx((),qx(() ,q|,,- G$777778888888 &F**%%i>1J1JKK"#	    
A|	$	$  	,I<
+++Qr?   rx   c                
    g }r5|                      j                   |                      j                   n4|                      j                   |                      j                    fd|D             S )Nc           
      ~    g | ]9}t          |j        d u          D ]}r|                                n|:S )N)r   rA   r   r   r   )r   tensor_options
no_default)ri   r\   rZ   rx   r   r   r   rA   s      r>   rj   zarguments.<locals>.<listcomp>  sz       (7tC 3
 
 
   #)   r?   )extendnon_outry   )rx   r   rA   r   r   argss   ````` r>   rx   rx     s     IKD 'I%&&&IM""""IM"""I%&&&          r?   N)Ctypingr   r   r   r   r   torchgenr   torchgen.api.typesr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   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/   r0   r1   torchgen.utilsr2   rG   r;   r<   rM   rX   r_   rb   rd   rl   r   r   r   r   rx    r?   r>   <module>r      s   7 7 7 7 7 7 7 7 7 7 7 7 7 7                                                                   >                            ( ' ' ' ' '. -2!	  
 &* 	
 	   2 )."= "= "="= "= "&	"=
 "= j"= "= "= "=\ ).S= S= S=S= S= 	S=
 "&S= S= S= S= S= S=n BG U U UX U U$ U: U U U U ?D #: #: #:t #: #:t #: #: #: #: #:N .3 F F F6 Fd Fu F F F F
 :? G G GXf% G$ G5 G G G G =E   N c RU    B !
3  '(C '(D '(T '(c '( '( '( '(f E E EX-|;<E SE 	E
 E E E 
']E E E EX 	    	
  S 
']     r?   