Ë
    3^(h;C  ã                   óà  — d dl Z ddlmZ ddlmZ ddlmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m)Z)m+Z+m,Z,m-Z-m.Z.m/Z/ ddl0m1Z1 eefZ2ddl3m4Z4 e5jl                  Z7d„ Z8 G d	„ d
e5«      Z9 G d„ de5«      Z:d„ Z; e;ee%«      \  e9_<        e9_=        e:_<        e:_=         e;ee&«      \  e9_>        e9_?        e:_>        e:_?         e;ee'«      \  e9_@        e9_A        e:_@        e:_A         e;ee(«      \  e9_B        e9_C        e:_B        e:_C         e;e!e)«      \  e9_D        e9_E        e:_D        e:_E        e9j„                  e9_F        e9j†                  e9_G        e:j„                  e:_F        e:j†                  e:_G         G d„ de9«      ZH G d„ de4«      ZI	 d dlJZJeJj–                  j™                  e:«       eJjš                  j™                  e9«       y# eN$ r Y yw xY w)é    Né   )Úlibmp)Ú
basestring),Ú	int_typesÚMPZ_ONEÚprec_to_dpsÚdps_to_precÚrepr_dpsÚround_floorÚround_ceilingÚfzeroÚfinfÚfninfÚfnanÚmpf_leÚmpf_negÚfrom_intÚ
from_floatÚfrom_strÚfrom_rationalÚmpi_midÚ	mpi_deltaÚmpi_strÚmpi_absÚmpi_posÚmpi_negÚmpi_addÚmpi_subÚmpi_mulÚmpi_divÚmpi_pow_intÚmpi_powÚmpi_from_strÚmpci_posÚmpci_negÚmpci_addÚmpci_subÚmpci_mulÚmpci_divÚmpci_powÚmpci_absr*   Úmpci_expÚmpci_logÚComplexResultÚmpf_hashÚmpc_hash)Ú_matrix)ÚStandardBaseContextc                 óì   — t        | d«      r| j                  S t        | t        «      rt	        | ||«      S t        | t
        «      rt        | ||«      S t        | t        «      rt        | ||«      S t        ‚)NÚ_mpf_)
Úhasattrr4   Ú
isinstancer   r   Úfloatr   r   r   ÚNotImplementedError)ÚxÚprecÚroundings      úK/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/mpmath/ctx_iv.pyÚconvert_mpf_r=      sb   € Üˆq�'Ô 1§7¡7˜NÜ�!”YÔ¬°°D¸(Ó(CÐ!CÜ�!”UÔ¤J¨q°$¸Ó$AÐAÜ�!”ZÔ ¬°!°T¸8Ó)DÐ"DÜ
Ðó    c                   ó  — e Zd ZdZd d„Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
d„ «       Ze
d	„ «       Zd
„ Ze
d„ «       Ze
d„ «       Ze
d„ «       Ze
d„ «       Ze
d„ «       Zd„ ZeZeZe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d„ Zd!d„Z y)"ÚivmpfzH
    Interval arithmetic class. Precision is controlled by iv.prec.
    c                 ó8   — | j                   j                  |«      S ©N)ÚctxÚconvert)Úclsr9   s     r<   Ú__new__zivmpf.__new__+   s   € Ø�w‰w�‰˜qÓ!Ð!r>   c                 óR   — | j                   \  }}||k(  r | ||«      «      S t        ‚rB   )Ú_mpi_Ú
