o
    wZhv                     @   s`   d dl T d dlZd dlmZ dgZdededefdd	Zdededefd
dZG dd dZ	dS )    )*N)ConstantIntNodeNestedIntNodelhsrhsreturnc                 C   s,   t | tot |to| j|jko| j|jkS N)
isinstancer   t_idcoeffr   r    r   P/var/www/auris/lib/python3.10/site-packages/torch/nested/_internal/nested_int.py_eq   s   


r   c                 C   s   t |trt | tr| j|jkr| j|jkS tdt | tr/| r+| dkr+dS tdt |trD|  r@|  dk r@dS tdtd)Nzge: relation is indeterminate   TFzinputs unsupported)r	   r   r
   r   
ValueErroris_constantconstant_intr   r   r   r   _ge   s   

r   c                   @   s  e Zd ZdedefddZdefddZdee fdd	Zdefd
dZ	defddZ
defddZdefddZd7ddZdefddZdefddZdefddZdefddZdefddZdedd fdd Zdedefd!d"Zdedefd#d$Zdedefd%d&Zdedefd'd(Zdedefd)d*Zdedefd+d,Zdefd-d.Zdefd/d0Zdefd1d2Zd3edefd4d5Zd6S )8r   r
   r   c                 C   s   || _ || _d S r   )r
   r   )selfr
   r   r   r   r   __init__&   s   
zNestedIntNode.__init__r   c                 C      | j S r   )r   r   r   r   r   nested_int_coeff*      zNestedIntNode.nested_int_coeffc                 C   s   d S r   r   r   r   r   r   maybe_as_int-      zNestedIntNode.maybe_as_intc                 C      dS NTr   r   r   r   r   is_int0   r   zNestedIntNode.is_intc                 C   r   NFr   r   r   r   r   is_float3   r   zNestedIntNode.is_floatc                 C   r   r    r   r   r   r   r   is_bool6   r   zNestedIntNode.is_boolc                 C   r   r   r   r   r   r   r   is_nested_int9   r   zNestedIntNode.is_nested_intc                 C   s   | S r   r   r   r   r   r   clone<   r   zNestedIntNode.clonec                 C   s(   | j dkrd| j S | j  d| j S )N   jz*j)r   r
   r   r   r   r   _str?   s   
zNestedIntNode._strc                 C      |   S r   r'   r   r   r   r   strD      zNestedIntNode.strc                 C   r(   r   r)   r   r   r   r   __str__G   r+   zNestedIntNode.__str__c                 C   r(   r   r)   r   r   r   r   __repr__J   r+   zNestedIntNode.__repr__c                 C   r(   r   r)   r   r   r   r   _graph_reprM   r+   zNestedIntNode._graph_reprotherc                 C   s6   |  r	| }n	tdt| t| j| j| S )Nzunsupported: )r   r   r   typer   r
   r   r   r/   r   r   r   mulP   s   
zNestedIntNode.mulc                 C      t jt| |S r   torch_C_get_constant_bool_symnoder   r1   r   r   r   eqW      zNestedIntNode.eqc                 C      t jt| | S r   r4   r1   r   r   r   neZ      zNestedIntNode.nec                 C   s   t jt||  S r   r5   r6   r7   r   r1   r   r   r   gt]   r<   zNestedIntNode.gtc                 C   r:   r   r=   r1   r   r   r   lt`   r<   zNestedIntNode.ltc                 C   s   t jt|| S r   r=   r1   r   r   r   lec   r9   zNestedIntNode.lec                 C   r3   r   r=   r1   r   r   r   gef   r9   zNestedIntNode.gec                 C   r   r    r   r   r   r   r   is_symbolici   r   zNestedIntNode.is_symbolicc                 C   r   r   )r
   r   r   r   r   
nested_intl   r   zNestedIntNode.nested_intc                 C   r   r    r   r   r   r   r   r   o   r   zNestedIntNode.is_constantnumc                 C   s   t |tu sJ t|S r   )r0   intr   )r   rD   r   r   r   wrap_intr   s   zNestedIntNode.wrap_intN)r   r   ) __name__
__module____qualname__rE   r   r   Optionalr   boolr   r!   r"   r#   r$   Anyr'   r*   r,   r-   r.   r2   r8   r;   r>   r?   r@   rA   rB   rC   r   r   rF   r   r   r   r   r   %   s2    
)
typingr5   Z'torch.fx.experimental._constant_symnoder   __all__rL   rK   r   r   r   r   r   r   r   <module>   s    	