
    Vhv                     d    d dl  d dlZd dlmZ dgZdededefdZdededefd	Z G d
 d      Z	y)    )*N)ConstantIntNodeNestedIntNodelhsrhsreturnc                     t        | t              xrF t        |t              xr4 | j                  |j                  k(  xr | j                  |j                  k(  S N)
isinstancer   t_idcoeffr   r   s     Q/home/dcms/DCMS/lib/python3.12/site-packages/torch/nested/_internal/nested_int.py_eqr      sL    3& 	#sM*	#HH 	# II"	    c                    t        |t              rMt        | t              r=| j                  |j                  k(  r| j                  |j                  k\  S t	        d      t        | t              r/|j                         r|j                         dk  ryt	        d      t        |t              r/| j                         r| j                         dk  ryt	        d      t	        d      )Nzge: relation is indeterminate   TFzinputs unsupported)r   r   r   r   
ValueErroris_constantconstant_intr   s     r   _ger      s    #}%*S-*H88sxx99		))899	C	'??!1!1!3q!8899	C	'??!1!1!3a!7899-..r   c                   R   e Zd ZdedefdZdefdZdee   fdZdefdZ	defdZ
defd	Zdefd
ZddZdefdZdefdZdefdZdefdZdefdZdedd fdZdedefdZdedefdZdedefdZdedefdZdedefdZdedefdZdefdZdefdZdefdZdedefdZy) r   r   r   c                      || _         || _        y r
   )r   r   )selfr   r   s      r   __init__zNestedIntNode.__init__&   s    	
r   r   c                     | j                   S r
   )r   r   s    r   nested_int_coeffzNestedIntNode.nested_int_coeff*   s    zzr   c                      y r
    r   s    r   maybe_as_intzNestedIntNode.maybe_as_int-       r   c                      yNTr    r   s    r   is_intzNestedIntNode.is_int0   r"   r   c                      yNFr    r   s    r   is_floatzNestedIntNode.is_float3       r   c                      yr'   r    r   s    r   is_boolzNestedIntNode.is_bool6   r)   r   c                      yr$   r    r   s    r   is_nested_intzNestedIntNode.is_nested_int9   r"   r   c                     | S r
   r    r   s    r   clonezNestedIntNode.clone<   s    r   c                 t    | j                   dk(  rd| j                   S | j                    d| j                   S )N   jz*j)r   r   r   s    r   _strzNestedIntNode._str?   s6    ::?tyyk?"**R		{++r   c                 "    | j                         S r
   r3   r   s    r   strzNestedIntNode.strD       yy{r   c                 "    | j                         S r
   r5   r   s    r   __str__zNestedIntNode.__str__G   r7   r   c                 "    | j                         S r
   r5   r   s    r   __repr__zNestedIntNode.__repr__J   r7   r   c                 "    | j                         S r
   r5   r   s    r   _graph_reprzNestedIntNode._graph_reprM   r7   r   otherc                     |j                         r|j                         }nt        dt        |             t	        | j
                  | j                  |z        S )Nzunsupported: )r   r   r   typer   r   r   r   r>   s     r   mulzNestedIntNode.mulP   sL    &&(E}T%[M:;;TYY

U(:;;r   c                 T    t         j                  j                  t        | |            S r
   torch_C_get_constant_bool_symnoder   rA   s     r   eqzNestedIntNode.eqW       xx223tU3CDDr   c                 V    t         j                  j                  t        | |             S r
   rD   rA   s     r   nezNestedIntNode.neZ   !    xx22s47G3GHHr   c                 V    t         j                  j                  t        ||              S r
   rE   rF   rG   r   rA   s     r   gtzNestedIntNode.gt]   s!    xx22s5$7G3GHHr   c                 V    t         j                  j                  t        | |             S r
   rN   rA   s     r   ltzNestedIntNode.lt`   rL   r   c                 T    t         j                  j                  t        ||             S r
   rN   rA   s     r   lezNestedIntNode.lec   s    xx223ud3CDDr   c                 T    t         j                  j                  t        | |            S r
   rN   rA   s     r   gezNestedIntNode.gef   rI   r   c                      yr'   r    r   s    r   is_symboliczNestedIntNode.is_symbolici   r)   r   c                     | j                   S r
   )r   r   s    r   
nested_intzNestedIntNode.nested_intl   s    yyr   c                      yr'   r    r   s    r   r   zNestedIntNode.is_constanto   r)   r   numc                 >    t        |      t        u sJ t        |      S r
   )r@   intr   )r   r[   s     r   wrap_intzNestedIntNode.wrap_intr   s    CyCs##r   N)r   r   ) __name__
__module____qualname__r]   r   r   Optionalr!   boolr%   r(   r+   r-   r/   Anyr3   r6   r9   r;   r=   rB   rH   rK   rO   rQ   rS   rU   rW   rY   r   r   r^   r    r   r   r   r   %   sp   S  # hsm  $  t ,c ,
S  # S < < <E E EI I II I II I IE E EE E ET C T $C $O $r   )
typingrE   'torch.fx.experimental._constant_symnoder   __all__rd   rc   r   r   r   r    r   r   <module>rh      sX      C 
S s t /S /s /t /"O$ O$r   