Ë
    täiæk  ã                   óô  — d 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. ddl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7 ddl8m9Z9m:Z:m;Z;m<Z< d„ Z=eefZ>eefZ?d„ Z@d„ ZAd	„ ZBd
„ ZCd„ ZDd„ ZEdKd„ZFdKd„ZGd„ ZHd„ ZId„ ZJdKd„ZKdKd„ZLd„ ZMd„ ZNdKd„ZOdKd„ZPd„ ZQd„ ZRd„ ZSd„ ZTd„ ZUd„ ZVd„ ZWd„ ZXd „ ZYd!„ ZZd"„ Z[d#„ Z\d$„ Z]d%„ Z^d&„ Z_d'„ Z`d(„ Zad)„ ZbdLd*„Zcd+„ Zdd,„ ZedKd-„Zfd.„ Zgd/„ Zhd0„ Zid1„ Zjd2„ Zkd3„ Zld4„ Zmd5„ Znd6„ Zod7„ Zpd8„ Zqd9„ Zrd:„ Zsd;„ Ztd<„ Zu ed=«      Zv ed>«      ZwevewfZx ed?«      Zy ed@«      ZzdA„ Z{dKdB„Z|dKdC„Z}dD„ Z~dE„ ZdF„ Z€dG„ Z�dH„ Z‚dI„ ZƒyJ)Mz3
Computational functions for interval arithmetic.

é   )Úxrange)+ÚComplexResultÚ
round_downÚround_upÚround_floorÚround_ceilingÚround_nearestÚprec_to_dpsÚrepr_dpsÚdps_to_precÚbitcountÚ
from_floatÚfnanÚfinfÚfninfÚfzeroÚfhalfÚfoneÚfnoneÚmpf_signÚmpf_ltÚmpf_leÚmpf_gtÚmpf_geÚmpf_eqÚmpf_cmpÚmpf_min_maxÚ	mpf_floorÚfrom_intÚto_intÚto_strÚfrom_strÚmpf_absÚmpf_negÚmpf_posÚmpf_addÚmpf_subÚmpf_mulÚmpf_mul_intÚmpf_divÚ	mpf_shiftÚmpf_pow_intÚfrom_man_expÚMPZ_ONE)Úmpf_logÚmpf_expÚmpf_sqrtÚmpf_atanÚ	mpf_atan2Úmpf_piÚmod_pi2Úmpf_cos_sin)Ú	mpf_gammaÚ
mpf_rgammaÚmpf_loggammaÚmpc_loggammac                 ób   — | \  }}t        |«      dz   }dt        ||«      ›dt        ||«      ›d�S )Né   Ú[z, Ú])r
   r!   )ÚsÚprecÚsaÚsbÚdpss        úb/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/mpmath/libmp/libmpi.pyÚmpi_strrE      s1   € Ø�F€BˆÜ
�dÓ
˜aÑ
�CÜ  C�¬&°°S­/Ð:Ð:ó    c                 ó   — | |k(  S ©N© ©r?   Úts     rD   Úmpi_eqrL   )   ó   € Ø�‰6€MrF   c                 ó   — | |k7  S rH   rI   rJ   s     rD   Úmpi_nerO   ,   rM   rF   c                 óL   — | \  }}|\  }}t        ||«      ryt        ||«      ryy ©NTF)r   r   ©r?   rK   rA   rB   ÚtaÚtbs         rD   Úmpi_ltrU   /   ó-   € Ø�F€BˆØ�F€BˆÜˆb�"„~˜dÜˆb�"„~˜eØrF   c                 óL   — | \  }}|\  }}t        ||«      ryt        ||«      ryy rQ   )r   r   rR   s         rD   Úmpi_lerX   6   rV   rF   c                 ó   — t        || «      S rH   )rU   rJ   s     rD   Úmpi_gtrZ   =   ó   € œ  1›Ð%rF   c                 ó   — t        || «      S rH   )rX   rJ   s     rD   Úmpi_ger]   >   r[   rF   c                 ó¢   — | \  }}|\  }}t        |||t        «      }t        |||t        «      }|t        k(  rt        }|t        k(  rt
        }||fS rH   )r&   r   r   r   r   r   ©	r?   rK   r@   rA   rB   rS   rT   ÚaÚbs	            rD   Úmpi_addrb   @   óS   € Ø�F€BˆØ�F€BˆÜ��B˜œkÓ*€AÜ��B˜œmÓ,€AØŒD‚y”e�!ØŒD‚y”d�!Øˆaˆ4€KrF   c                 ó¢   — | \  }}|\  }}t        |||t        «      }t        |||t        «      }|t        k(  rt        }|t        k(  rt
        }||fS rH   )r'   r   r   r   r   r   r_   s	            rD   Úmpi_subre   I   rc   rF   c                 ó0   — | \  }}t        |||t        «      S rH   )r'   r   ©r?   r@   rA   rB   s       rD   Ú	mpi_deltarh   R   s   € Ø�F€BˆÜ�2�r˜4¤Ó*Ð*rF   c                 óD   — | \  }}t        t        |||t        «      d«      S )Néÿÿÿÿ)r+   r&   r	   rg   s       rD   Úmpi_midrk   V   s#   € Ø�F€BˆÜ”W˜R  T¬=Ó9¸2Ó>Ð>rF   c                 óX   — | \  }}t        ||t        «      }t        ||t        «      }||fS rH   )r%   r   r   ©r?   r@   rA   rB   r`   ra   s         rD   Úmpi_posrn   Z   ó0   € Ø�F€BˆÜ��Dœ+Ó&€AÜ��Dœ-Ó(€AØˆaˆ4€KrF   c                 óX   — | \  }}t        ||t        «      }t        ||t        «      }||fS rH   )r$   r   r   rm   s         rD   Úmpi_negrq   `   ro   rF   c                 ór  — | \  }}t        |«      }t        |«      }|dk\  r&t        ||t        «      }t        ||t        «      }||fS |dk\  rGt        }t        |«      }t        ||«      rt        ||t        «      }||fS t        ||t        «      }||fS t        ||t        «      }t        ||t        «      }||fS ©Né    )r   r%   r   r   r   r$   r   )	r?   r@   rA   rB   ÚsasÚsbsr`   ra   Únegsas	            rD   Úmpi_absrx   f   sÇ   € Ø�F€BˆÜ