ValueError)ÚselfrE   Ú	f_convertÚaÚbs        r<   Úcastz
ivmpf.cast.   s+   € Ø�z‰z‰ˆˆ1Ø�Š6Ù‘y “|Ó$Ð$ÜÐr>   c                 óJ   — | j                  t        t        j                  «      S rB   )rN   Úintr   Úto_int©rJ   s    r<   Ú__int__zivmpf.__int__4   s   € Ø�y‰yœœeŸl™lÓ+Ð+r>   c                 óJ   — | j                  t        t        j                  «      S rB   )rN   r7   r   Úto_floatrR   s    r<   Ú	__float__zivmpf.__float__7   s   € Ø�y‰yœ¤§¡Ó/Ð/r>   c                 óJ   — | j                  t        t        j                  «      S rB   )rN   Úcomplexr   rU   rR   s    r<   Ú__complex__zivmpf.__complex__:   s   € Ø�y‰yœ¤%§.¡.Ó1Ð1r>   c                 ój   — | j                   \  }}||k(  rt        |«      S t        | j                   «      S rB   )rH   r/   Úhash©rJ   rL   rM   s      r<   Ú__hash__zivmpf.__hash__=   s/   € Ø�z‰z‰ˆˆ1Ø�Š6Ü˜A“;Ðä˜Ÿ
™
Ó#Ð#r>   c                 ó   — | S rB   © rR   s    r<   Úrealz
ivmpf.realD   s   € Ø�Kr>   c                 ó.   — | j                   j                  S rB   )rC   ÚzerorR   s    r<   Úimagz
ivmpf.imagG   s   € ØŸ8™8Ÿ=™=Ð(r>   c                 ó   — | S rB   r_   rR   s    r<   Ú	conjugatezivmpf.conjugateJ   s   €  ˜r>   c                 óZ   — | j                   \  }}| j                  j                  ||f«      S rB   ©rH   rC   Úmake_mpfr\   s      r<   rL   zivmpf.aL   ó(   € à�z‰z‰ˆˆ1Ø�x‰x× Ñ  ! Q Ó(Ð(r>   c                 óZ   — | j                   \  }}| j                  j                  ||f«      S rB   rg   r\   s      r<   rM   zivmpf.bQ   ri   r>   c                 ó€   — | j                   }t        | j                  |j                  «      }|j	                  ||f«      S rB   )rC   r   rH   r:   rh   ©rJ   rC   Úvs      r<   Úmidz	ivmpf.midV   s2   € à�h‰hˆÜ�D—J‘J §¡Ó)ˆØ�|‰|˜Q ˜FÓ#Ð#r>   c                 ó€   — | j                   }t        | j                  |j                  «      }|j	                  ||f«      S rB   )rC   r   rH   r:   rh   rl   s      r<   Údeltazivmpf.delta\   s2   € à�h‰hˆÜ�d—j‘j #§(¡(Ó+ˆØ�|‰|˜Q˜q˜EÓ"Ð"r>   c                 ó&   — | j                   t        fS rB   )rH   Úmpi_zerorR   s    r<   Ú_mpci_zivmpf._mpci_b   s   € à�z‰zœ8Ð#Ð#r>   c                  ó   — t        d«      ‚)Nz-no ordering relation is defined for intervals©Ú	TypeError)Úargss    r<   Ú_comparezivmpf._comparef   s   € ÜÐGÓHÐHr>   c                 ó    — | j                   j                  |«      }| j                  |j                  k  xr |j                  | j                  k  S rB   )rC   ÚmpfrL   rM   )rJ   Úts     r<   Ú__contains__zivmpf.__contains__n   s6   € Ø�H‰H�L‰L˜‹OˆØ—‘˜!Ÿ#™#‘Ò2 A§C¡C¨4¯6©6¡MÐ2r>   c                 óV   — t        | j                  | j                  j                  «      S rB   )r   rH   rC   r:   rR   s    r<   Ú__str__zivmpf.__str__r   s   € Ü�t—z‘z 4§8¡8§=¡=Ó1Ð1r>   c                 ó
  — | j                   j                  rt        | «      S | j                  \  }}t	        | j                   j
                  «      }t        j                  ||«      }t        j                  ||«      }d|›d|›d�S )Nzmpi(ú, ú))rC   ÚprettyÚstrrH   r
   r:   r   Úto_str)rJ   rL   rM   Úns       r<   Ú__repr__zivmpf.__repr__u   sa   € Ø�8‰8�?Š?Ü�t“9ÐØ�z‰z‰ˆˆ1Ü�T—X‘X—]‘]Ó#ˆÜ�L‰L˜˜AÓˆÜ�L‰L˜˜AÓ‰Ú !¢1Ð%Ð%r>   c                 ó¦   — t        |d«      s	 | j                  j                  |«      } || j                  |j                  «      S #  t        cY S xY w)NrH   )r5   rC   rD   ÚNotImplementedrH   )Úsr{   Úcmpfuns      r<   rx   zivmpf._compare~   sG   € Ü�q˜'Ô"ð&Ø—E‘E—M‘M !Ó$�ñ �a—g‘g˜qŸw™wÓ'Ð'øð&Ü%Ò%ús   ŽA ÁAc                 óB   — | j                  |t        j                  «      S rB   )rx   r   Úmpi_eq©r‰   r{   s     r<   Ú__eq__zivmpf.__eq__†   ó   € ˜QŸZ™Z¨¬5¯<©<Ó8Ð8r>   c                 óB   — | j                  |t        j                  «      S rB   )rx   r   Úmpi_ner�   s     r<   Ú__ne__zivmpf.__ne__‡   r�   r>   c                 óB   — | j                  |t        j                  «      S rB   )rx   r   Úmpi_ltr�   s     r<   Ú__lt__zivmpf.__lt__ˆ   r�   r>   c                 óB   — | j                  |t        j                  «      S rB   )rx   r   Úmpi_ler�   s     r<   Ú__le__zivmpf.__le__‰   r�   r>   c                 óB   — | j                  |t        j                  «      S rB   )rx   r   Úmpi_gtr�   s     r<   Ú__gt__zivmpf.__gt__Š   r�   r>   c                 óB   — | j                  |t        j                  «      S rB   )rx   r   Úmpi_ger�   s     r<   Ú__ge__zivmpf.__ge__‹   r�   r>   c                 óˆ   — | j                   j                  t        | j                  | j                   j                  «      «      S rB   )rC   rh   r   rH   r:   rR   s    r<   Ú__abs__zivmpf.__abs__�   ó*   € Ø�x‰x× Ñ ¤¨¯©°T·X±X·]±]Ó!CÓDÐDr>   c                 óˆ   — | j                   j                  t        | j                  | j                   j                  «      «      S rB   )rC   rh   r   rH   r:   rR   s    r<   Ú__pos__zivmpf.__pos__�   r¡   r>   c                 óˆ   — | j                   j                  t        | j                  | j                   j                  «      «      S rB   )rC   rh   r   rH   r:   rR   s    r<   Ú__neg__zivmpf.__neg__‘   r¡   r>   Nc                 ó>   — | j                   j                  | |||«      S rB   ©rC   Úalmosteq©r‰   r{   Úrel_epsÚabs_epss       r<   Úaezivmpf.ae”   ó   € Ø�u‰u�~‰~˜a  G¨WÓ5Ð5r>   )r   ©NN)!Ú__name__Ú
