
    gX                        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Z G 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	 d dlZej                            e           dS # e$ r Y dS w xY w)    N   )	int_typesmpf_hashbitcountfrom_man_expHASH_MODULUSc                     | |f}||v r||         S | |}}|r	|||z  }}|	|dk    r
| |z  } ||z  }t          t                    }| |f|_        |dk    rt          |d                   dk     r|||<   |S )Nr      r   d   )newmpq_mpq_abs)pq_cachekeyxyvs          K/var/www/html/ai-engine/env/lib/python3.11/site-packages/mpmath/rational.pycreate_reducedr      s    
Q$C
f}}c{aqA
 !a%1  Avv	a	aCAdAGAvv#c!f++##sH    c                       e Zd ZdZdgZddZd Zd Zd Zd Z	e	Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZeZd Zd Zd ZeZd Zd Zd ZdS )r   zH
    Exact rational type, currently only intended for internal use.
    r   r   c                     t          |          t          u r|\  }}nt          |d          r
|j        \  }}t	          ||          S )Nr   )typetuplehasattrr   r   )clsr   r   s      r   __new__zmpq.__new__   sK    77eDAqqQ   	7DAqa###r   c                     d| j         z  S )Nz
mpq(%s,%s)r   ss    r   __repr__zmpq.__repr__&   s    ag%%r   c                     d| j         z  S )Nz(%s/%s)r"   r#   s    r   __str__zmpq.__str__)   s    17""r   c                      | j         \  }}||z  S Nr"   )r$   abs      r   __int__zmpq.__int__,   s    w1Avr   c                 6    t          | j        d                   S Nr   )boolr   r#   s    r   __nonzero__zmpq.__nonzero__0   s    AGAJr   c           	         | j         \  }}t          j        dk    r_t          |t          dz
  t                    }|st          j        j        }nt          |          |z  t          z  }|dk     r| }|dk    rd}|S |dk    rt          |          S ||dz
  z  s-t          t          |dt          |          z
                      S t          ||f          S )N      r4   r   r   )r   sysversion_infopowr   	hash_infoinfr   hashr   r   r   )r$   r*   r+   inversehs        r   __hash__zmpq.__hash__5   s    w1v%%!\!^\::G 6M%VVg%51uu1"aBwwBHAvvAww1I @Q(1++ > >???1;;r   c                     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+   s        r   __eq__z