�2‹,€CÜ
�2‹,€Cà
ˆa‚xÜ�B˜œkÓ*ˆÜ�B˜œmÓ,ˆð ˆaˆ4€Kð 
�ŠÜˆÜ˜“ˆÜ�%˜ÔÜ˜˜D¤-Ó0ˆAð ˆaˆ4€Kô ˜˜t¤]Ó3ˆAð
 ˆaˆ4€Kô �B˜œkÓ*ˆÜ�B˜œmÓ,ˆØˆaˆ4€KrF   c                 ó    — t        | ||f|«      S rH   )Úmpi_mul©r?   rK   r@   s      rD   Úmpi_mul_mpfr|   }   ó   € Ü�1�q˜!�f˜dÓ#Ð#rF   c                 ó    — t        | ||f|«      S rH   )Úmpi_divr{   s      rD   Úmpi_div_mpfr€   €   r}   rF   c                 óÆ  — | \  }}|\  }}t        |«      }t        |«      }t        |«      }	t        |«      }
||cxk(  rdk(  r-n n*|t        k(  s	|t        k(  rt        t        fS t        t        fS |	|
cxk(  rdk(  r-n n*|t        k(  s	|t        k(  rt        t        fS t        t        fS |dk\  rÜ|	dk\  rFt	        |||t
        «      }t	        |||t        «      }|t        k(  rt        }|t        k(  r—t        }||fS |
dk  rFt	        |||t
        «      }t	        |||t        «      }|t        k(  rt        }|t        k(  rLt        }||fS t	        |||t
        «      }t	        |||t        «      }|t        k(  rt        }|t        k(  rt        }||fS |dk  rÜ|	dk\  rFt	        |||t
        «      }t	        |||t        «      }|t        k(  rt        }|t        k(  r—t        }||fS |
dk  rFt	        |||t
        «      }t	        |||t        «      }|t        k(  rt        }|t        k(  rLt        }||fS t	        |||t
        «      }t	        |||t        «      }|t        k(  rt        }|t        k(  rt        }||fS t	        ||«      t	        ||«      t	        ||«      t	        ||«      g}t        |v rt        t        }}||fS t        |«      \  }}t        ||t
        «      }t        ||t        «      }||fS rs   )
r   r   r   r   r(   r   r   r   r   r%   )r?   rK   r@   rA   rB   rS   rT   ru   rv   ÚtasÚtbsr`   ra   Úcasess                 rD   rz   rz   ƒ   sÇ  € Ø�F€BˆØ�F€BˆÜ
�2‹,€CÜ
�2‹,€CÜ
�2‹,€CÜ
�2‹,€CØ
ˆc„�Q…à”Š;˜"¤š*Üœ$�;ÐÜ”eˆ|ÐØ
ˆc„�Q…à”Š;˜"¤š*Üœ$�;ÐÜ”eˆ|ÐØ
ˆa‚xà�!Š8Ü˜˜B ¤kÓ2ˆAÜ˜˜B ¤mÓ4ˆAØ”DŠyœe˜!Ø”DŠyœd˜!ðV ˆaˆ4€KðS �AŠXÜ˜˜B ¤kÓ2ˆAÜ˜˜B ¤mÓ4ˆAØ”DŠyœe˜!Ø”DŠyœe˜!ðJ ˆaˆ4€KôE ˜˜B ¤kÓ2ˆAÜ˜˜B ¤mÓ4ˆAØ”DŠyœe˜!Ø”DŠyœd˜!ð> ˆaˆ4€Kð= 
�Šà�!Š8Ü˜˜B ¤kÓ2ˆAÜ˜˜B ¤mÓ4ˆAØ”DŠyœe˜!Ø”DŠyœe˜!ð0 ˆaˆ4€Kð- �AŠXÜ˜˜B ¤kÓ2ˆAÜ˜˜B ¤mÓ4ˆAØ”DŠyœe˜!Ø”DŠyœd˜!ð$ ˆaˆ4€Kô ˜˜B ¤kÓ2ˆAÜ˜˜B ¤mÓ4ˆAØ”DŠyœe˜!Ø”DŠyœd˜!ð ˆaˆ4€Kô ˜˜R“¤'¨"¨b£/´7¸2¸r³?ÄGÈBÐPRÃOÐTˆÜ�5‰=Üœ4ˆqˆAð
 ˆaˆ4€Kô ˜uÓ%‰DˆAˆqÜ˜˜4¤Ó-ˆAÜ˜˜4¤Ó/ˆAØˆaˆ4€KrF   c                 óZ  — | \  }}t        |t        «      r(t        |||t        «      }t        |||t        «      }||fS t        |t        «      r(t        |||t        «      }t        |||t        «      }||fS t        |«      }t        ||g«      \  }}t        }t        |||t        «      }||fS rH   )r   r   r(   r   r   r   r$   r   rm   s         rD   Ú
mpi_squarer†   Ç   s²   € Ø�F€BˆÜˆb”%ÔÜ�B˜˜D¤+Ó.ˆÜ�B˜˜D¤-Ó0ˆð ˆaˆ4€Kô 
�”EÔ	Ü�B˜˜D¤+Ó.ˆÜ�B˜˜D¤-Ó0ˆð ˆaˆ4€Kô	 �R‹[ˆÜ˜b "˜XÓ&‰ˆˆBÜˆÜ�B˜˜D¤-Ó0ˆØˆaˆ4€KrF   c                 óâ  — | \  }}|\  }}t        |«      }t        |«      }t        |«      }	t        |«      }
||cxk(  rdk(  r/n n,|	dk  r|
dkD  s
|	dk(  s|
dk(  rt        t        fS t        t        fS |	dk  r|
dkD  rt        t        fS |	dk  rt	        t        | «      t        |«      |«      S |	dk(  re|dk  r|dkD  rt        t        fS |	|
k(  rt        t        fS |dk\  rt        |||t        «      }t        }|dk  rt        }t        |||t        «      }fS |dk\  rFt        |||t        «      }t        |||t        «      }|t        k(  rt        }|t        k(  rt        }||fS |dk  rFt        |||t        «      }t        |||t        «      }|t        k(  rt        }|t        k(  rt        }||fS t        |||t        «      }t        |||t        «      }|t        k(  rt        }|t        k(  rt        }||fS rs   )
r   r   r   r   r   rq   r*   r   r   r   )r?   rK   r@   rA   rB   rS   rT   ru   rv   r‚   rƒ   r`   ra   s                rD   r   r   Ö   sð  € Ø�F€BˆØ�F€BˆÜ
�2‹,€CÜ
�2‹,€CÜ
�2‹,€CÜ
�2‹,€Cà
ˆc„�Q…à�!ŠG˜˜aš S¨A¢X°¸²Üœ$�;ÐÜ”eˆ|Ðð ˆQ‚w�3˜’7Ü”dˆ{Ðà
ˆQ‚wÜ”w˜q“z¤7¨1£:¨tÓ4Ð4ð ˆa‚xà�Š7�s˜Q’wÜœ$�;ÐØ�#Š:Üœ$�;Ðà�!Š8Ü˜˜B ¤kÓ2ˆAÜˆAØ�!Š8ÜˆAÜ˜˜B ¤mÓ4ˆAð, ˆaˆ4€Kð# �!Š8Ü˜˜B ¤kÓ2ˆAÜ˜˜B ¤mÓ4ˆAØ”DŠyœe˜!Ø”DŠyœd˜!ð ˆaˆ4€Kð �AŠXÜ˜˜B ¤kÓ2ˆAÜ˜˜B ¤mÓ4ˆAØ”DŠyœe˜!Ø”DŠyœe˜!ð ˆaˆ4€Kô	 ˜˜B ¤kÓ2ˆAÜ˜˜B ¤mÓ4ˆAØ”DŠyœe˜!Ø”DŠyœd˜!Øˆaˆ4€KrF   c                 óJ   — t        | t        «      }t        | t        «      }||fS rH   )r4   r   r   )r@   r`   ra   s      rD   Úmpi_pir‰     s#   € Üˆt”[Ó!€AÜˆt”]Ó#€AØˆaˆ4€KrF   c                 óX   — | \  }}t        ||t        «      }t        ||t        «      }||fS rH   )r0   r   r   rm   s         rD   Úmpi_expr‹     ó0   € Ø�F€Bˆä��Dœ+Ó&€AÜ��Dœ-Ó(€AØˆaˆ4€KrF   c                 óX   — | \  }}t        ||t        «      }t        ||t        «      }||fS rH   )r/   r   r   rm   s         rD   Úmpi_logrŽ     rŒ   rF   c                 óX   — | \  }}t        ||t        «      }t        ||t        «      }||fS rH   )r1   r   r   rm   s         rD   Úmpi_sqrtr�   $  s0   € Ø�F€Bˆä��Tœ;Ó'€AÜ��Tœ=Ó)€AØˆaˆ4€KrF   c                 óX   — | \  }}t        ||t        «      }t        ||t        «      }||fS rH   )r2   r   r   rm   s         rD   Úmpi_atanr’   +  s0   € Ø�F€BˆÜ��Tœ;Ó'€AÜ��Tœ=Ó)€AØˆaˆ4€KrF   c           	      ó€  — | \  }}|dk  r&t        t        t        ft        | | |dz   «      |«      S |dk(  rt        t        fS |dk(  r| S |dk(  rt        | |«      S |dz  r(t	        |||t
        «      }t	        |||t        «      }||fS t        |«      }t        |«      }|dk\  r(t	        |||t
        «      }t	        |||t        «      }||fS |dk  r(t	        |||t
        «      }t	        |||t        «      }||fS t        }t        |«      }t        ||«      rt	        |||t        «      }||fS t	        |||t        «      }||fS ©Nrt   é   r   é   )r   r   Úmpi_pow_intr†   r,   r   r   r   r   r$   r   )	r?   Únr@   rA   rB   r`   ra   ru   rv   s	            rD   r—   r—   1  s`  € Ø�F€BˆØˆ1‚uÜœœd�|¤[°°Q°B¸¸R¹Ó%@À$ÓGÐGØˆA‚vÜ”dˆ|ÐØˆA‚vØˆØˆA‚vÜ˜!˜TÓ"Ð"àˆ1‚uÜ˜˜A˜t¤[Ó1ˆÜ˜˜A˜t¤]Ó3ˆð, ˆaˆ4€Kô' �r‹lˆÜ�r‹lˆà�!Š8Ü˜B  4¬Ó5ˆAÜ˜B  4¬Ó7ˆAð ˆaˆ4€Kð �AŠXÜ˜B  4¬Ó5ˆAÜ˜B  4¬Ó7ˆAð ˆaˆ4€Kô ˆAä˜“ˆBÜ�b˜"Œ~Ü  A t¬]Ó;�ð ˆaˆ4€Kô    A t¬]Ó;�Øˆaˆ4€KrF   c                 ó  — |\  }}||k(  rP|t         t        fvrB|t        t        |«      «      k(  rt	        | t        |«      |«      S |t
        k(  rt        | |«      S t        | |dz   «      }t        |||dz   «      }t        ||«      S ©Nr•   )