__module__Ú__qualname__Ú__doc__rF   rN   rS   rV   rY   r]   Úpropertyr`   rc   re   rL   rM   rn   rp   rs   rx   r›   r˜   rž   r|   r~   r†   rŽ   r’   r•   r    r£   r¥   r¬   r_   r>   r<   r@   r@   &   s  „ ñó"òò,ò0ò2ò$ð Ùó ØàÙ(ó Ø(â$àñ)ó ð)ð ñ)ó ð)ð ñ$ó ð$ð
 ñ#ó ð#ð
 ñ$ó ð$òIð €FØ€FØ€FØ€Fò3ò2ò&ò(ò 9Ú8Ú8Ú8Ú8Ú8òEòEòEô6r>   r@   c                   óØ   — e Zd Zdd„Zd„ Zd„ Zd„ Zed„ «       Zed„ «       Z	ed„ «       Z
ed„ «       Zed	„ «       Zed
„ «       Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ ZexZxZZd„ Zd„ Zd„ Zdd„Zy)Úivmpcc                 óÂ   — | j                   j                  |«      }| j                   j                  |«      }t        | «      }|j                  |j                  f|_        |S rB   )rC   rD   ÚnewrH   rs   )rE   ÚreÚimÚys       r<   rF   zivmpc.__new__™   sH   € Ø�W‰W�_‰_˜RÓ ˆØ�W‰W�_‰_˜RÓ ˆÜ�‹HˆØ—8‘8˜RŸX™XÐ%ˆŒØˆr>   c                 ó„   — | j                   \  \  }}\  }}||k(  r||k(  rt        ||f«      S t        | j                   «      S rB   )rs   r0   r[   ©rJ   rL   rM   ÚcÚds        r<   r]   zivmpc.__hash__    sB   € ØŸ™‰‰ˆˆA‘��1Ø�Š6�a˜1’fÜ˜Q ˜FÓ#Ð#ä˜Ÿ™Ó$Ð$r>   c                 ó¢   — | j                   j                  rt        | «      S dt        | j                  «      ›dt        | j
                  «      ›d�S )Nziv.mpc(r€   r�   )rC   r‚   rƒ   Úreprr`   rc   ©r‰   s    r<   r†   zivmpc.__repr__§   s6   € Ø�5‰5�<Š<Ü�q“6ˆMð ä#'¨¯©¥<´°a·f±fµÐ>Ð>r>   c                 ó`   — dt        | j                  «      ›dt        | j                  «      ›d�S )Nú(ú + ú*j))rƒ   r`   rc   rÁ   s    r<   r~   zivmpc.__str__¬   s   � Ü # A§F¡F¥¬S°·±­[Ð9Ð9r>   c                 óf   — | j                   \  \  }}\  }}| j                  j                  ||f«      S rB   ©rs   rC   rh   r¼   s        r<   rL   zivmpc.a¯   ó0   € àŸ™‰‰ˆˆA‘��1Ø�x‰x× Ñ  ! Q Ó(Ð(r>   c                 óf   — | j                   \  \  }}\  }}| j                  j                  ||f«      S rB   rÇ   r¼   s        r<   rM   zivmpc.b´   rÈ   r>   c                 óf   — | j                   \  \  }}\  }}| j                  j                  ||f«      S rB   rÇ   r¼   s        r<   r½   zivmpc.c¹   rÈ   r>   c                 óf   — | j                   \  \  }}\  }}| j                  j                  ||f«      S rB   rÇ   r¼   s        r<   r¾   zivmpc.d¾   rÈ   r>   c                 óR   — | j                   j                  | j                  d   «      S ©Nr   ©rC   rh   rs   rÁ   s    r<   r`   z
ivmpc.realÃ   ó   € à�u‰u�~‰~˜aŸh™h q™kÓ*Ð*r>   c                 óR   — | j                   j                  | j                  d   «      S ©Nr   rÎ   rÁ   s    r<   rc   z
ivmpc.imagÇ   rÏ   r>   c                 ól   — | j                   \  }}| j                  j                  |t        |«      f«      S rB   )rs   rC   Úmake_mpcr   )r‰   rL   rM   s      r<   re   zivmpc.conjugateË   s*   € Ø�x‰x‰ˆˆ1Ø�u‰u�~‰~˜q¤'¨!£*˜oÓ.Ð.r>   c                 ó<  — | j                   j                  |«      }| j                  |j                  cxk  xr | j                  k  nc xsŽ | j                  |j                  cxk  xr | j                  k  nc xs^ |j                  | j                  cxk  xr |j                  k  nc xs. |j                  | j                  cxk  xr |j                  k  nc }| j                  |j                  cxk  xr | j
                  k  nc xsŽ | j                  |j
                  cxk  xr | j
                  k  nc xs^ |j                  | j                  cxk  xr |j
                  k  nc xs. |j                  | j
                  cxk  xr |j
                  k  nc }|xr |S rB   )rC   rD   rL   rM   r½   r¾   )r‰   r{   Úreal_overlapÚimag_overlaps       r<   Úoverlapzivmpc.overlapÏ   s  € Ø�E‰E�M‰M˜!ÓˆØŸ™˜qŸs™sÖ) a§c¡cÔ)Òo¨q¯s©s°a·c±cÖ/@¸Q¿S¹SÔ/@ÒoÀaÇcÁcÈQÏSÉSÖFWÐTU×TWÑTWÔFWÒoÐ]^×]`Ñ]`Ðde×dgÑdgÖ]nÐkl×knÑknÔ]nˆØŸ™˜qŸs™sÖ) a§c¡cÔ)Òo¨q¯s©s°a·c±cÖ/@¸Q¿S¹SÔ/@ÒoÀaÇcÁcÈQÏSÉSÖFWÐTU×TWÑTWÔFWÒoÐ]^×]`Ñ]`Ðde×dgÑdgÖ]nÐkl×knÑknÔ]nˆØÒ, Ð,r>   c                 óœ   — | j                   j                  |«      }|j                  | j                  v xr |j                  | j                  v S rB   )rC   rD   r`   rc   r�   s     r<   r|   zivmpc.__contains__Õ   s9   € Ø�E‰E�M‰M˜!ÓˆØ�v‰v˜Ÿ™ÐÒ4 A§F¡F¨a¯f©fÐ$4Ð4r>   c                 óB  — t        || j                  j                  «      s	 | j                  j                  |«      }t        |d«      r|j                  t        f}nt        |d«      r|j                  }|r| j                  k7  S | j                  k(  S #  t        cY S xY w©NrH   rs   )	r6   rC   Ú_typesrD   rˆ   r5   rH   rr   rs   )r‰   r{   ÚneÚtvals       r<   rx   zivmpc._compareÙ   s†   € Ü˜!˜QŸU™UŸ\™\Ô*ð&Ø—E‘E—M‘M !Ó$�ô �1�gÔØ—7‘7œHÐ$‰DÜ�Q˜Ô!Ø—8‘8ˆDÙØ—8‘8˜tÑ#Ð#Ø�x‰x˜4ÑÐøð&Ü%Ò%ús   ¢B ÂBc                 ó$   — | j                  |«      S rB   ©rx   r�   s     r<   rŽ   zivmpc.__eq__ç   s   € ˜QŸZ™Z¨›]Ð*r>   c                 ó&   — | j                  |d«      S )NTrß   r�   s     r<   r’   zivmpc.__ne__è   s   € ˜QŸZ™Z¨¨4Ó0Ð0r>   c                 ó   — t        d«      ‚)Nz#complex intervals cannot be orderedru   r�   s     r<   r•   zivmpc.__lt__ê   s   € œIÐ&KÓLÐLr>   c                 óˆ   — | j                   j                  t        | j                  | j                   j                  «      «      S rB   )rC   rÓ   r%   rs   r:   rÁ   s    r<   r¥   zivmpc.__neg__í   ó'   € ˜1Ÿ5™5Ÿ>™>¬(°1·8±8¸Q¿U¹U¿Z¹ZÓ*HÓIÐIr>   c                 óˆ   — | j                   j                  t        | j                  | j                   j                  «      «      S rB   )rC   rÓ   r$   rs   r:   rÁ   s    r<   r£   zivmpc.__pos__î   rã   r>   c                 óˆ   — | j                   j                  t        | j                  | j                   j                  «      «      S rB   )rC   rh   r+   rs   r:   rÁ   s    r<   r    zivmpc.__abs__ï   rã   r>   Nc                 ó>   — | j                   j                  | |||«      S rB   r§   r©   s       r<   r¬   zivmpc.aeñ   r­   r>   )r   r   )Fr®   )r¯   r°   r±   rF   r]   r†   r~   r³   rL   rM   r½   r¾   r`   rc   re   r×   r|   rx   rŽ   r’   r•   r˜   r›   rž   r¥   r£   r    r¬   r_   r>   r<   rµ   rµ   —   sÊ   „ óò%ò?ò
