
    Χg%                    2   d dl mZ d dl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 d0dZd1dZd2dZd3dZd4dZd4dZ d5dZ!d6d#Z"d6d$Z#d7d%Z$ ed&'           G d( d)                      Z%d8d,Z&d9d.Z'd:d/Z(dS );    )annotations)	dataclassN)cpp
structured)ArgNameBaseCppType	BaseCTypeBindingConstRefCTypeCType
NamedCTypescalarT)ArgumentBaseTyBaseTypeDispatchKeyFunctionSchemaNativeFunctionsGroupTypefuncr   dispatch_keyr   returnstrc                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     N/var/www/html/ai-engine/env/lib/python3.11/site-packages/torchgen/api/ufunc.pyschema_kernel_namer       s;    >>VVVVVV3DIN33\333    gr   c                6    t          | j        j        |          S N)r    outr   )r"   r   s     r   kernel_namer&   !   s    aej,777r!   tr   bindsr   NamedCType | Nonec               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_typer4   *   s    1E%888A}HV]####%y/A/A!B!BCCC	
hv}%%	%	%t;$q'';;<<<r!   scalar_tr   c                H    | t           j        k    rt           j        S t          r$   )	api_typesr5   opmath_tNotImplementedErrorr5   s    r   opmath_typer;   8   s    9%%%!!
r!   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;   r0   r1   r2   )r'   r(   r5   r3   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   r0   r   r	   r1   r2   )r'   r(   r5   s      r   ufunctor_apply_typer?   T   sN     	HV]####%8!4!4555;$q'';;<<<r!   	compute_tr   c               *   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   r0   r1   r2   )r'   r(   r@   r3   s       r   
ufunc_typerB   `   s    1E%888A}HV]####%+++	
hv}%%	%	%%+++;$q'';;<<<r!   ar   r
   c                f    t          t          | j        | j        |          | j        d |           S N)r(   r5   nctyper   defaultargument)r
   r=   typer   rC   r5   s     r   ufunctor_ctor_argumentrL   m   s:    !!&JJJV	   r!   c                f    t          t          | j        | j        |          | j        d |           S rE   )r
   r?   rJ   r   rK   s     r   ufunctor_apply_argumentrN   v   s:    "16(KKKV	   r!   c                f    t          t          | j        | j        |          | j        d |           S )N)r(   r@   rF   )r
   rB   rJ   r   )rC   r@   s     r   ufunc_argumentrP      s:    !&)DDDV	   r!   T)frozenc                  $    e Zd ZU ded<   ded<   dS )UfunctorBindingslist[Binding]ctorapplyN)__name__
__module____qualname____annotations__ r!   r   rS   rS      s*         r!   rS   scalar_tensor_idx
int | Nonec                  g }g }| j         j        j        j        D ]}|j                                        rY|dk    r'|                    t          ||                     d }H||dz  }|                    t          ||                     t|                    t          ||                     |J t          ||          S )Nr   r:      )rU   rV   )

functionalr   	argumentsflat_non_outrJ   is_tensor_likeappendrL   rN   rS   )r"   r\   r5   rU   rV   rC   s         r   ufunctor_argumentsre      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!   rT   c               H    fd| j         j        j        j        D             S )Nc                2    g | ]}t          |           S ))r@   )rP   ).0rC   r@   s     r   
<listcomp>z#ufunc_arguments.<locals>.<listcomp>   s6        	qI...  r!   )r`   r   ra   rb   )r"   r@   s    `r   ufunc_argumentsrj      s9       ",9   r!   c                B    d | j         j        j        j        D             S )Nc                r    g | ]4}|j                                         t          j        |          D ]}|5S r[   )rJ   rc   r   rI   )rh   rC   r3   s      r   ri   z"stub_arguments.<locals>.<listcomp>   sb       v$$&& $Q''	   	
   r!   )r%   r   ra   rb   )r"   s    r   stub_argumentsrm      s-     %2   r!   )r   r   r   r   r   r   )r"   r   r   r   r   r   )r'   r   r(   r   r   r)   )r5   r   r   r   )r'   r   r(   r   r5   r   r   r   )r'   r   r(   r   r@   r   r   r   )rC   r   r5   r   r   r
   )rC   r   r@   r   r   r
   )r"   r   r\   r]   r5   r   r   rS   )r"   r   r@   r   r   rT   )r"   r   r   rT   ))
__future__r   dataclassesr   torchgen.api.typesapitypesr7   torchgen.apir   r   r   r   r	   r
   r   r   r   r   torchgen.modelr   r   r   r   r   r   r   r    r&   r4   r;   r=   r?   rB   rL   rN   rP   rS   re   rj   rm   r[   r!   r   <module>ru      sj   " " " " " " ! ! ! ! ! ! & & & & & & & & & ( ( ( ( ( ( ( (	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 4 4 4 4
8 8 8 8= = = =   
= 
= 
= 
="= = = =
= 
= 
= 
=          $       ,4 4 4 4<        r!   