r   r   r   r    r—   r   r�   rŽ   rz   r‹   )r?   rK   r@   rS   rT   ÚuÚvs          rD   Úmpi_powr�   V  s„   € Ø�F€BˆØ	ˆR‚x�Bœt¤U˜mÑ+Ø”œ& ›*Ó%Ò%Ü˜q¤&¨£*¨dÓ3Ð3Ø”Š;Ü˜A˜tÓ$Ð$Ü��4˜"‘9Ó€AÜ��1�d˜R‘iÓ €AÜ�1�dÓÐrF   c                 ó"   — t        | |«      r| S |S rH   )r   ©ÚxÚys     rD   ÚMINr¢   a  ó   € Üˆa�„|ØˆØ€HrF   c                 ó"   — t        | |«      r| S |S rH   )r   rŸ   s     rD   ÚMAXr¥   f  r£   rF   c                 óœ   — | \  }}}}| t         k(  rt        t         dfS t        | |«      \  }}t        ||||z   d«      \  }}	}
|rd|	z
  }	|||	fS )Nrt   é   rj   )r   r   r6   r5   )r    ÚwpÚsignÚmanÚexpÚbcÚcr?   rK   r˜   Úwp_s              rD   Úcos_sin_quadrantr¯   k  sd   € ØÑ€Dˆ#ˆs�BØŒE‚zÜ”U˜Aˆ~Ðä�q˜"Ó�D€A€qÜ˜˜S # b¡&¨"Ó-�I€A€qˆ#ÙØˆq‰DˆØˆa�ˆ7€NrF   c                 ó6  ‡‡‡— | \  }}||cxk(  r	t         k(  rn nt        t        ft         t         ffS t        | v st        | v rt        t        ft        t        ffS ‰dz   }t        ||«      \  }}}t        ||«      \  }}	}
t        ||g«      \  }}t        ||	g«      \  }}	||
k(  rnv|
|z
  dk\  rt        t        ft        t        ffS |dz  |
dz  k7  rt        }|dz
  dz  |
dz
  dz  k7  rt        }|dz
  dz  |
dz
  dz  k7  rt        }	|dz
  dz  |