:ð ñ)ó ð)ð ñ)ó ð)ð ñ)ó ð)ð ñ)ó ð)ð ñ+ó ð+ð ñ+ó ð+ò/ò-ò5ó ò +Ú0âLØ%Ð%€FÐ%ˆV�fâIÚIÚIô6r>   rµ   c                 óX   ‡ ‡‡‡— ˆfd„Šˆ ˆfd„Šˆˆfd„}ˆˆfd„}ˆfd„}ˆfd„}||||fS )Nc                 óJ   •— | j                   ‰||| j                  «      «      S rB   )rÓ   r:   )rC   ÚsvalrÝ   Ú	f_complexs      €r<   Ú	g_complexz_binary_op.<locals>.g_complexõ   s   ø€ Ø�|‰|™I d¨D°#·(±(Ó;Ó<Ð<r>   c                 óž   •— 	 | j                   ‰||| j                  «      «      S # t        $ r |t        f}|t        f} ‰| ||«      cY S w xY wrB   )rh   r:   r.   rr   )rC   ré   rÝ   Úf_realrë   s      €€r<   Úg_realz_binary_op.<locals>.g_real÷   sV   ø€ ð	.Ø—<‘<¡ t¨T°3·8±8Ó <Ó=Ð=øÜò 	.Øœ(Ð#ˆDØœ(Ð#ˆDÙ˜S $¨Ó-Ò-ð	.ús   ƒ"& ¦#AÁAc                 óV  •— t        |t        «      rt        S | j                  }t        ||j                  «      s|j                  |«      }t        |d«      r ‰|| j                  |j                  «      S t        |d«      r$ ‰|| j                  t        f|j                  «      S t        S rÚ   )
r6   r1   rˆ   rC   rÛ   rD   r5   rH   rr   rs   ©r‰   r{   rC   rë   rî   s      €€r<   Úlop_realz_binary_op.<locals>.lop_realþ   s€   ø€ Ü�aœÔ!¬.Ð#8Ø�e‰eˆÜ˜!˜SŸZ™ZÔ(¨c¯k©k¸!«n¨!Ü�1�gÔ¡v¨c°1·7±7¸A¿G¹GÓ'DÐ DÜ�1�hÔ©	°#¸¿¹ÄÐ7JÈAÏHÉHÓ(UÐ!UÜÐr>   c                 ó*  •— | j                   }t        ||j                  «      s|j                  |«      }t	        |d«      r ‰||j
                  | j
                  «      S t	        |d«      r$ ‰||j                  | j
                  t        f«      S t        S rÚ   )	rC   r6   rÛ   rD   r5   rH   rs   rr   rˆ   rð   s      €€r<   Úrop_realz_binary_op.<locals>.rop_real  sq   ø€ Ø�e‰eˆÜ˜!˜SŸZ™ZÔ(¨c¯k©k¸!«n¨!Ü�1�gÔ¡v¨c°1·7±7¸A¿G¹GÓ'DÐ DÜ�1�hÔ©	°#°q·x±xÀ!Ç'Á'Ì8ÐATÓ(UÐ!UÜÐr>   c                 ó2  •— t        |t        «      rt        S | j                  }t        || j                  j                  «      s	 | j                  j                  |«      } ‰|| j                  |j                  «      S # t        t        f$ r	 t        cY S w xY wrB   )	r6   r1   rˆ   rC   rÛ   rD   rI   rv   rs   ©r‰   r{   rC   rë   s      €r<   Úlop_complexz_binary_op.<locals>.lop_complex  sy   ø€ Ü�aœÔ!¬.Ð#8Ø�e‰eˆÜ˜!˜QŸU™UŸ\™\Ô*ð&Ø—E‘E—M‘M !Ó$�ñ ˜˜aŸh™h¨¯©Ó1Ð1øô ¤	Ð*ò &Ü%Ò%ð&ús   ÁA> Á>BÂBc                 óÎ   •— | j                   }t        || j                   j                  «      s| j                   j                  |«      } ‰||j                  | j                  «      S rB   )rC   r6   rÛ   rD   rs   rõ   s      €r<   Úrop_complexz_binary_op.<locals>.rop_complex  sG   ø€ Ø�e‰eˆÜ˜!˜QŸU™UŸ\™\Ô*Ø—‘—‘˜aÓ ˆAÙ˜˜aŸh™h¨¯©Ó1Ð1r>   r_   )rí   rê   rñ   ró   rö   rø   rë   rî   s   ``    @@r<   Ú
_binary_oprù   ô   s2   û€ ô=õ.õõô2ô2ð
 �X˜{¨KÐ7Ð7r>   c                   ó(   — e Zd Zd„ Zd„ Z ee«      Zy)Úivmpf_constantc                 ó*   — t        | «      }||_        |S rB   )r·   Ú_f)rE   ÚfrJ   s      r<   rF   zivmpf_constant.__new__%  s   € Ü�3‹xˆØˆŒØˆr>   c                 ó”   — | j                   j                  d   }| j                  |t        «      }| j                  |t        «      }||fS rÍ   )rC   Ú_precrý   r   r   )rJ   r:   rL   rM   s       r<   Ú	_get_mpi_zivmpf_constant._get_mpi_)  s=   € Ø�x‰x�~‰~˜aÑ ˆØ�G‰G�Dœ+Ó&ˆØ�G‰G�Dœ-Ó(ˆØ�!ˆtˆr>   N)r¯   r°   r±   rF   r  r³   rH   r_   r>   r<   rû   rû   $  s   „ òòñ
 �YÓ�Er>   rû   c                   óÖ   — e Zd Zd„ Zdd„Zd„ Zdd„Zed„ «       Zd„ Z	d„ Z
 ed	„ e	«      Z ed