mpq.__eq__H   sX    QC<<7ag%%I7DAqAvvu6Mr   c                     t          |          }|t          u r| j        |j        k    S |t          v r| j        \  }}|dk    rdS ||k    S t          S )Nr   TrA   rC   s        r   __ne__z
mpq.__ne__S   sX    QC<<7ag%%I7DAqAvvt6Mr   c                     t          |          }|t          v r| j        \  }} ||||z            S |t          u r&| j        \  }}|j        \  }} |||z  ||z            S t          S r)   )r   r   r   r   NotImplementedError)r$   rD   oprE   r*   r+   cds           r   _cmpzmpq._cmp^   st    QI7DAq2a1::C<<7DAq7DAq2ac1Q3<<""r   c                 B    |                      |t          j                  S r)   )rN   operatorltr$   rD   s     r   __lt__z
mpq.__lt__i       QVVAx{333r   c                 B    |                      |t          j                  S r)   )rN   rP   lerR   s     r   __le__z
mpq.__le__j   rT   r   c                 B    |                      |t          j                  S r)   )rN   rP   gtrR   s     r   __gt__z
mpq.__gt__k   rT   r   c                 B    |                      |t          j                  S r)   )rN   rP   gerR   s     r   __ge__z
mpq.__ge__l   rT   r   c                 f    | j         \  }}|dk    r| S t          t                    }| |f|_         |S r.   r   r   r   r$   r*   r+   r   s       r   __abs__zmpq.__abs__n   s8    w166HHH"a%r   c                 V    | j         \  }}t          t                    }| |f|_         |S r)   r_   r`   s       r   __neg__zmpq.__neg__v   s*    w1HH"a%r   c                     | S r)    r#   s    r   __pos__zmpq.__pos__|   s    r   c                    t          |          }|t          u r0| j        \  }}|j        \  }}t          ||z  ||z  z   ||z            S |t          v r/| j        \  }}t          t                    }|||z  z   |f|_        |S t          S r)   r   r   r   r   r   r   rB   r$   rD   rE   r*   r+   rL   rM   r   s           r   __add__zmpq.__add__       QC<<7DAq7DAq!!A#ac'1Q3///I7DAqCA!eQhAGHr   c                    t          |          }|t          u r0| j        \  }}|j        \  }}t          ||z  ||z  z
  ||z            S |t          v r/| j        \  }}t          t                    }|||z  z
  |f|_        |S t          S r)   rh   ri   s           r   __sub__zmpq.__sub__   rk   r   c                    t          |          }|t          u r0| j        \  }}|j        \  }}t          ||z  ||z  z
  ||z            S |t          v r/| j        \  }}t          t                    }||z  |z
  |f|_        |S t          S r)   rh   ri   s           r   __rsub__zmpq.__rsub__   s    QC<<7DAq7DAq!!A#ac'1Q3///I7DAqCAc!eQhAGHr   c                     t          |          }|t          u r*| j        \  }}|j        \  }}t          ||z  ||z            S |t          v r| j        \  }}t          ||z  |          S t
          S r)   r   r   r   r   r   rB   r$   rD   rE   r*   r+   rL   rM   s          r   __mul__zmpq.__mul__   t    QC<<7DAq7DAq!!A#qs+++I7DAq!!A#q)))r   c                     t          |          }|t          u r*| j        \  }}|j        \  }}t          ||z  ||z            S |t          v r| j        \  }}t          |||z            S t
          S r)   rq   rr   s          r   __div__zmpq.__div__   st    QC<<7DAq7DAq!!A#qs+++I7DAq!!QqS)))r   c                     t          |          }|t          u r*| j        \  }}|j        \  }}t          ||z  ||z            S |t          v r| j        \  }}t          ||z  |          S t
          S r)   rq   rr   s          r   __rdiv__zmpq.__rdiv__   rt   r   c                     t          |          }|t          v rE| j        \  }}|r2|dk     r||| }}}t          t                    }||z  ||z  f|_        |S t
          t          S r.   )r   r   r   r   r   ZeroDivisionErrorrB   )r$   rD   rE   r*   r+   r   s         r   __pow__zmpq.__pow__   sr    QI7DAq q55QB!qAHHQ$1*##r   N)r   )__name__
__module____qualname____doc__	__slots__r    r%   r'   r,   r0   __bool__r?   rF   rH   rN   rS   rW   rZ   r]   ra   rc   rf   rj   __radd__rm   ro   rs   __rmul__rv   rx   r{   re   r   r   r   r      s         	I$ $ $ $& & &# # #        H  &	 	 		 	 		# 	# 	# 433333333333         H    	 	 	 H	 	 		 	 	    r   r   )r   r   )r   r   )r   r4   r2   )r   r
   )r      )r3   r   )   r4   )r3   r
   )   r
   )r   r
   )rP   r7   libmpr   r   r   r   r   objectr    r   r   r   mpq_1mpq_0mpq_1_2mpq_3_2mpq_1_4mpq_1_16mpq_3_16mpq_5_2mpq_3_4mpq_7_4mpq_5_4numbersRationalregisterImportErrorre   r   r   <module>r      sp    



 L L L L L L L L L L L L L Ln "    "~ ~ ~ ~ ~& ~ ~ ~B 	E

E


#e**
#e**
#e**3v;;3v;;
#e**
#e**
#e**
#e**	NNNc""""" 	 	 	DD	s   +C CC