dz
  dz  k7  rt        }t        t        |z  t        dz  z   | «      Št        t        |z  t        dz  z
  | «      Šˆˆˆfd„} ||t        «      } ||t        «      } ||t        «      } ||	t        «      }	||f||	ffS )Nr•   é   r–   r   é   é
   c                 ó˜   •— t        | d   «      |t        k(  k(  r‰}n‰}t        | |‰	|«      } | \  }}}}||z   dk\  r|rt        S t        S | S )Nrt   r   )Úboolr   r(   r   r   )
rœ   ÚroundingÚpr©   rª   r«   r¬   ÚlessÚmorer@   s
          €€€rD   Úfinalizezmpi_cos_sin.<locals>.finalize˜  s]   ø€ Ü��!‘‹:˜(¤kÑ1Ò2Ø‰AàˆAÜ�A�q˜$ Ó)ˆØÑˆˆc�3˜Øˆr‰6�QŠ;ÙÜ�ÜˆKØˆrF   )r   r   r   r   r   r¯   r   r-   r.   r   r   )r    r@   r`   ra   r¨   ÚcarA   ÚnaÚcbrB   Únbrº   r¸   r¹   s    `          @@rD   Úmpi_cos_sinr¿   v  s°  ú€ Ø�D€A€qØˆA„”…Ü”dˆ|œe¤U˜^Ð+Ð+ä�‰	”u ‘zÜ”tˆ}œu¤d˜mÐ+Ð+Ø	�‰€BÜ! ! RÓ(�J€BˆˆBÜ! ! RÓ(�J€BˆˆBÜ˜"˜b˜Ó"�F€BˆÜ˜"˜b˜Ó"�F€Bˆà	ˆR‚xØà	ˆb‰�AŠÜ”tˆ}œu¤d˜mÐ+Ð+ð ˆq‰5�B˜‘EŠ>ÜˆBàˆq‰D�1‰9˜˜A™ ™	Ò!ÜˆBàˆq‰D�1‰9˜˜A™ ™	Ò!ÜˆBàˆq‰D�1‰9˜˜A™ ™	Ò!ÜˆBäœ "™¬°"©Ñ5¸°sÓ;€DÜœ "™¬°"©Ñ5¸°sÓ;€Döñ 
�"”kÓ	"€BÙ	�"”mÓ	$€BÙ	�"”kÓ	"€BÙ	�"”mÓ	$€BØˆrˆ7�R˜�GÐÐrF   c                 ó    — t        | |«      d   S rs   ©r¿   ©r    r@   s     rD   Úmpi_cosrÃ   ª  ó   € Ü�q˜$Ó Ñ"Ð"rF   c                 ó    — t        | |«      d   S ©Nr   rÁ   rÂ   s     rD   Úmpi_sinrÇ   ­  rÄ   rF   c                 ó@   — t        | |dz   «      \  }}t        |||«      S rš   ©r¿   r   ©r    r@   ÚcosÚsins       rD   Úmpi_tanrÍ   °  ó%   € Ü˜1˜d 2™gÓ&�H€CˆÜ�3˜˜TÓ"Ð"rF   c                 ó@   — t        | |dz   «      \  }}t        |||«      S rš   rÉ   rÊ   s       rD   Úmpi_cotrÐ   ´  rÎ   rF   c                 ó|  — |dz   }t        | |t        «      }t        | |t        «      }t        ||t        «      }t        |t        «      sJ ‚|rIt        t        t        |«      t        |«      «      ||t        «      }t        |t        d«      |t        «      }t        |||t        «      }t        |||t        «      }||fS )Nr•   éd   )r"   r   r   r   r   r(   r¥   r#   r*   r   r'   r&   )	r    r¡   Úpercentr@   r¨   ÚxaÚxbr`   ra   s	            rD   Úmpi_from_str_a_brÖ   ¸  s¤   € Ø	�‰€BÜ	�!�RœÓ	%€BÜ	�!�RœÓ	'€Bä��BœÓ&€AÜ�!”UÔÐÐÙÜ”Cœ ›¤W¨R£[Ó1°1°b¼-ÓHˆÜ�A”x “} b¬-Ó8ˆÜ��A�tœ[Ó)€AÜ��A�tœ]Ó+€AØˆaˆ4€KrF   c                 ó¬  — t        d| z  «      }| j                  dd«      } |dz   }d| v r"| j                  d«      \  }}t        ||d|«      S d| v rf| d   dk(  sd	| vr|‚| j                  d	d«      } d}d
| v r| d   d
k7  r|‚d}| j                  d
d«      } | j                  d«      \  }}t        ||||«      S d| v röd| vsd| vr|‚| d   dk(  r^| j                  dd«      } | j                  dd«      } | j                  d«      \  }}t	        ||t
        «      }t	        ||t        «      }||fS | j                  d«      \  }}|j                  d«      \  }}	d| v r|	j                  d«      \  }	}n|	j                  d«      d}}	t	        ||z   |z   |t
        «      }t	        ||	z   |z   |t        «      }||fS t	        | |t
        «      }t	        | |t        «      }||fS )a  
    Parse an interval number given as a string.

    Allowed forms are

    "-1.23e-27"
        Any single decimal floating-point literal.
    "a +- b"  or  "a (b)"
        a is the midpoint of the interval and b is the half-width
    "a +- b%"  or  "a (b%)"
        a is the midpoint of the interval and the half-width
        is b percent of a (`a 	imes b / 100`).
    "[a, b]"
        The interval indicated directly.
    "x[y,z]e"
        x are shared digits, y and z are unequal digits, e is the exponent.

    z&Improperly formed interval number '%s'Ú Ú r•   ú+-FÚ(rt   Ú)Ú%rj   TÚ,r=   r>   Úe)Ú