„ e
«      Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zy)ÚMPIntervalContextc                 óT  — t        dt        fi «      | _        t        dt        fi «      | _        | j                  | j                  f| _        t        dt        fi «      | _        dg| _        | j                  d«       | j                  t        | j                  gx| j                  _        x| j                  _        | j                  _        | x| j                  _        x| j                  _        | j                  _        d| _        t        j                  | «       | j!                  «        y )Nr@   rµ   rû   é5   F)Útyper@   rz   rµ   ÚmpcrÛ   rû   Ú	_constantr   Ú	_set_precr·   Ú_ctxdatarC   r‚   r2   Ú__init__Ú_init_builtins©rC   s    r<   r  zMPIntervalContext.__init__2  sÝ   € Ü�w¤ ¨"Ó-ˆŒÜ�w¤ ¨"Ó-ˆŒØ—g‘g˜sŸw™wÐ'ˆŒ
ÜÐ-´Ð/@À"ÓEˆŒØ�DˆŒ	Ø�‰�bÔØHKÏÉÔQTÐVY×V_ÑV_ÐG`Ð`ˆ�‰ÔÐ` §¡Ô!1°C·G±GÔ4DØ8;Ð;ˆ�‰ÔÐ;˜CŸG™GœK¨#¯'©'¬+ØˆŒ
Ü×$Ñ$ SÔ)Ø×ÑÕr>   Nc                 óN   — |€| j                  |«      S | j                  ||f«      S rB   )rz   )rC   rL   rM   s      r<   Ú_mpizMPIntervalContext._mpi?  s'   € Øˆ9Ø—7‘7˜1“:ÐØ�w‰w˜˜!�u‹~Ðr>   c                 óæ  — | j                  d«      | _        | j                  d«      | _        | j                  d«      | _        | j                   | _        | j                  d«      | _        | j                  dd«      | _        | j                  t        j                  t        j                  «      | _        | j                  t        j                  «      | _        | j                  t        j                  t        j                   «      | _        | j                  t        j$                  t        j&                  «      | _        | j                  t        j*                  t        j,                  «      | _        | j                  t        j0                  «      | _        | j                  t        j4                  t        j6                  «      | _        | j                  t        j:                  t        j<                  «      | _        | j                  t        j@                  t        jB                  «      | _"        | j                  t        jF                  t        jH                  «      | _%        | jJ                  | _&        | jO                  d„ «      | _(        | jO                  t        jR                  «      | _*        | jO                  t        jV                  «      | _,        | jO                  t        jZ                  «      | _.        | jO                  t        j^                  «      | _0        | jO                  t        jb                  «      | _2        | jO                  t        jf                  «      | _4        | jO                  t        jj                  «      | _6        | jO                  t        jn                  «      | _8        | jO                  t        jr                  «      | _:        | jO                  t        jv                  «      | _<        y )Nr   r   ÚinfÚnanc                 ó   — dt         d| z
  dfS ©Nr   r   )r   )r:   Úrnds     r<   ú<lambda>z2MPIntervalContext._init_builtins.<locals>.<lambda>W  s   € °1´g¸qÀ¹vÀqÐ2I€ r>   )=rz   Úonerb   r  Úninfr  r  ÚjÚ_wrap_mpi_functionr   Úmpi_expr,   ÚexpÚmpi_sqrtÚsqrtÚmpi_logr-   ÚlnÚmpi_cosÚmpci_cosÚcosÚmpi_sinÚmpci_sinÚsinÚmpi_tanÚtanÚ	mpi_gammaÚ
