o
    iX                     @   s   d dl Z d dlZddlmZmZmZmZmZ ej	Z
i fddZG dd deZedZed	Zed
ZedZedZedZedZedZedZedZedZzd dlZeje W dS  eyj   Y dS w )    N   )	int_typesmpf_hashbitcountfrom_man_expHASH_MODULUSc                 C   s   | |f}||v r|| S | |}}|r||| }}|s|dkr(| | } || }t t}| |f|_|dkrAt|d dk rA|||< |S )Nr      r   d   )newmpq_mpq_abs)pq_cachekeyxyv r   ^/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/mpmath/rational.pycreate_reduced   s   

r   c                   @   s   e Zd ZdZdgZd3ddZdd Zdd	 Zd
d Zdd Z	e	Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% ZeZd&d' Zd(d) Zd*d+ ZeZd,d- Zd.d/ Zd0d1 Zd2S )4r   zH
    Exact rational type, currently only intended for internal use.
    r   r   c                 C   s4   t |tu r|\}}n
t|dr|j\}}t||S )Nr   )typetuplehasattrr   r   )clsr   r   r   r   r   __new__   s
   



zmpq.__new__c                 C   
   d| j  S )Nz
mpq(%s,%s)r   sr   r   r   __repr__&      
zmpq.__repr__c                 C   r   )Nz(%s/%s)r   r   r   r   r   __str__)   r"   zmpq.__str__c                 C   s   | j \}}|| S Nr   )r    abr   r   r   __int__,   s   
zmpq.__int__c                 C   s   t | jd S Nr   )boolr   r   r   r   r   __nonzero__0   s   zmpq.__nonzero__c                 C   s   | j \}}tjdkr0t|td t}|stjj}nt|| t }|dk r(| }|dkr.d}|S |dkr8t|S ||d @ sIt	t
|dt| S t||fS )N      r-   r   r   )r   sysversion_infopowr   	hash_infoinfr   hashr   r   r   )r    r%   r&   Zinversehr   r   r   __hash__5   s   


zmpq.__hash__c                 C   sF   t |}|tu r| j|jkS |tv r!| j\}}|dkrdS ||kS tS )Nr   Fr   r   r   r   NotImplementedr    tttyper%   r&   r   r   r   __eq__H      
z
mpq.__eq__c                 C   sF   t |}|tu r| j|jkS |tv r!| j\}}|dkrdS ||kS tS )Nr   Tr8   r:   r   r   r   __ne__S   r>   z
mpq.__ne__c                 C   sZ   t |}|tv r| j\}}|||| S |tu r+| j\}}|j\}}||| || S tS r$   )r   r   r   r   NotImplementedError)r    r;   opr<   r%   r&   cdr   r   r   _cmp^   s   


zmpq._cmpc                 C      |  |tjS r$   )rD   operatorltr    r;   r   r   r   __lt__i       z
mpq.__lt__c                 C   rE   r$   )rD   rF   lerH   r   r   r   __le__j   rJ   z
mpq.__le__c                 C   rE   r$   )rD   rF   gtrH   r   r   r   __gt__k   rJ   z
mpq.__gt__c                 C   rE   r$   )rD   rF   gerH   r   r   r   __ge__l   rJ   z
mpq.__ge__c                 C   s.   | j \}}|dkr| S tt}| |f|_ |S r(   r   r
   r   r    r%   r&   r   r   r   r   __abs__n   s   
zmpq.__abs__c                 C   s"   | j \}}tt}| |f|_ |S r$   rQ   rR   r   r   r   __neg__v   s   
zmpq.__neg__c                 C   s   | S r$   r   r   r   r   r   __pos__|   s   zmpq.__pos__c                 C   sr   t |}|tu r| j\}}|j\}}t|| ||  || S |tv r7| j\}}tt}|||  |f|_|S tS r$   r   r   r   r   r   r
   r9   r    r;   r<   r%   r&   rB   rC   r   r   r   r   __add__      


zmpq.__add__c                 C   sr   t |}|tu r| j\}}|j\}}t|| ||  || S |tv r7| j\}}tt}|||  |f|_|S tS r$   rV   rW   r   r   r   __sub__   rY   zmpq.__sub__c                 C   sr   t |}|tu r| j\}}|j\}}t|| ||  || S |tv r7| j\}}tt}|| | |f|_|S tS r$   rV   rW   r   r   r   __rsub__   rY   zmpq.__rsub__c                 C   sZ   t |}|tu r| j\}}|j\}}t|| || S |tv r+| j\}}t|| |S tS r$   r   r   r   r   r   r9   r    r;   r<   r%   r&   rB   rC   r   r   r   __mul__      


zmpq.__mul__c                 C   sZ   t |}|tu r| j\}}|j\}}t|| || S |tv r+| j\}}t||| S tS r$   r\   r]   r   r   r   __div__   r_   zmpq.__div__c                 C   sZ   t |}|tu r| j\}}|j\}}t|| || S |tv r+| j\}}t|| |S tS r$   r\   r]   r   r   r   __rdiv__   r_   zmpq.__rdiv__c                 C   s^   t |}|tv r-| j\}}|r+|dk r||| }}}tt}|| || f|_|S ttS r(   )r   r   r   r
   r   ZeroDivisionErrorr9   )r    r;   r<   r%   r&   r   r   r   r   __pow__   s   
zmpq.__pow__N)r   )__name__
__module____qualname____doc__	__slots__r   r!   r#   r'   r*   __bool__r7   r=   r?   rD   rI   rL   rN   rP   rS   rT   rU   rX   __radd__rZ   r[   r^   __rmul__r`   ra   rc   r   r   r   r   r      s:    
r   )r   r   )r   r   )r   r-   r+   )r   r   )r      )r,   rl   )   r-   )r,   r   )   r   )rm   r   )rF   r0   Zlibmpr   r   r   r   r   objectr   r
   r   r   Zmpq_1Zmpq_0Zmpq_1_2Zmpq_3_2Zmpq_1_4Zmpq_1_16Zmpq_3_16Zmpq_5_2Zmpq_3_4Zmpq_7_4Zmpq_5_4numbersRationalregisterImportErrorr   r   r   r   <module>   s0     B	