ValueErrorÚreplaceÚsplitrÖ   r"   r   r   Úrstrip)
r?   r@   rß   r¨   r    r¡   rÓ   r`   ra   Úzs
             rD   Úmpi_from_strrå   Æ  s÷  € ô& 	Ð;¸aÑ?Ó@€AØ	�	‰	�#�rÓ€AØ	�‰€BØˆq�yØ�w‰w�t‹}‰ˆˆ1Ü  1 e¨TÓ2Ð2à	�‰àˆQ‰4�3Š;˜# Q™,ØˆGØ�I‰I�c˜2ÓˆØˆØ�!‰8Ø�‰u˜Š|Ø�ØˆGØ—	‘	˜#˜rÓ"ˆAØ�w‰w�s‹|‰ˆˆ1Ü  1 g¨tÓ4Ð4Ø	�‰Ø�q‰L˜c¨™lØˆGØˆQ‰4�3Š;à—	‘	˜#˜rÓ"ˆAØ—	‘	˜#˜rÓ"ˆAØ—7‘7˜3“<‰DˆAˆqÜ˜˜D¤+Ó.ˆAÜ˜˜D¤-Ó0ˆAØ�a�4ˆKð —7‘7˜3“<‰DˆAˆqØ—7‘7˜3“<‰DˆAˆqØ�a‰xØ—w‘w˜s“|‘�‘1à—x‘x “} b�1�Ü˜˜1™˜Q™ ¤kÓ2ˆAÜ˜˜1™˜Q™ ¤mÓ4ˆAØ�a�4ˆKä�Q˜œkÓ*ˆÜ�Q˜œmÓ,ˆØ�!ˆtˆrF   c           	      ó&  — t        |«      }|dz   }| \  }	}
t        | |«      }t        | |«      }t        |	|fi |¤Ž}t        |
|fi |¤Ž}t        ||fi |¤Ž}d}|rd}|\  }}|dk(  r't        t	        |d«      |fi |¤Ž}||z   dz   |z   |z   }|S |dk(  r_|t
        k(  rt
        }n5t        |t        d«      «      }t        |t        |t        d	«      «      |«      }||z   d
z   t        ||«      z   dz   }|S |dk(  r||z   dz   |z   |z   |z   }|S |dk(  �rw||k(  r t        |	|dz   fi |¤Ž}t        |
|dz   fi |¤Ž}|j                  d«      }	t        |	«      dk(  r|	j                  d«       |j                  d«      }
t        |
«      dk(  r|
j                  d«       |	d   |
d   k(  r¶|	d   |
d   k7  r|t        t        |	d   «      dz   «      D ]  }|	d   |   |
d   |   k7  sŒ n |	d   d |z   |	d   |d z   dz   |z   |
d   |d z   |z   dt        t        |	d   «      d«      z  z   |	d   z   }|S |	d   |z   |z   dt        t        |	d   «      d«      z  z   |	d   z   }|S |dj                  |	«      z   dz   |z   dj                  |
«      z   |z   }|S t        d|z  «      ‚)aÏ  
    Convert a mpi interval to a string.

    **Arguments**

    *dps*
        decimal places to use for printing
    *use_spaces*
        use spaces for more readable output, defaults to true
    *brackets*
        pair of strings (or two-character string) giving left and right brackets
    *mode*
        mode of display: 'plusminus', 'percent', 'brackets' (default) or 'diff'
    *error_dps*
        limit the error to *error_dps* digits (mode 'plusminus and 'percent')

    Additional keyword arguments are forwarded to the mpf-to-string conversion
    for the components of the output.

    **Examples**

        >>> from mpmath import mpi, mp
        >>> mp.dps = 30
        >>> x = mpi(1, 2)._mpi_
        >>> mpi_to_str(x, 2, mode='plusminus')
        '1.5 +- 0.5'
        >>> mpi_to_str(x, 2, mode='percent')
        '1.5 (33.33%)'
        >>> mpi_to_str(x, 2, mode='brackets')
        '[1.0, 2.0]'
        >>> mpi_to_str(x, 2, mode='brackets' , brackets=('<', '>'))
        '<1.0, 2.0>'
        >>> x = mpi('5.2582327113062393041', '5.2582327113062749951')._mpi_
        >>> mpi_to_str(x, 15, mode='diff')
        '5.2582327113062[4, 7]'
        >>> mpi_to_str(mpi(0)._mpi_, 2, mode='percent')
        '0.0 (0.0%)'

    r•   rÙ   rØ   Ú	plusminusrj   rÚ   rÓ   rÒ   r–   rÛ   z%)ÚbracketsrÞ   Údiffr²   rß   r   rt   Nz%'%s' is unknown mode for printing mpi)r   rk   rh   r!   r+   r   r(   r   r*   râ   ÚlenÚappendr   ÚminÚjoinrà   )r    rC   Ú
use_spacesrè   ÚmodeÚ	error_dpsÚkwargsr@   r¨   r`   ra   ÚmidÚdeltaÚa_strÚb_strÚmid_strÚspÚbr1Úbr2Ú	delta_strr?   r·   Úis                          rD   Ú
mpi_to_strrü     s&  € ôP �sÓ€DØ	�‰€BØ�D€A€qÜ
�!�TÓ
€CÜ�a˜Ó€EÜ�1�cÑ$˜VÑ$€EÜ�1�cÑ$˜VÑ$€EÜ�S˜#Ñ( Ñ(€GØ	€BÙØˆØ�H€CˆØˆ{ÒÜœ9 U¨2Ó.°Ñ>°vÑ>ˆ	Ø�b‰L˜4Ñ "Ñ$ yÑ0ˆðH €HðG 
�Ò	Ø”%Š<Ü‰Aô ˜œx¨›}Ó-ˆAÜ˜œ7 3¬°«Ó4°bÓ9ˆAØ�b‰L˜3Ñ¤¨¨9Ó!5Ñ5¸Ñ<ˆð8 €Hð7 
�Ò	Ø�%‰K˜#Ñ Ñ" UÑ*¨SÑ0ˆð4 €Hð3 
�‹à�EŠ>Ü˜1˜c !™eÑ. vÑ.ˆEÜ˜1˜c !™eÑ. vÑ.ˆEà�K‰K˜ÓˆÜˆq‹6�QŠ;Ø�H‰H�RŒLØ�K‰K˜ÓˆÜˆq‹6�QŠ;Ø�H‰H�RŒLØˆQ‰4�1�Q‘4Š<Ø�‰t�q˜‘tŠ|Ü¤ A a¡D£	¨A¡Ö.�AØ˜‘t˜A‘w ! A¡$ q¡'Ó)Ùð /ð �q‘T˜"˜1�X ‘^ a¨¡d¨1¨2 hÑ.°Ñ4°rÑ9¸A¸a¹DÀÀ¸HÑDÀsÑJØœ3œs 1 Q¡4›y¨!Ó,Ñ,ñ-Ø/0°©tñ4�ð €Hð �a‘D˜3‘J Ñ$ s¬3¬s°1°Q±4«y¸!Ó+<Ñ'<Ñ<¸qÀ¹tÑC�ð
 €Hð �c—h‘h˜q“kÑ! CÑ'¨"Ñ,¨s¯x©x¸«{Ñ:¸SÑ@ˆAð €Hô Ð@À4ÑGÓHÐHrF   c                 óJ   — | \  }}|\  }}t        |||«      t        |||«      fS rH   )rb   ©r    r¡   r@   r`   ra   r­   Úds          rD   Úmpci_addr   d  ó1   € Ø�D€A€qØ�D€A€qÜ�1�a˜Ó¤¨¨1¨dÓ 3Ð3Ð3rF   c                 óJ   — | \  }}|\  }}t        |||«      t        |||«      fS rH   )re   rþ   s          rD   Úmpci_subr  i  r  rF   c                 ó<   — | \  }}t        ||«      t        ||«      fS rH   )rq   ©r    r@   r`   ra   s       rD   Úmpci_negr  n  ó$   € Ø�D€A€qÜ�1�dÓœW Q¨Ó-Ð-Ð-rF   c                 ó<   — | \  }}t        ||«      t        ||«      fS rH   )rn   r  s       rD   Úmpci_posr	  r  r  rF   c                 ó²   — | \  }}|\  }}t        ||«      }t        ||«      }t        |||«      }	t        ||«      }