mpci_gammaÚgammaÚmpi_loggammaÚmpci_loggammaÚloggammaÚ
mpi_rgammaÚmpci_rgammaÚrgammaÚmpi_factorialÚmpci_factorialÚ	factorialÚfacr  ÚepsÚmpf_piÚpiÚmpf_eÚeÚmpf_ln2Úln2Úmpf_ln10Úln10Úmpf_phiÚphiÚ	mpf_eulerÚeulerÚmpf_catalanÚcatalanÚmpf_glaisherÚglaisherÚmpf_khinchinÚkhinchinÚmpf_twinprimeÚ	twinprimer  s    r<   r  z MPIntervalContext._init_builtinsD  sb  € Ø—'‘'˜!“*ˆŒØ—7‘7˜1“:ˆŒØ—'‘'˜%“.ˆŒØ—G‘G�8ˆŒØ—'‘'˜%“.ˆŒØ—‘˜˜!“ˆŒØ×(Ñ(¬¯©¼¿¹ÓGˆŒØ×)Ñ)¬%¯.©.Ó9ˆŒØ×'Ñ'¬¯©´u·~±~ÓFˆŒØ×(Ñ(¬¯©¼¿¹ÓGˆŒØ×(Ñ(¬¯©¼¿¹ÓGˆŒØ×(Ñ(¬¯©Ó7ˆŒØ×*Ñ*¬5¯?©?¼E×<LÑ<LÓMˆŒ	Ø×-Ñ-¬e×.@Ñ.@Ä%×BUÑBUÓVˆŒØ×+Ñ+¬E×,<Ñ,<¼e×>OÑ>OÓPˆŒ
Ø×.Ñ.¬u×/BÑ/BÄE×DXÑDXÓYˆŒØ—-‘-ˆŒà—-‘-Ñ IÓJˆŒØ—‘œuŸ|™|Ó,ˆŒØ—‘œeŸk™kÓ*ˆŒØ—-‘-¤§¡Ó.ˆŒØ—=‘=¤§¡Ó0ˆŒØ—-‘-¤§¡Ó.ˆŒØ—M‘M¤%§/¡/Ó2ˆŒ	Ø—m‘m¤E×$5Ñ$5Ó6ˆŒØ—}‘}¤U×%7Ñ%7Ó8ˆŒØ—}‘}¤U×%7Ñ%7Ó8ˆŒØŸ™¤e×&9Ñ&9Ó:ˆ�r>   c                 ó   ‡ ‡‡— ˆ ˆˆfd„}|S )Nc                 óL  •— |r |j                  d‰j                  d   «      }n‰j                  d   }‰j                  | «      } t        | d«      r"‰j	                   ‰| j
                  |«      «      S t        | d«      r"‰j                   ‰| j                  |«      «      S t        ‚)Nr:   r   rH   rs   )	Úgetr   rD   r5   rh   rH   rÓ   rs   rI   )r9   Úkwargsr:   rC   rê   rí   s      €€€r<   Úgz/MPIntervalContext._wrap_mpi_function.<locals>.gd  s†   ø€ ÙØ—z‘z &¨#¯)©)°A©,Ó7‘à—y‘y ‘|�Ø—‘˜A“ˆAÜ�q˜'Ô"Ø—|‘|¡F¨1¯7©7°DÓ$9Ó:Ð:Ü�q˜(Ô#Ø—|‘|¡I¨a¯h©h¸Ó$=Ó>Ð>ÜÐr>   r_   )rC   rí   rê   rO  s   ``` r<   r  z$MPIntervalContext._wrap_mpi_functionc  s   ú€ ö
	ð ˆr>   c                 ó4   ‡— |rˆfd„}n‰}t        | ||«       y )Nc                 óØ   •— | j                   }|D �cg c]
  } ||«      ‘Œ }}| j                  }	 | xj                  dz  c_         ‰| g|¢­i |¤Ž}|| _        |­S c c}w # || _        w xY w)Né
   )rD   r:   )rC   rw   rN  rD   rL   r:   Úretvalrþ   s          €r<   Ú	f_wrappedz2MPIntervalContext._wrap_specfun.<locals>.f_wrappedt  sp   ø€ ØŸ+™+�Ø,0Ö1 q™ �
