
    '}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+y)"    )	dataclass)ListOptionalN)cpp
structured)ArgNameBaseCppType	BaseCTypeBindingConstRefCTypeCType
NamedCTypescalarT)ArgumentBaseTyBaseTypeDispatchKeyFunctionSchemaNativeFunctionsGroupTypefuncdispatch_keyreturnc                 h    | j                         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     Q/var/www/html/test/engine/venv/lib/python3.12/site-packages/torchgen/api/ufunc.pyschema_kernel_namer       s4    >>VVVDIINN#1\N33    gc                 B    t        | j                  j                  |      S N)r    outr   )r"   r   s     r   kernel_namer&   !   s    aeejj,77r!   tbindsc                   t        j                  | |d      }||S | t        t        j                        k(  r"t        |t        t        t                          S | t        t        j                        k(  ry 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   *   ss    1E%8A}HV]]##%y/A!BCC	
hv}}%	%1$q';<<r!   scalar_tc                 T    | t         j                  k(  rt         j                  S t        r$   )	api_typesr4   opmath_tNotImplementedErrorr4   s    r   opmath_typer:   8   s"    9%%%!!!
r!   c                P   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%8A}HV]]##%;x+@!ABB	
hv}}%	%%;x+@!ABB1$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   s>     	HV]]##%8!4551$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   `   ss    1E%8A}HV]]##%++	
hv}}%	%%++1$q';<<r!   ac                 t    t        t        | j                  | j                  |      | j                  d |       S N)r(   r4   nctyper   defaultargument)r   r<   typer   rB   r4   s     r   ufunctor_ctor_argumentrK   m   s0    !!&&JVV	 r!   c                 t    t        t        | j                  | j                  |      | j                  d |       S rD   )r   r>   rI   r   rJ   s     r   ufunctor_apply_argumentrM   v   s0    "166(KVV	 r!   c                 t    t        t        | j                  | j                  |      | j                  d |       S )N)r(   r?   rE   )r   rA   rI   r   )rB   r?   s     r   ufunc_argumentrO      s0    !&&)DVV	 r!   T)frozenc                   .    e Zd ZU ee   ed<   ee   ed<   y)UfunctorBindingsctorapplyN)__name__
__module____qualname__r   r   __annotations__ r!   r   rR   rR      s    
w-=r!   rR   scalar_tensor_idxc                   g }g }| j                   j                  j                  j                  D ]  }|j                  j                         rH|dk(  r|j                  t        ||             d }A||dz  }|j                  t        ||             e|j                  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5 F66  " A%21xHI$(!$0%*%4QJKKK.q8DEF $$$U33r!   c                    | j                   j                  j                  j                  D cg c]  }t	        ||       c}S c c}w )N)r?   )r]   r   r^   r_   rO   )r"   r?   rB   s      r   ufunc_argumentsrd      sA     "",,99 	qI.  s   Ac                     | j                   j                  j                  j                  D cg c]8  }|j                  j                         st        j                  |      D ]  }| : c}}S c c}}w r$   )r%   r   r^   r_   rI   r`   r   rH   )r"   rB   r2   s      r   stub_argumentsrf      sh    
 %%22vv$$&$$Q'	  	
	  s   =A/),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   rd   rf   rY   r!   r   <module>rp      s   ! ! & & (	 	 	  4^ 4; 43 4
8' 8{ 8s 8= = =Xj5I =+ + 
=$ 
=' 
=[ 
=Z 
="===*5==
=$ 
=' 
=e 
=
 
=h + ' x ; 7 h 5 W  $  ,443;C=4LW44<+ 5 T'] * tG} r!   