t        ||«      }t        |
||«      }|	|fS rH   )rz   re   rb   )r    r¡   r@   r`   ra   r­   rÿ   Úr1Úr2ÚreÚi1Úi2Úims                rD   Úmpci_mulr  v  se   € à�D€A€qØ�D€A€qÜ	��1‹€BÜ	��1‹€BÜ	��B�tÓ	€BÜ	��1‹€BÜ	��1‹€BÜ	��B�tÓ	€BØˆrˆ6€MrF   c                 ó&  — | \  }}|\  }}|dz   }t        |«      }t        |«      }	t        ||	|«      }
t        t        ||«      t        ||«      |«      }t        t        ||«      t        ||«      |«      }t	        ||
|«      }t	        ||
|«      }||fS rš   )r†   rb   rz   re   r   )r    r¡   r@   r`   ra   r­   rÿ   r¨   Úm1Úm2Úmr  r  s                rD   Úmpci_divr  ‚  s–   € à�D€A€qØ�D€A€qØ	ˆb‰€BÜ	�A‹€BÜ	�A‹€BÜ��2�bÓ€AÜ	”˜˜1“œw q¨›|¨RÓ	0€BÜ	”˜˜1“œw q¨›|¨RÓ	0€BÜ	��Q˜Ó	€BÜ	��Q˜Ó	€BØˆrˆ6€MrF   c                 óˆ   — | \  }}|dz   }t        ||«      }t        ||«      \  }}t        |||«      }t        |||«      }||fS rš   )r‹   r¿   rz   )r    r@   r`   ra   r¨   Úrr­   r?   s           rD   Úmpci_expr  �  sT   € Ø�D€A€qØ	ˆb‰€BÜ��2‹€AÜ�q˜"Ó�D€A€qÜ��1�dÓ€AÜ��1�dÓ€AØˆaˆ4€KrF   c                 ó<   — | \  }}t        ||«      t        ||«      fS rH   )r+   )r    r˜   r`   ra   s       rD   Ú	mpi_shiftr  ™  s"   € Ø�D€A€qÜ�Q�q‹>œ9 Q q›>Ð)Ð)rF   c                 ó²   — |dz   }t        | |«      }t        t        ||«      }t        |||«      }t	        |||«      }t        |d«      }t        |d«      }||fS )Nr•   rj   )r‹   r   Úmpi_onerb   re   r  )r    r@   r¨   Úe1Úe2r­   r?   s          rD   Úmpi_cosh_sinhr   �  sa   € à	ˆb‰€BÜ	��B‹€BÜ	”˜"˜bÓ	!€BÜ��B˜Ó€AÜ��B˜Ó€AÜ�!�RÓ€AÜ�!�RÓ€AØˆaˆ4€KrF   c                 ó    — | \  }}|dz   }t        ||«      \  }}t        ||«      \  }}t        |||«      }	t        |||«      }
|	t        |
«      fS ©Nr³   )r¿   r   rz   rq   ©r    r@   r`   ra   r¨   r­   r?   ÚchÚshr  r  s              rD   Úmpci_cosr&  ¨  s^   € Ø�D€A€qØ	ˆb‰€BÜ�q˜"Ó�D€A€qÜ˜1˜bÓ!�F€BˆÜ	��B˜Ó	€BÜ	��B˜Ó	€BØŒw�r‹{ˆ?ÐrF   c                 óŽ   — | \  }}|dz   }t        ||«      \  }}t        ||«      \  }}t        |||«      }	t        |||«      }
|	|
fS r"  )r¿   r   rz   r#  s              rD   Úmpci_sinr(  ±  sY   € Ø�D€A€qØ	ˆb‰€BÜ�q˜"Ó�D€A€qÜ˜1˜bÓ!�F€BˆÜ	��B˜Ó	€BÜ	��B˜Ó	€BØˆrˆ6€MrF   c                 óÀ   — | \  }}|t         k(  rt        |«      S |t         k(  rt        |«      S t        |«      }t        |«      }t        |||dz   «      }t	        ||«      S rš   )Úmpi_zerorx   r†   rb   r�   )r    r@   r`   ra   rK   s        rD   Úmpci_absr+  º  s^   € Ø�D€A€qØŒH‚}Ü�q‹zÐØŒH‚}Ü�q‹zÐä�1‹€AÜ�1‹€AÜ��1�d˜2‘gÓ€AÜ�A�tÓÐrF   c                 ó4  — | \  }}|\  }}||cxk(  r	t         k(  r$n n!t        |t         «      rt        S t        |«      S t        |t         «      rqt        |t         «      rt	        |||t
        «      }nt	        |||t
        «      }t        |t         «      rt	        |||t        «      }||fS t	        |||t        «      }||fS t        |t         «      rNt	        |||t        «      }t        |t         «      rt	        |||t
        «      }||fS t	        |||t
        «      }||fS t        |t         «      rNt	        |||t
        «      }t        |t         «      rt	        |||t        «      }||fS t	        |||t        «      }||fS t        |t        «      }t        |«      }||fS rH   )
