
    S j                    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                z    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AssertionErrorname)funcdispatch_keys     c/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/torchgen/api/ufunc.pyschema_kernel_namer      s7    >>VWW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   Tensorr   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   9   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:   D   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<   U   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?   a   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   n   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   w   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  [        S5      e[        X4S9$ )Nr   r7      z5scalar_tensor_idx should be None at end of processing)rS   rT   )
functionalr   	argumentsflat_non_outrF   is_tensor_likeappendrI   rK   r   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 $TUU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    