Ð1�Ð1Ø—x‘x�ð$Ø—H’H ‘N•HÙ˜sÐ4 TÒ4¨VÑ4�Fà#�C”HØ�w�ùò 2øð  $�C•Hús   ’A°!A  Á 	A))Úsetattr)rE   Únamerþ   ÚwraprT  s     `  r<   Ú_wrap_specfunzMPIntervalContext._wrap_specfunq  s   ø€ áõ	ð ˆIÜ��T˜9Õ%r>   c                 óh   — t        dt        |«      «      | j                  d<   t        |«      | _        y )Nr   r   )ÚmaxrP   r   r   Ú_dps©rC   r…   s     r<   r	  zMPIntervalContext._set_prec‚  s$   € Ü˜1œc !›f“~ˆ�	‰	�!‰Ü˜q“>ˆ�r>   c                 óh   — t        |«      | j                  d<   t        dt        |«      «      | _        y r  )r	   r   rZ  rP   r[  r\  s     r<   Ú_set_dpszMPIntervalContext._set_dps†  s$   € Ü" 1“~ˆ�	‰	�!‰Ü�qœ#˜a›&“>ˆ�r>   c                 ó    — | j                   d   S rÍ   )r   r  s    r<   r  zMPIntervalContext.<lambda>Š  s   €  §	¡	¨!¡€ r>   c                 ó   — | j                   S rB   )r[  r  s    r<   r  zMPIntervalContext.<lambda>‹  s
   € ˜sŸx™x€ r>   c                 ó>   — t        | j                  «      }||_        |S rB   )r·   rz   rH   ©rC   rm   rL   s      r<   rh   zMPIntervalContext.make_mpf�  s   € Ü�—‘‹LˆØˆŒØˆr>   c                 ó>   — t        | j                  «      }||_        |S rB   )r·   r  rs   rb  s      r<   rÓ   zMPIntervalContext.make_mpc’  s   € Ü�—‘‹LˆØˆŒØˆr>   c                 óÊ   — |\  }}t        j                  ||| j                  t        «      }t        j                  ||| j                  t        «      }| j                  ||f«      S rB   )r   r   r:   r   r   rh   )rC   ÚpqÚpÚqrL   rM   s         r<   Ú_mpqzMPIntervalContext._mpq—  sR   € Ø‰ˆˆ1Ü×Ñ  1 c§h¡h´Ó<ˆÜ×Ñ  1 c§h¡h´Ó>ˆØ�|‰|˜Q ˜FÓ#Ð#r>   c                 óŒ  — t        || j                  | j                  f«      r|S t        || j                  «      r|­S t        |t        «      st        |d«      rH| j                  |j                  «      }| j                  |j                  «      }| j                  ||«      S t        |t        «      r't        || j                  «      }| j                  |«      S t        |d«      r|j                  \  }}nt	 |\  }}t        |d«      r|j                  d   }nt!        || j                  t"        «      }t        |d«      r|j                  d   }nt!        || j                  t$        «      }|t&        k(  s	|t&        k(  rt(        }t*        }t-        ||«      sJ d«       ‚| j                  ||f«      S # t        t        f$ r |x}}Y ŒÇw xY w)NÚ_mpc_rH   r   r   z"endpoints must be properly ordered)r6   rz   r  r  rX   r5   rD   r`   rc   r   r#   r:   rh   rH   rv   rI   r=   r   r   r   r   r   r   )rC   r9   r¸   r¹   rm   rL   rM   s          r<   rD   zMPIntervalContext.convert�  sx  € Ü�a˜#Ÿ'™' 3§7¡7Ð+Ô,ØˆHÜ�a˜Ÿ™Ô'Ø�2ˆIÜ�aœÔ!¤W¨Q°Ô%8Ø—‘˜QŸV™VÓ$ˆBØ—‘˜QŸV™VÓ$ˆBØ—7‘7˜2˜b“>Ð!Ü�aœÔ$Ü˜Q §¡Ó)ˆAØ—<‘< “?Ð"Ü�1�gÔØ—7‘7‰DˆA‰qðØ‘��1ô �q˜'Ô"Ø—G‘G˜A‘J‘ä   C§H¡H¬kÓ:�Ü�q˜'Ô"Ø—G‘G˜A‘J‘ä   C§H¡H¬mÓ<�Ø”Š9˜œTš	ÜˆAÜˆAÜ�a˜Œ|ÐAÐAÓAˆ|Ø�|‰|˜Q ˜FÓ#Ð#øô œzÐ*ò Ø�	�’Aðús   Ã6F- Æ-GÇGc                 ó:  — | j                  |«      }t        |d«      r!t        j                  |j                  |fi |¤ŽS t        |d«      rQt        j                  |j
                  d   |fi |¤Ž}t        j                  |j
                  d   |fi |¤Ž}d|›d|›d�S y )NrH   rs   r   r   rÃ   rÄ   rÅ   )rD   r5   r   Ú
