
    JTh%                    R   S SK Jr  S SKJr  S SKJs  Jr  S SKJ	r	J
r
  S SKJrJrJrJrJrJrJrJr  S SKJrJrJrJrJrJrJr  SS jrSS jrSS	 jrSS
 jrSS jr        SS jr SS jr!SS jr"SS jr#SS jr$\" SS9 " S S5      5       r%        S S jr&S!S jr'S"S jr(g)#    )annotations)	dataclassN)cpp
structured)ArgNameBaseCppType	BaseCTypeBindingConstRefCTypeCType
NamedCTypescalarT)ArgumentBaseTyBaseTypeDispatchKeyFunctionSchemaNativeFunctionsGroupTypec                r    U R                  5       (       d   S5       eSU R                  R                   SU 3$ )Nz7ufunc.kernel_name should only be invoked on out schemasufunc__)	is_out_fnname)funcdispatch_keys     J/var/www/auris/envauris/lib/python3.13/site-packages/torchgen/api/ufunc.pyschema_kernel_namer      s7    >>VVVDIINN#1\N33    c                B    [        U R                  R                  U5      $ N)r   outr   )gr   s     r   kernel_namer$   !   s    aeejj,77r   c                  [         R                  " XSS9nUb  U$ U [        [        R                  5      :X  a"  [        U[        [        [        5      5      5      $ U [        [        R                  5      :X  a  g [        S[        U 5       35      eNF)bindssymintunrecognized type )r   valuetype_typer   r   Scalarr   r   r	   r   TensorAssertionErrorrepr)tr'   rs      r   dispatchstub_typer1   *   sq    1%8A}HV]]##%y/A!BCC	
hv}}%	%1$q';<<r   c                V    U [         R                  :X  a  [         R                  $ [        er!   )	api_typesscalar_topmath_tNotImplementedErrorr4   s    r   opmath_typer8   8   s"    9%%%!!!
r   c               P   [         R                  " XSS9nUb  U$ U [        [        R                  5      :X  a  [        U[        [        U5      5      5      $ U [        [        R                  5      :X  a  [        U[        [        U5      5      5      $ [        S[        U 5       35      er&   )r   r*   r   r   r+   r   r	   r8   r,   r-   r.   )r/   r'   r4   r0   s       r   ufunctor_ctor_typer:   C   s    1%8A}HV]]##%;x+@!ABB	
hv}}%	%%;x+@!ABB1$q';<<r   c                   U [        [        R                  5      :X  a  [        U[	        U5      5      $ [        S[        U 5       35      e)Nr)   )r   r   r,   r   r	   r-   r.   )r/   r'   r4   s      r   ufunctor_apply_typer<   T   s>     	HV]]##%8!4551$q';<<r   c                  [         R                  " XSS9nUb  U$ U [        [        R                  5      :X  a  [        X5      $ U [        [        R                  5      :X  a  [        X5      $ [        S[        U 5       35      er&   )	r   r*   r   r   r+   r   r,   r-   r.   )r/   r'   	compute_tr0   s       r   
ufunc_typer?   `   sm    1%8A}HV]]##%++	
hv}}%	%%++1$q';<<r   c                h    [        [        U R                  U R                  US9U R                  S U S9$ N)r'   r4   nctyper   defaultargument)r
   r:   typer   ar4   s     r   ufunctor_ctor_argumentrI   m   s0    !!&&JVV	 r   c                h    [        [        U R                  U R                  US9U R                  S U S9$ rA   )r
   r<   rF   r   rG   s     r   ufunctor_apply_argumentrK   v   s0    "166(KVV	 r   c                h    [        [        U R                  U R                  US9U R                  S U S9$ )N)r'   r>   rB   )r
   r?   rF   r   )rH   r>   s     r   ufunc_argumentrM      s0    !&&)DVV	 r   T)frozenc                  *    \ rS rSr% S\S'   S\S'   Srg)UfunctorBindings   list[Binding]ctorapply N)__name__
__module____qualname____firstlineno____annotations____static_attributes__rU   r   r   rP   rP      s    
r   rP   c               ~   / n/ nU R                   R                  R                  R                   H~  nUR                  R                  5       (       aD  US:X  a  UR                  [        XRS95        S nMD  Ub  US-  nUR                  [        XRS95        Mf  UR                  [        XRS95        M     Ub   e[        X4S9$ )Nr   r7      )rS   rT   )

functionalr   	argumentsflat_non_outrF   is_tensor_likeappendrI   rK   rP   )r#   scalar_tensor_idxr4   rS   rT   rH   s         r   ufunctor_argumentsrd      s     DE\\((5566  "" A%21HI$(!$0%*%4QJKKK.qDE 6 $$$33r   c                   U R                   R                  R                  R                   Vs/ s H  n[	        X!S9PM     sn$ s  snf )N)r>   )r^   r   r_   r`   rM   )r#   r>   rH   s      r   ufunc_argumentsrf      sD     "",,999A 	q.9  s   Ac                   U R                   R                  R                  R                   VVs/ s HD  nUR                  R                  5       (       a  M$  [        R                  " U5        H  nUPM     MF     snn$ s  snnf r!   )r"   r   r_   r`   rF   ra   r   rE   )r#   rH   r0   s      r   stub_argumentsrh      sn    
 %%222Avv$$& 	
 $$Q'A 	
 ( 	
2  s   #A=$A=)r   r   r   r   returnstr)r#   r   r   r   ri   rj   )r/   r   r'   r   ri   zNamedCType | None)r4   r   ri   r   )r/   r   r'   r   r4   r   ri   r   )r/   r   r'   r   r>   r   ri   r   )rH   r   r4   r   ri   r
   )rH   r   r>   r   ri   r
   )r#   r   rc   z
int | Noner4   r   ri   rP   )r#   r   r>   r   ri   rR   )r#   r   ri   rR   ))
__future__r   dataclassesr   torchgen.api.typesapitypesr3   torchgen.apir   r   r   r   r	   r
   r   r   r   r   torchgen.modelr   r   r   r   r   r   r   r   r$   r1   r8   r:   r<   r?   rI   rK   rM   rP   rd   rf   rh   rU   r   r   <module>rr      s    " ! & & (	 	 	  4
8=
="===*5==
= $  ,443=4IT44<r   