�
c��j�, � �� � d dl mZmZ g d�Z G d� de�� Z G d� de� Zej
e� G d� d e� Zej
e � G d
� de� Z
G d� d
e
� Zej
e� y)� )�ABCMeta�abstractmethod)�Number�Complex�Real�Rational�Integralc � � e Zd Z dZdZy)r � N)�__name__�
__module__�__qualname__� __slots__�__hash__r � � /usr/lib64/python3.12/numbers.pyr r % s � ��
�I� �Hr r )� metaclassc �8 � e Zd Z dZed� � Zd� Zeed� � � Zeed� � � Z ed� � Z
ed� � Zed� � Zed � � Z
d
� Zd� Zed� � Zed
� � Zed� � Zed� � Zed� � Zed� � Zed� � Zed� � Zed� � Zy)r r c � � y �Nr ��selfs r �__complex__zComplex.__complex__F s � �Jr c � � | dk7 S �Nr r r s r �__bool__zComplex.__bool__J s � �7��q�y�r c � � t �r ��NotImplementedErrorr s r �realzComplex.realN � � � � "�!r c � � t �r r r s r �imagzComplex.imagW r! r c � � t �r r �r �others r �__add__zComplex.__add__` � � ��!�!r c � � t �r r r% s r �__radd__zComplex.__radd__e r( r c � � t �r r r s r �__neg__zComplex.__neg__j � � ��!�!r c � � t �r r r s r �__pos__zComplex.__pos__o r- r c � � | | z S r r r% s r �__sub__zComplex.__sub__t s � ���u�f�}�r c � � | |z S r r r% s r �__rsub__zComplex.__rsub__x s � ���u�u�}�r c � � t �r r r% s r �__mul__zComplex.__mul__| r( r c � � t �r r r% s r �__rmul__zComplex.__rmul__� r( r c � � t �r r r% s r �__truediv__zComplex.__truediv__� s � �C�!�!r c � � t �r r r% s r �__rtruediv__zComplex.__rtruediv__� r( r c � � t �r r )r �exponents r �__pow__zComplex.__pow__� s � �R�!�!r c � � t �r r )r �bases r �__rpow__zComplex.__rpow__� r( r c � � t �r r r s r �__abs__zComplex.__abs__� s � �E�!�!r c � � t �r r r s r � conjugatezComplex.conjugate� � � �2�!�!r c � � t �r r r% s r �__eq__zComplex.__eq__� � � ��!�!r N)r r
r r r r r �propertyr r# r' r* r, r/ r1 r3 r5 r7 r9 r; r> rA rC rE rH r r r r r 9 sm � �� �I��K� �K�� ��"� � �"� ��"� � �"� �"� �"� �"� �"� �"� �"� �"� �"��� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"r r c �� � e Zd Z dZed� � Zed� � Zed� � Zed� � Zedd�� Z d� Z
d � Zed
� � Zed� � Z
ed� � Zed
� � Zed� � Zed� � Zd� Zed� � Zed� � Zd� Zy)r r c � � t �r r r s r � __float__zReal.__float__� s � � #� "�!r c � � t �r r r s r � __trunc__zReal.__trunc__� s � � � "�!r c � � t �r r r s r � __floor__zReal.__floor__� rF r c � � t �r r r s r �__ceil__z
Real.__ceil__� s � �/�!�!r Nc � � t �r r )r �ndigitss r � __round__zReal.__round__� s � � �
"�!r c � � | |z | |z fS r r r% s r �
__divmod__zReal.__divmod__� s � � �
��
�t�e�|�,�,r c � � || z || z fS r r r% s r �__rdivmod__zReal.__rdivmod__� s � � �
��
�u�t�|�,�,r c � � t �r r r% s r �__floordiv__zReal.__floordiv__� � � �7�!�!r c � � t �r r r% s r �
__rfloordiv__zReal.__rfloordiv__� r] r c � � t �r r r% s r �__mod__zReal.__mod__� r( r c � � t �r r r% s r �__rmod__z
Real.__rmod__� r( r c � � t �r r r% s r �__lt__zReal.__lt__ s � � H� "�!r c � � t �r r r% s r �__le__zReal.__le__ rI r c �, � t t | � � S r )�complex�floatr s r r zReal.__complex__ s � �6��u�T�{�#�#r c �
� | �S r r r s r r z Real.real s � �4��u�r c � � yr r r s r r# z Real.imag s � �7�r c �
� | �S r r r s r rE zReal.conjugate s � �-��u�r r )r r
r r r rM rO rQ rS rV rX rZ r\ r_ ra rc re rg r rJ r r# rE r r r r r � s$ � �� �I��"� �"� �
"� �
"� �"� �"� �"� �"� �"� �"�-�-� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"�
$� �� �� �� ��r r c �L � e Zd Z dZeed� � � Zeed� � � Zd� Zy)r r c � � t �r r r s r � numeratorzRational.numerator) �
� � "�!r c � � t �r r r s r �denominatorzRational.denominator. rq r c �Z � t | j � t | j � z S r )�intrp rs r s r rM zRational.__float__4 s( � � � �4�>�>�"�S��)9�)9�%:�:�:r N) r r
r r rJ r rp rs rM r r r r r $ sE � �@��I�
��"� � �"� ��"� � �"�;r r c � � e Zd Z dZed� � Zd� Zedd�� Zed� � Zed� � Z ed� � Z
ed � � Zed
� � Zed� � Z
ed� � Zed
� � Zed� � Zed� � Zed� � Zd� Zed� � Zed� � Zy)r r c � � t �r r r s r �__int__zIntegral.__int__H s � ��!�!r c � � t | � S r )ru r s r � __index__zIntegral.__index__M s � �D��4�y�r Nc � � t �r r )r r= �moduluss r r> zIntegral.__pow__Q s � � � "�!r c � � t �r r r% s r �
__lshift__zIntegral.__lshift__\ rI r c � � t �r r r% s r �__rlshift__zIntegral.__rlshift__a rI r c � � t �r r r% s r �
__rshift__zIntegral.__rshift__f rI r c � � t �r r r% s r �__rrshift__zIntegral.__rrshift__k rI r c � � t �r r r% s r �__and__zIntegral.__and__p r( r c � � t �r r r% s r �__rand__zIntegral.__rand__u r( r c � � t �r r r% s r �__xor__zIntegral.__xor__z r( r c � � t �r r r% s r �__rxor__zIntegral.__rxor__ r( r c � � t �r r r% s r �__or__zIntegral.__or__� r( r c � � t �r r r% s r �__ror__zIntegral.__ror__� r( r c � � t �r r r s r �
__invert__zIntegral.__invert__� r- r c �, � t t | � � S r )rj ru r s r rM zIntegral.__float__� s � �-��S��Y��r c �
� | �S r r r s r rp zIntegral.numerator� s � �0��u�r c � � y)N� r r s r rs zIntegral.denominator� s � �/�r r )r r
r r r rx rz r> r~ r� r� r� r� r� r� r� r� r� r� rM rJ rp rs r r r r r ? sB � �� �I��"� �"�� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"� �"�
� �� �� �� �r r N)
�abcr r �__all__r r �registerri r rj r r ru r r r �