U
    Mh                     @   sj   d dl Z d dlmZ dgZG dd de jZee jedd Zeee jdd Zeeedd ZdS )	    N)dispatchSingletonIntc                       s   e Zd ZdZdd fdd
Zdd fdd
Zd	d
 Zedd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Z  ZS )r   i Ncoeffc                   s   t  j| f||}|S N)super__new__)clsr   argskwargsinstance	__class__ R/var/www/html/venv/lib/python3.8/site-packages/torch/utils/_sympy/singleton_int.pyr      s    zSingletonInt.__new__   c                   s   || _ || _t   d S r   )_val_coeffr   __init__)selfvalr   r   r   r   r      s    zSingletonInt.__init__c                 C   s2   t |tr(|j| jkr(| j|jkr(tjS tjS d S r   )
isinstancer   r   r   sympytruefalser   otherr   r   r   _eval_Eq   s    

zSingletonInt._eval_Eqc                 C   s   t  S r   )set)r   r   r   r   free_symbols%   s    zSingletonInt.free_symbolsc                 C   s&   t |trtdt| j| j| dS Nz9SingletonInt cannot be multiplied by another SingletonIntr   r   r   
ValueErrorr   r   r   r   r   r   __mul__)   s
    
zSingletonInt.__mul__c                 C   s&   t |trtdt| j| j| dS r    r!   r   r   r   r   __rmul__0   s
    
zSingletonInt.__rmul__c                 C   s   t dd S NZNYINotImplementedErrorr   r   r   r   __add__9   s    zSingletonInt.__add__c                 C   s   t dd S r%   r&   r   r   r   r   __sub__<   s    zSingletonInt.__sub__c                 C   s   t dd S r%   r&   r   r   r   r   __truediv__?   s    zSingletonInt.__truediv__c                 C   s   t dd S r%   r&   r   r   r   r   __floordiv__B   s    zSingletonInt.__floordiv__c                 C   s   t dd S r%   r&   r   r   r   r   __mod__E   s    zSingletonInt.__mod__)__name__
__module____qualname__Z_op_priorityr   r   r   propertyr   r#   r$   r(   r)   r*   r+   r,   __classcell__r   r   r   r   r      s   
	c                 C   s   | dk rt jS tdd S N   0Symbolic SingletonInt: Relation is indeterminate)r   r   r"   abr   r   r   _eval_is_geJ   s    r8   c                 C   s   |dkrt jS tdd S r2   )r   r   r"   r5   r   r   r   r8   Q   s    c                 C   s0   | j |j kr$| j|jkrtjS tjS tdd S )Nr4   )r   r   r   r   r   r"   r5   r   r   r   r8   X   s
    )r   Zsympy.multipledispatchr   __all__Z
AtomicExprr   Integerr8   r   r   r   r   <module>   s   B



