
    %h*                     
   d dl mZ d dlmZmZ d dlmc mZ d dl	m
Z
mZ d dl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 deded	efd
Zdeded	efdZdeded	ee         fdZded	efdZ dededed	efdZ!dededed	efdZ"dededed	efdZ#deded	efdZ$deded	efdZ%deded	efdZ& ed           G d d                      Z'dedee(         ded	e'fdZ)deded	ee         fd Z*ded	ee         fd!Z+dS )"    )	dataclass)ListOptionalN)cpp
structured)ArgNameBaseCppType	BaseCTypeBindingConstRefCTypeCType
NamedCTypescalarT)ArgumentBaseTyBaseTypeDispatchKeyFunctionSchemaNativeFunctionsGroupTypefuncdispatch_keyreturnc                 b    |                                  s
J d            d| j        j         d| S )Nz7ufunc.kernel_name should only be invoked on out schemasufunc__)	is_out_fnname)r   r   s     R/var/www/html/auto_sub_bot/venv/lib/python3.11/site-packages/torchgen/api/ufunc.pyschema_kernel_namer       s;    >>VVVVV3DIN33\333    gc                 6    t          | j        j        |          S N)r    outr   )r"   r   s     r   kernel_namer&   !   s    aej,777r!   tbindsc                L   t          j        | |d          }||S | t          t          j                  k    r/t          |t          t          t                                        S | t          t          j	                  k    rd S t          dt          |                      NF)r(   symintunrecognized type )r   valuetype_typer   r   Scalarr   r   r
   r   TensorAssertionErrorrepr)r'   r(   rs      r   dispatchstub_typer3   *   s    1E%888A}HV]####%y/A/A!B!BCCC	
hv}%%	%	%t;$q'';;<<<r!   scalar_tc                 H    | t           j        k    rt           j        S t          r$   )	api_typesr4   opmath_tNotImplementedErrorr4   s    r   opmath_typer:   8   s    9%%%!!
r!   c                   t          j        | |d          }||S | t          t          j                  k    r*t          |t          t          |                              S | t          t          j                  k    r*t          |t          t          |                              S t          dt          |                      r*   )r   r-   r   r   r.   r   r
   r:   r/   r0   r1   )r'   r(   r4   r2   s       r   ufunctor_ctor_typer<   C   s    1E%888A}HV]####%;x+@+@!A!ABBB	
hv}%%	%	%%;x+@+@!A!ABBB;$q'';;<<<r!   c                    | t          t          j                  k    rt          |t	          |                    S t          dt          |                      )Nr,   )r   r   r/   r   r
   r0   r1   )r'   r(   r4   s      r   ufunctor_apply_typer>   T   sN     	HV]####%8!4!4555;$q'';;<<<r!   	compute_tc                *   t          j        | |d          }||S | t          t          j                  k    rt          ||          S | t          t          j                  k    rt          ||          S t          dt          |                      r*   )	r   r-   r   r   r.   r   r/   r0   r1   )r'   r(   r?   r2   s       r   
ufunc_typerA   `   s    1E%888A}HV]####%+++	
hv}%%	%	%%+++;$q'';;<<<r!   ac                 f    t          t          | j        | j        |          | j        d |           S N)r(   r4   nctyper   defaultargument)r   r<   typer   rB   r4   s     r   ufunctor_ctor_argumentrK   m   s:    !!&JJJV	   r!   c                 f    t          t          | j        | j        |          | j        d |           S rD   )r   r>   rI   r   rJ   s     r   ufunctor_apply_argumentrM   v   s:    "16(KKKV	   r!   c                 f    t          t          | j        | j        |          | j        d |           S )N)r(   r?   rE   )r   rA   rI   r   )rB   r?   s     r   ufunc_argumentrO      s:    !&)DDDV	   r!   T)frozenc                   <    e Zd ZU ee         ed<   ee         ed<   dS )UfunctorBindingsctorapplyN)__name__
__module____qualname__r   r   __annotations__ r!   r   rR   rR      s2         
w-=r!   rR   scalar_tensor_idxc                   g }g }| j         j        j        j        D ]}|j                                        rY|dk    r'|                    t          ||                     d }H||dz  }|                    t          ||                     t|                    t          ||                     |J t          ||          S )Nr   r9      )rS   rT   )

functionalr   	argumentsflat_non_outrI   is_tensor_likeappendrK   rM   rR   )r"   rZ   r4   rS   rT   rB   s         r   ufunctor_argumentsrb      s     DE\(5 F F6  "" 
	F A%%21xHHHIII$(!!$0%*%4QJJJKKKKKK.q8DDDEEEE$$$U3333r!   c                H    fd| j         j        j        j        D             S )Nc                 2    g | ]}t          |           S ))r?   )rO   ).0rB   r?   s     r   
<listcomp>z#ufunc_arguments.<locals>.<listcomp>   s6        	qI...  r!   )r]   r   r^   r_   )r"   r?   s    `r   ufunc_argumentsrg      s9       ",9   r!   c                 B    d | j         j        j        j        D             S )Nc                 r    g | ]4}|j                                         t          j        |          D ]}|5S rY   )rI   r`   r   rH   )re   rB   r2   s      r   rf   z"stub_arguments.<locals>.<listcomp>   sb       v$$&& $Q''	   	
   r!   )r%   r   r^   r_   )r"   s    r   stub_argumentsrj      s-     %2   r!   ),dataclassesr   typingr   r   torchgen.api.typesapitypesr6   torchgen.apir   r   r   r	   r
   r   r   r   r   r   torchgen.modelr   r   r   r   r   r   r   strr    r&   r3   r:   r<   r>   rA   rK   rM   rO   rR   intrb   rg   rj   rY   r!   r   <module>rt      s   ! ! ! ! ! ! ! ! ! ! ! ! ! ! & & & & & & & & & ( ( ( ( ( ( ( (	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 4^ 4; 43 4 4 4 4
8' 8{ 8s 8 8 8 8= = =Xj5I = = = =+ +    
=$ 
=' 
=[ 
=Z 
= 
= 
= 
="===*5== = = =
=$ 
=' 
=e 
=
 
= 
= 
= 
=h + '    x ; 7    h 5 W     $       ,443;C=4LW44 4 4 4<+ 5 T']    * tG}      r!   