
    sg                         d dl Z d dlmZ dgZ G d de j                        Z ee j                  e      d        Z eee j                        d        Z eee      d        Zy)    N)dispatchSingletonIntc                   x     e Zd ZdZdd fd
Zdd fd
Zd Zed        Zd	 Z	d
 Z
d Zd Zd Zd Zd Z xZS )r   i Ncoeffc                .    t        |   | g|i |}|S N)super__new__)clsr   argskwargsinstance	__class__s        S/var/www/html/venv/lib/python3.12/site-packages/torch/utils/_sympy/singleton_int.pyr   zSingletonInt.__new__   s     7?3888       c                >    || _         || _        t        |           y r	   )_val_coeffr
   __init__)selfvalr   r   s      r   r   zSingletonInt.__init__   s    	r   c                     t        |t              rB|j                  | j                  k(  r)| j                  |j                  k(  rt        j
                  S t        j                  S r	   )
isinstancer   r   r   sympytruefalser   others     r   _eval_EqzSingletonInt._eval_Eq   s@    ul+

dii'u||+::;;r   c                     t               S r	   )set)r   s    r   free_symbolszSingletonInt.free_symbols&   s	    ur   c                     t        |t              rt        d      t        | j                  | j                  |z        S Nz9SingletonInt cannot be multiplied by another SingletonIntr   r   r   
ValueErrorr   r   r   s     r   __mul__zSingletonInt.__mul__*   8    e\*K  DIIT[[5-@AAr   c                     t        |t              rt        d      t        | j                  | j                  |z        S r&   r'   r   s     r   __rmul__zSingletonInt.__rmul__1   r*   r   c                     t        d      NNYINotImplementedErrorr   s     r   __add__zSingletonInt.__add__:       !%((r   c                     t        d      r.   r0   r   s     r   __sub__zSingletonInt.__sub__=   r3   r   c                     t        d      r.   r0   r   s     r   __truediv__zSingletonInt.__truediv__@   r3   r   c                     t        d      r.   r0   r   s     r   __floordiv__zSingletonInt.__floordiv__C   r3   r   c                     t        d      r.   r0   r   s     r   __mod__zSingletonInt.__mod__F   r3   r   )__name__
__module____qualname___op_priorityr   r   r!   propertyr$   r)   r,   r2   r5   r7   r9   r;   __classcell__)r   s   @r   r   r   	   sZ     L"&  &'   BB)))))r   c                 B    | dk  rt         j                  S t        d      N   0Symbolic SingletonInt: Relation is indeterminate)r   r   r(   abs     r   _eval_is_gerI   K   s    1u{{
G
HHr   c                 B    |dk  rt         j                  S t        d      rC   )r   r   r(   rF   s     r   rI   rI   R   s    Avzz
G
HHr   c                     | j                   |j                   k(  r9| j                  |j                  k\  rt        j                  S t        j                  S t        d      )NrE   )r   r   r   r   r   r(   rF   s     r   rI   rI   Y   sB    vv88qxx::;;
G
HHr   )r   sympy.multipledispatchr   __all__
AtomicExprr   IntegerrI    r   r   <module>rQ      s     + 
>)5## >)D 
%--&I 'I 
,&I 'I 
,%I &Ir   