r   r   r*  r‰   r3   r   r   r   r4   r$   )	r¡   r    r@   ÚyaÚybrÔ   rÕ   r`   ra   s	            rD   Ú	mpi_atan2r/  Æ  sŒ  € Ø�F€BˆØ�F€Bˆà	ˆRÔ”5ÕÜ�"”eÔÜˆOÜ�d‹|Ðäˆb”%ÔÜ�"”eÔÜ˜"˜b $¬Ó4‰Aä˜"˜b $¬Ó4ˆAÜ�"”eÔÜ˜"˜b $¬Ó6ˆAð* ˆaˆ4€Kô' ˜"˜b $¬Ó6ˆAð& ˆaˆ4€Kô# 
�”EÔ	Ü�b˜"˜d¤MÓ2ˆÜ�"”eÔÜ˜"˜b $¬Ó4ˆAð ˆaˆ4€Kô ˜"˜b $¬Ó4ˆAð ˆaˆ4€Kô 
�”EÔ	Ü�b˜"˜d¤KÓ0ˆÜ�"”eÔÜ˜"˜b $¬Ó6ˆAð ˆaˆ4€Kô ˜"˜b $¬Ó6ˆAð
 ˆaˆ4€Kô �4œÓ'ˆÜ�A‹JˆØˆaˆ4€KrF   c                 ó&   — | \  }}t        |||«      S rH   )r/  )rä   r@   r    r¡   s       rD   Úmpci_argr1  ì  s   € Ø�D€A€qÜ�Q˜˜4Ó Ð rF   c                 ó^   — | \  }}t        t        | |dz   «      |«      }t        | |«      }||fS rš   )rŽ   r+  r1  )rä   r@   r    r¡   r  r  s         rD   Úmpci_logr3  ð  s7   € Ø�D€A€qÜ	”˜!˜T "™WÓ% tÓ	,€BÜ	�!�TÓ	€BØˆrˆ6€MrF   c           	      ó  — |\  }}|t         k(  rM|\  }}||k(  rC|\  }}}	}
|r$|	dk\  rt        | d|z  t        ||	z  «      z  |«      S |t        k(  rt        | d|«      S |dz   }t	        t        |t        | |«      |«      |«      S )Nrt   rj   r•   )r*  Úmpci_pow_intÚintr   r  r  r3  )r    r¡   r@   ÚyreÚyimr-  r.  r©   rª   r«   r¬   r¨   s               rD   Úmpci_powr9  ö  s”   € à�H€CˆØ
Œh‚Ø‰ˆˆBØ�Š8Ø!#ÑˆD�#�s˜BÙ�s˜a’xÜ# A¨¨T¡z´C¸¸S¹³MÑ'AÀ4ÓHÐHà”UŠ{Ü# A q¨$Ó/Ð/Ø	ˆb‰€BÜ”H˜Q¤¨¨B£°Ó4°dÓ;Ð;rF   c                 ó„   — | \  }}t        t        |«      t        |«      |«      }t        |||«      }t        |d«      }||fS rÆ   )re   r†   rz   r  )r    r@   r`   ra   r  r  s         rD   Úmpci_squarer;    sD   € Ø�D€A€qä	”˜A“¤
¨1£¨tÓ	4€BÜ	��A�tÓ	€BÜ	�2�qÓ	€BØˆrˆ6€MrF   c           	      óR  — |dk  r&t        t        t        ft        | | |dz   «      |«      S |dk(  rt        t        fS |dk(  rt	        | |«      S |dk(  rt        | |«      S |dz   }t        t        f}|r+|dz  rt        || |«      }|dz  }t        | |«      } |dz  }|rŒ+t	        ||«      S r”   )r  r  r*  r5  r	  r;  r  )r    r˜   r@   r¨   Úresults        rD   r5  r5    sÃ   € Øˆ1‚uÜœ¤Ð*¬L¸¸Q¸BÀÀRÁÓ,HÈ$ÓOÐOØˆA‚vÜœÐ Ð ØˆA‚vÜ˜˜4Ó Ð ØˆA‚vÜ˜1˜dÓ#Ð#Ø	�‰€BÜ”xÐ €FÙ
ØˆqŠ5Ü˜f a¨Ó,ˆFØ�‰FˆAÜ˜˜2ÓˆØ	ˆa‰ˆò ô �F˜DÓ!Ð!rF   g#+VcØb÷?gÛVcØb÷?gš™™™™™ñ¿gš™™™™™ñ?c                 óL   — | \  }}|\  }}t        ||«      ryt        ||«      ryy)NFT)r   r   )r    r¡   r`   ra   r­   rÿ   s         rD   Úmpi_overlapr?  &  s-   € Ø�D€A€qØ�D€A€qÜˆa�„|˜EÜˆa�„|˜EØrF   c                 óÀ  — | \  }}|dz   }|dk(  rt        t        | t        |«      |d«      S t        |t        «      r�|dk(  r&t        ||t        «      }t        ||t        «      }||fS |dk(  r&t        ||t        «      }t        ||t        «      }||fS |dk(  r"t        ||t        «      }t        ||t        «      }fS t        |t        «      r‘t        |t        «      r�|dk(  r&t        ||t        «      }t        ||t        «      }||fS |dk(  r&t        ||t        «      }t        ||t        «      }||fS |dk(  r"t        ||t        «      }t        ||t        «      }fS t        | t        |«      }|dk(  rt        t        ||dz   d«      | |«      S |dk(  rt        t        ||dz   d«      | |«      S |dk(  r(t        t        ||dz   d«      t!        | |dz   «      |«      S fS )Nr•   r   rt   r–   r²   )Ú	mpi_gammarb   r  r   Úgamma_min_br7   r   r   r8   r9   r   r   Úgamma_min_ar   rz   re   rŽ   )	rä   r@   Útyper`   ra   r¨   r­   rÿ   Úznews	            rD   rA  rA  2  sü  € Ø�D€A€qØ	ˆb‰€Bàˆq‚yÜœ ¤G¨RÓ0°$¸Ó:Ð:ô ˆa”ÔØ�1Š9Ü˜!˜T¤;Ó/ˆAÜ˜!˜T¤=Ó1ˆAð0 ˆaˆ4€Kð/ �QŠYÜ˜1˜d¤KÓ0ˆAÜ˜1˜d¤MÓ2ˆAð* ˆaˆ4€Kð) �QŠYÜ˜Q ¤kÓ2ˆAÜ˜Q ¤mÓ4ˆAð$ ˆaˆ4€Kô! 
�”5Ô	œf Q¬Ô4Ø�1Š9Ü˜!˜T¤;Ó/ˆAÜ˜!˜T¤=Ó1ˆAð ˆaˆ4€Kð �QŠYÜ˜1˜d¤KÓ0ˆAÜ˜1˜d¤MÓ2ˆAð ˆaˆ4€Kð �QŠYÜ˜Q ¤kÓ2ˆAÜ˜Q ¤mÓ4ˆAð ˆaˆ4€Kô	 �qœ' 2Ó&ˆØ�1Š9œW¤Y¨t°T¸!±V¸QÓ%?ÀÀDÓIÐIØ�1Š9œW¤Y¨t°T¸!±V¸QÓ%?ÀÀDÓIÐIØ�1Š9œW¤Y¨t°T¸!±V¸QÓ%?ÄÈÈDÐQRÉFÓASÐUYÓZÐZØˆaˆ4€KrF   c                 óL  — | \  \  }}\  }}||cxk(  r	t         k(  r+n n(|dk7  st        |t         «      rt        | ||«      t        fS |dz   }|dk7  r|d   |d   z   }|d   |d   z   }	|t         k7  rt	        ||	«      }
n|	}
t        t        |«      «      }t        t        |«      «      }t	        ||«      }t	        d||
z  «      }|t        |«      z  }|dk(  r t        ||ft        |«      \  }}||f||ff} d}t        |t        «      rœt        ||ft        t        f«      r„t        ||ft        |«      ||ff}|dk(  rt        t!        ||dz   d«      | |«      S |dk(  rt#        t!        ||dz   d«      | |«      S |dk(  r(t%        t!        ||dz   d«      t'        | |dz   «      |«      S t)        |t         «      rMt+        ||f|t,        «      }t+        ||f|t.        «      }t+        ||f|t,        «      }t+        ||f|t.        «      }nÖt1        |t         «      rMt+        ||f|t,        «      }t+        ||f|t.        «      }t+        ||f|t,        «      }t+        ||f|t.        «      }nyt+        |t         f|t.        «      }t        t3        |«      |«      rt+        ||f|t.        «      }nt+        ||f|t.        «      }t+        ||f|t,        «      }t+        ||f|t,        «      }|d   |d   f|d   |d   ff}|dk(  rt5        |d   |«      t5        |d   |«      fS |dk(  rt7        |«      }t9        ||«      S )Nr²   r•   r–   rt   r   )r   r   rA  r*  ÚmaxÚabsr    r   rb   r  r   rB  r?  Úgamma_mono_imag_aÚgamma_mono_imag_br  Ú
mpci_gammar  r  r3  r   r:   r   r   r   r$   rn   r  r  )rä   r@   rD  Úa1Úa2Úb1Úb2r¨   ÚamagÚbmagÚmagÚanÚbnÚabsnÚ
gamma_sizerE  ÚminreÚmaxreÚminimÚmaximÚws                        rD   rK  rK  W  s6  € ØÑ�G€Rˆ‰Wˆb�ð 
ˆRÔ”5Õ˜d aši¬6°"´UÔ+;Ü˜˜D $Ó'¬Ð1Ð1ð 
ˆb‰€BØˆq‚yØ�!‰u�R˜‘U‰{ˆØ�!‰u�R˜‘U‰{ˆØ”Š;Ü�d˜D“/‰CàˆCÜ”˜“‹_ˆÜ”˜“‹_ˆÜ�2�r‹{ˆÜ˜˜4 ™8“_ˆ
Ø
Œh�zÓ"Ñ"ˆð ˆq‚yÜ˜2˜b˜'¤7¨BÓ/‰ˆˆB°b¸°W¸rÀ"¸gÐ5E°Øˆô ˆb”+ÔÜ˜˜2�wÔ!2Ô4EÐ FÔGô ˜B˜r˜7¤G¨RÓ0°2°b°'Ð9ˆDØ�qŠy¤¬*°T¸4À¹6À1Ó*EÀqÈ$Ó!OÐOØ�qŠy¤¬*°T¸4À¹6À1Ó*EÀqÈ$Ó!OÐOØ�qŠy¤¬*°T¸4À¹6À1Ó*EÄxÐPQÐRVÐWXÑRXÓGYÐ[_Ó!`Ð`ô
 ˆb”%ÔÜ˜b ˜W b¬+Ó6ˆÜ˜b ˜W b¬-Ó8ˆÜ˜b ˜W b¬+Ó6ˆÜ˜b ˜W b¬-Ó8‰ä	�”EÔ	Ü˜b ˜W b¬+Ó6ˆÜ˜b ˜W b¬-Ó8ˆÜ˜b ˜W b¬+Ó6ˆÜ˜b ˜W b¬-Ó8‰ô ˜b¤˜Z¨¬]Ó;ˆä”'˜"“+˜rÔ"Ü  " R ¨"¬mÓ<‰Eä  " R ¨"¬mÓ<ˆEÜ˜b ˜W b¬+Ó6ˆÜ˜b ˜W b¬+Ó6ˆà	ˆq‰�5˜‘8Ð˜u Q™x¨¨q©Ð2Ð2€AØˆq‚yÜ�q˜‘t˜TÓ"¤G¨A¨a©D°$Ó$7Ð7Ð7Øˆq‚yÜ�Q‹KˆÜ�A�tÓÐrF   c                 ó   — t        | |d¬«      S ©Nr²   ©rD  ©rA  ©rä   r@   s     rD   Úmpi_loggammara     s   € ¤)¨A¨t¸!Ô"<Ð<rF   c                 ó   — t        | |d¬«      S r]  ©rK  r`  s     rD   Úmpci_loggammard  ¡  s   € ¤:¨a°¸AÔ#>Ð>rF   c                 ó   — t        | |d¬«      S ©Nr–   r^  r_  r`  s     rD   Ú
mpi_rgammarg  £  s   € ¤	¨!¨T¸Ô :Ð:rF   c                 ó   — t        | |d¬«      S rf  rc  r`  s     rD   Úmpci_rgammari  ¤  s   € ¤¨A¨t¸!Ô!<Ð<rF   c                 ó   — t        | |d¬«      S ©Nr   r^  r_  r`  s     rD   Úmpi_factorialrl  ¦  s   € ¤9¨Q°¸1Ô#=Ð=rF   c                 ó   — t        | |d¬«      S rk  rc  r`  s     rD   Úmpci_factorialrn  §  s   € ¤J¨q°$¸QÔ$?Ð?rF   N)rt   )Tz[]rè   r±   )„Ú__doc__Úbackendr   Úlibmpfr   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.   Ú	libelefunr/   r0   r1   r2   r3   r4   r5   r6   Ú	gammazetar7   r8   r9   r:   rE   r*  r  rL   rO   rU   rX   rZ   r]   rb   re   rh   rk   rn   rq   rx   r|   r€   rz   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/  r1  r3  r9  r;  r5  rC  rB  Ú	gamma_minrI  rJ  r?  rA  rK  ra  rd  rg  ri  rl  rn  rI   rF   rD   Ú<module>ru     sí  ðñõ
 ÷÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ñ ÷÷ ó ÷
 IÓ Hò;ð �5ˆ>€Ø�ˆ,€òòòòò &Ú %óóò+ò?òóóò.$ò$óBóHò9òvò
òòòò#òJ	òò
ò
	ò2òh#ò#ò#ò#òò@óDZòx4ò
4ó
.ò.ò
òòò*ò	òòò
ò$òL!òò<òò"ñ& ˜Ó'€Ù˜Ó'€Ø˜+Ð&€	Ù˜tÓ$Ð Ù˜s“OÐ òó#óJGòR =Ú >â :Ú <â =Û ?rF   