mpi_to_strrH   rs   )rC   r9   r…   rN  r¸   r¹   s         r<   ÚnstrzMPIntervalContext.nstr¾  s�   € Ø�K‰K˜‹NˆÜ�1�gÔÜ×#Ñ# A§G¡G¨QÑ9°&Ñ9Ð9Ü�1�hÔÜ×!Ñ! !§(¡(¨1¡+¨qÑ;°FÑ;ˆBÜ×!Ñ! !§(¡(¨1¡+¨qÑ;°FÑ;‰BÚ$&ªÐ+Ð+ð  r>   c                 óž  — | j                  |«      }t        || j                  «      rAt        | j	                  |j
                  «      | j	                  |j                  «      «      dz   S t        j                  |j                  «      \  }}|\  }}}}|r||z   S |t        k(  r| j                  S |t        k(  r| j                  S | j                  S rÑ   )rD   r6   r  rZ  Úmagr`   rc   r   r   rH   r   r  r   r  r  ©rC   r9   rL   rM   ÚsignÚmanr  Úbcs           r<   ro  zMPIntervalContext.magÇ  s    € Ø�K‰K˜‹NˆÜ�a˜Ÿ™Ô!Ü�s—w‘w˜qŸv™v“¨¯©°·±«Ó8¸1Ñ<Ð<Ü�}‰}˜QŸW™WÓ%‰ˆˆ1ØÑˆˆc�3˜ÙØ�r‘6ˆMØ”Š:Ø—8‘8ˆOØ”Š9Ø—7‘7ˆNØ�w‰wˆr>   c                  ó   — y)NFr_   ©rC   r9   s     r<   ÚisnanzMPIntervalContext.isnanÕ  s   € Ør>   c                 ó    — || j                   k(  S rB   )r  ru  s     r<   ÚisinfzMPIntervalContext.isinfØ  s   € Ø�C—G‘G‰|Ðr>   c                 ó|   — | j                  |«      }|j                  \  }}||k(  r|\  }}}}|r|dk\  S |t        k(  S y rÍ   )rD   rH   r   rp  s           r<   ÚisintzMPIntervalContext.isintÛ  sJ   € Ø�K‰K˜‹NˆØ�w‰w‰ˆˆ1Ø�Š6Ø!"ÑˆD�#�s˜BÙØ˜a‘x�Øœ‘:ÐØr>   c                 ó¼   — | j                  |«      j                  \  }}t        j                  ||«      }t        j                  ||«      }| j	                  ||f«      S rB   )rD   rH   r   Ú	mpf_shiftrh   )rC   r9   r…   rL   rM   s        r<   ÚldexpzMPIntervalContext.ldexpå  sL   € Ø�{‰{˜1‹~×#Ñ#‰ˆˆ1Ü�O‰O˜A˜qÓ!ˆÜ�O‰O˜A˜qÓ!ˆØ�|‰|˜Q˜q˜EÓ"Ð"r>   c                 óJ   — t        | j                  |«      «      j                  S rB   )ÚabsrD   rL   ru  s     r<   ÚabsminzMPIntervalContext.absminë  ó   € Ü�3—;‘;˜q“>Ó"×$Ñ$Ð$r>   c                 óJ   — t        | j                  |«      «      j                  S rB   )r  rD   rM   ru  s     r<   ÚabsmaxzMPIntervalContext.absmaxî  r�  r>   c                 óÎ   — | j                  |«      j                  }| j                  |«      j                  }| j                  t        j                  ||| j
                  «      «      S rB   )rD   rH   rh   r   Ú	mpi_atan2r:   )rC   rº   r9   s      r<   Úatan2zMPIntervalContext.atan2ñ  sH   € Ø�K‰K˜‹N× Ñ ˆØ�K‰K˜‹N× Ñ ˆØ�|‰|œEŸO™O¨A¨a°·±Ó9Ó:Ð:r>   c                 óH  — t        |t        j                  «      r|dfS t        |t        «      r*|\  }}| j	                  |«      | j	                  |«      z  dfS | j                  |«      }t        || j                  «      r|dfS t        || j                  «      r|dfS t        ‚)NÚZÚRÚC)r6   r   r   Útuplerz   rD   r  rI   )rC   r9   rf  rg  s       r<   Ú_convert_paramz MPIntervalContext._convert_paramö  s�   € Ü�aœŸ™Ô)Ø�c�6ˆMÜ�aœÔØ‰DˆAˆqØ—G‘G˜A“J §¡¨£Ñ+¨SÐ1Ð1Ø�K‰K˜‹NˆÜ�a˜Ÿ™Ô!Ø�c�6ˆMÜ�a˜Ÿ™Ô!Ø�c�6ˆMÜÐr>   c                 óR   — t        || j                  «      xs t        |t        «      S rB   )r6   rz   r   ©rC   Úzs     r<   Ú_is_real_typezMPIntervalContext._is_real_type  s   € Ü˜!˜SŸW™WÓ%ÒA¬°A´yÓ)AÐAr>   c                 ó.   — t        || j                  «      S rB   )r6   r  rŽ  s     r<   Ú_is_complex_typez"MPIntervalContext._is_complex_type  s   € Ü˜!˜SŸW™WÓ%Ð%r>   c                 ó  — t        |«      }t        |«      }t        |||z   «      }	| j                  x}
}d}	 |D ]  }|||   |z   z  }Œ |	D ]  }|||   |z   z  }Œ |dz  }||z  }||z  }|
|z  }
|dk(  r|
S ||kD  r| j                  ‚ŒQr  )ÚlistÚranger  ÚNoConvergence)rC   rf  rg  ÚtypesÚcoeffsr�  ÚmaxtermsrN  ÚnumÚdenr‰   r{   ÚkÚis                 r<   ÚhypsumzMPIntervalContext.hypsum	  s·   € Ü�f“ˆÜ�A‹hˆÜ�A�a˜‘c‹lˆà—‘ˆˆˆAØˆØØÒ,�˜!  q¡	¨!¡Ñ,™!Ð,ØÒ,�˜!  q¡	¨!¡Ñ,™!Ð,Ø�‰FˆA�A˜‘F�A˜A ™F˜A A¨¡F AØ�AŠvØ�ð �8Š|Ø×'Ñ'Ð'ð r>   rB   )é   )ip  )r¯   r°   r±   r  r  r  r  ÚclassmethodrX  r	  r^  r³   r:   Údpsrh   rÓ   rh  rD   rm  ro  rv  rx  rz  r}  r€  rƒ  r†  rŒ  r�  r’  rž  r_   r>   r<   r  r  0  s§   „ òóò
;ó>ð ñ&ó ð&ò "ò"ñ Ñ,¨iÓ8€DÙ
Ñ'¨Ó
2€Còò
ò
$ò$óB,òòòòò#ò%ò%ò;ò
òBò&ô(r>   r  )OÚoperatorÚ r   Úlibmp.backendr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   Úmatrices.matricesr1   rr   Úctx_baser2   ÚobjectrF   r·   r=   r@   rµ   rù   Ú__add__Ú__radd__Ú__sub__Ú__rsub__Ú__mul__Ú__rmul__Ú__div__Ú__rdiv__Ú__pow__Ú__rpow__Ú__truediv__Ú__rtruediv__rû   r  ÚnumbersÚComplexÚregisterÚRealÚImportErrorr_   r>   r<   ú<module>r¹     s¯  ðÛ å å %÷÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ó õ 'à�5ˆ>€å )à‡n�n€òôo6ˆFô o6ôb[6ˆFô [6òz%8ñN @JÈ'ÐS[Ó?\Ñ <€„ˆuŒ~˜uœ}¨e¬nÙ?IÈ'ÐS[Ó?\Ñ <€„ˆuŒ~˜uœ}¨e¬nÙ?IÈ'ÐS[Ó?\Ñ <€„ˆuŒ~˜uœ}¨e¬nÙ?IÈ'ÐS[Ó?\Ñ <€„ˆuŒ~˜uœ}¨e¬nÙ?IÈ'ÐS[Ó?\Ñ <€„ˆuŒ~˜uœ}¨e¬nà—M‘M€Ô ¸¿¹ 5Ô#5Ø—M‘M€Ô ¸¿¹ 5Ô#5ô
 �Uô 
 ôi(Ð+ô i(ðd	ÛØ‡O�O×Ñ˜UÔ#Ø‡L�L×Ñ˜%Õ øØò 	Ùð	ús   Æ*:G% Ç%G-Ç,G-