o
    *Î®c6  ã                   @   s4   d Z g d¢ZG dd„ dƒZeƒ ZG dd„ deƒZdS )z The core's core. )EÚZeroÚOneÚHalfÚInfinityÚNaNÚNegativeOneÚNegativeInfinityÚIntegerÚRationalÚFloatÚExp1ÚPiÚImaginaryUnitÚSymbolÚWildÚ	TemporaryÚPowÚMulÚAddÚ
DerivativeÚIntegralÚAbsÚSignÚSqrtÚFloorÚCeilingÚReÚImÚArgÚ	ConjugateÚExpÚLogÚSinÚCosÚTanÚCotÚASinÚACosÚATanÚACotÚSinhÚCoshÚTanhÚCothÚASinhÚACoshÚATanhÚACothÚRisingFactorialÚFallingFactorialÚ	factorialÚbinomialÚGammaÚ
LowerGammaÚ
UpperGammaÚ	PolyGammaÚErfÚ	ChebyshevÚ
Chebyshev2ÚFunctionÚWildFunctionÚLambdaÚOrderÚEqualityÚ
UnequalityÚStrictGreaterThanÚStrictLessThanÚGreaterThanÚLessThanc                   @   s$   e Zd ZdZdZdd„ Zdd„ ZdS )ÚRegistrya  
    Base class for registry objects.

    Registries map a name to an object using attribute notation. Registry
    classes behave singletonically: all their instances share the same state,
    which is stored in the class object.

    All subclasses should set `__slots__ = ()`.
    © c                 C   s   t | j||ƒ d S ©N)ÚsetattrÚ	__class__)ÚselfÚnameÚobjrG   rG   ú6/tmp/pip-target-vg8gfxp4/lib/python/sympy/core/core.pyÚ__setattr__9   s   zRegistry.__setattr__c                 C   s   t | j|ƒ d S rH   )ÚdelattrrJ   )rK   rL   rG   rG   rN   Ú__delattr__<   s   zRegistry.__delattr__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__rO   rQ   rG   rG   rG   rN   rF   -   s
    	rF   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
Ú	BasicMetac                 O   s   t  | ¡ tdd„ ƒ| _d S )Nc                 S   s   dS )NTrG   )rK   rG   rG   rN   Ú<lambda>G   s    z$BasicMeta.__init__.<locals>.<lambda>)Úall_classesÚaddÚpropertyÚ	__sympy__)ÚclsÚargsÚkwsrG   rG   rN   Ú__init__E   s   
zBasicMeta.__init__c                 C   s®   t |tƒsdS | j}|j}||krdS ttƒd }zt |¡}W n ty+   |}Y nw zt |¡}W n ty>   |}Y nw ||krO||krO||k||k  S ||k||k  S )Néÿÿÿÿé    é   )Ú
isinstancerW   rR   ÚlenÚordering_of_classesÚindexÚ
ValueError)r]   ÚotherÚn1Ún2ÚUNKNOWNÚi1Úi2rG   rG   rN   Ú__cmp__I   s(   
ÿÿzBasicMeta.__cmp__c                 C   ó   |   |¡dkr	dS dS )Nra   TF©ro   ©r]   ri   rG   rG   rN   Ú__lt__`   ó   zBasicMeta.__lt__c                 C   rp   )Nrc   TFrq   rr   rG   rG   rN   Ú__gt__e   rt   zBasicMeta.__gt__N)rR   rS   rT   r`   ro   rs   ru   rG   rG   rG   rN   rW   C   s
    rW   N)rU   rf   rF   ÚsetrY   ÚtyperW   rG   rG   rG   rN   Ú<module>   s
    '