+
    ik                     
   R t ^RIHt ^RIHtHtHtHtHtH	t	H
t
HtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t. ^RI/H0t0H1t1H2t2H3t3H4t4H5t5H6t6H7t7 ^RI8H9t9H:t:H;t;H<t< R t=]]3t>]]3t?R t@R tAR tBR	 tCR
 tDR tERIR ltFRIR ltGR tHR tIR tJRIR ltKRIR ltLR tMR tNRIR ltORIR ltPR tQR tRR tSR tTR tUR tVR tWR tXR tYR  tZR! t[R" t\R# t]R$ t^R% t_R& t`R' taR( tbRJR) ltcR* tdR+ teRIR, ltfR- tgR. thR/ tiR0 tjR1 tkR2 tlR3 tmR4 tnR5 toR6 tpR7 tqR8 trR9 tsR: ttR; tu]! R<4      tv]! R=4      tw]v]w3tx]! RK4      ty]! R>4      tzR? t{RIR@ lt|RIRA lt}RB t~RC tRD tRE tRF tRG tRH# )Lz3
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                 h    V w  r#\        V4      ^,           pR\        W$4      : R\        W44      : R2# )   [z, ])r	   r    )sprecsasbdpss   &&   s/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/mpmath/libmp/libmpi.pympi_strrD      s+    FB
d
a
C&/::    c                 
    W8H  # N r>   ts   &&rC   mpi_eqrK   )   	    6MrE   c                 
    W8g  # rG   rH   rI   s   &&rC   mpi_nerN   ,   rL   rE   c                 b    V w  r#Vw  rE\        W44      '       d   R # \        W%4      '       d   R# R# TFN)r   r   r>   rJ   r@   rA   tatbs   &&    rC   mpi_ltrT   /   )    FBFBb~~db~~erE   c                 b    V w  r#Vw  rE\        W44      '       d   R # \        W%4      '       d   R# R# rP   )r   r   rQ   s   &&    rC   mpi_lerW   6   rU   rE   c                     \        W4      # rG   )rT   rI   s   &&rC   mpi_gtrY   =       %rE   c                     \        W4      # rG   )rW   rI   s   &&rC   mpi_ger\   >   rZ   rE   c                     V w  r4Vw  rV\        W5V\        4      p\        WFV\        4      pV\        8X  d   \        pV\        8X  d   \
        pWx3# rG   )r%   r   r   r   r   r   	r>   rJ   r?   r@   rA   rR   rS   abs	   &&&      rC   mpi_addra   @   I    FBFBk*Am,ADye!Dyd!4KrE   c                     V w  r4Vw  rV\        W6V\        4      p\        WEV\        4      pV\        8X  d   \        pV\        8X  d   \
        pWx3# rG   )r&   r   r   r   r   r   r^   s	   &&&      rC   mpi_subrd   I   rb   rE   c                 ,    V w  r#\        W2V\        4      # rG   )r&   r   r>   r?   r@   rA   s   &&  rC   	mpi_deltarg   R   s    FB24**rE   c                 @    V w  r#\        \        W#V\        4      R4      # )   )r*   r%   r   rf   s   &&  rC   mpi_midrk   V   s    FBWRT=92>>rE   c                 P    V w  r#\        W!\        4      p\        W1\        4      pWE3# rG   )r$   r   r   r>   r?   r@   rA   r_   r`   s   &&    rC   mpi_posrn   Z   (    FB+&A-(A4KrE   c                 P    V w  r#\        W1\        4      p\        W!\        4      pWE3# rG   )r#   r   r   rm   s   &&    rC   mpi_negrq   `   ro   rE   c                 p   V w  r#\        V4      p\        V4      pV^ 8  d$   \        W!\        4      p\        W1\        4      pWg3# V^ 8  dJ   \        p\        V4      p\        W4      '       d   \        W1\        4      pWg3# \        W\        4      p Wg3# \        W1\        4      p\        W!\        4      pWg3#     )r   r$   r   r   r   r#   r   )	r>   r?   r@   rA   sassbsr_   r`   negsas	   &&       rC   mpi_absrx   f   s    FB
2,C
2,C
axBk*Bm, 4K 
%-0A 4K ]3A
 4K Bk*Bm,4KrE   c                     \        WV3V4      # rG   )mpi_mulr>   rJ   r?   s   &&&rC   mpi_mul_mpfr|   }       1!fd##rE   c                     \        WV3V4      # rG   )mpi_divr{   s   &&&rC   mpi_div_mpfr      r}   rE   c                    V w  r4Vw  rV\        V4      p\        V4      p\        V4      p	\        V4      p
Yxu;8X  d   ^ 8X  d2   M M.V\        8X  g   V\        8X  d   \        \        3# \        \        3# Yu;8X  d   ^ 8X  d2   M M.V\        8X  g   V\        8X  d   \        \        3# \        \        3# V^ 8  d   V	^ 8  dH   \	        W5V\
        4      p\	        WFV\        4      pV\        8X  d   \        pV\        8X  d   \        pW3# V
^ 8:  dH   \	        WEV\
        4      p\	        W6V\        4      pV\        8X  d   \        pV\        8X  d   \        pW3# \	        WEV\
        4      p\	        WFV\        4      pV\        8X  d   \        pV\        8X  d   \        pW3# V^ 8:  d   V	^ 8  dH   \	        W6V\
        4      p\	        WEV\        4      pV\        8X  d   \        pV\        8X  d   \        pW3# V
^ 8:  dH   \	        WFV\
        4      p\	        W5V\        4      pV\        8X  d   \        pV\        8X  d   \        pW3# \	        W6V\
        4      p\	        W5V\        4      pV\        8X  d   \        pV\        8X  d   \        pW3# \	        W54      \	        W64      \	        WE4      \	        WF4      .p\        V9   d   \        \        rW3# \        V4      w  r\        W\
        4      p\        W\        4      pW3# rs   )
r   r   r   r   r'   r   r   r   r   r$   )r>   rJ   r?   r@   rA   rR   rS   ru   rv   tastbsr_   r`   casess   &&&           rC   rz   rz      s   FBFB
2,C
2,C
2,C
2,C
Q;"*$;e|
Q;"*$;e|
ax!8k2Am4ADye!Dyd!V 4KS AXk2Am4ADye!Dye!J 4KE k2Am4ADye!Dyd!> 4K= 
!8k2Am4ADye!Dye!0 4K- AXk2Am4ADye!Dyd!$ 4K k2Am4ADye!Dyd! 4K '"/72?GBOT5=4q
 4K u%DA-A/A4KrE   c                 \   V w  r#\        V\        4      '       d&   \        W"V\        4      p\        W3V\        4      pWE3# \        V\        4      '       d&   \        W3V\        4      p\        W"V\        4      pWE3# \        V4      p\        W#.4      w  r#\        p\        W3V\        4      pWE3# rG   )r   r   r'   r   r   r   r#   r   rm   s   &&    rC   
mpi_squarer      s    FBb%BD+.BD-0 4K 
E		BD+.BD-0 4K	 R[bX&BD-04KrE   c                     V w  r4Vw  rV\        V4      p\        V4      p\        V4      p	\        V4      p
Yxu;8X  d   ^ 8X  d8   M M4V	^ 8  d   V
^ 8  g   V	^ 8X  g   V
^ 8X  d   \        \        3# \        \        3# V	^ 8  d   V
^ 8  d   \        \        3# V	^ 8  d    \	        \        V 4      \        V4      V4      # V	^ 8X  dm   V^ 8  d   V^ 8  d   \        \        3# W8X  d   \        \        3# V^ 8  d   \        W6V\        4      p\        pV^ 8:  d   \        p\        WFV\        4      pXX3# V^ 8  dH   \        W6V\        4      p\        WEV\        4      pV\        8X  d   \        pV\        8X  d   \        pW3# V^ 8:  dH   \        W5V\        4      p\        WFV\        4      pV\        8X  d   \        pV\        8X  d   \        pW3# \        W5V\        4      p\        WEV\        4      pV\        8X  d   \        pV\        8X  d   \        pW3# rs   )
r   r   r   r   r   rq   r)   r   r   r   )r>   rJ   r?   r@   rA   rR   rS   ru   rv   r   r   r_   r`   s   &&&          rC   r   r      s   FBFB
2,C
2,C
2,C
2,C
Q!GaSAX$;e| Qw37d{
Qwwqz71:t44 ax7sQw$;:$;!8k2AA!8Am4A, a4K# !8k2Am4ADye!Dyd! 4K AXk2Am4ADye!Dye! 4K	 k2Am4ADye!Dyd!4KrE   c                 H    \        V \        4      p\        V \        4      pW3# rG   )r3   r   r   )r?   r_   r`   s   &  rC   mpi_pir     s!    t[!At]#A4KrE   c                 P    V w  r#\        W!\        4      p\        W1\        4      pWE3# rG   )r/   r   r   rm   s   &&    rC   mpi_expr     (    FB+&A-(A4KrE   c                 P    V w  r#\        W!\        4      p\        W1\        4      pWE3# rG   )r.   r   r   rm   s   &&    rC   mpi_logr     r   rE   c                 P    V w  r#\        W!\        4      p\        W1\        4      pWE3# rG   )r0   r   r   rm   s   &&    rC   mpi_sqrtr   $  s(    FB;'A=)A4KrE   c                 P    V w  r#\        W!\        4      p\        W1\        4      pWE3# rG   )r1   r   r   rm   s   &&    rC   mpi_atanr   +  s(    FB;'A=)A4KrE   c           	         V w  r4V^ 8  d*   \        \        \        3\        W) V^,           4      V4      # V^ 8X  d   \        \        3# V^8X  d   V # V^8X  d   \        W4      # V^,          '       d&   \	        W1V\
        4      p\	        WAV\        4      pWV3# \        V4      p\        V4      pV^ 8  d&   \	        W1V\
        4      p\	        WAV\        4      pWV3# V^ 8:  d&   \	        WAV\
        4      p\	        W1V\        4      pWV3# \        p\        V4      p\        W44      '       d   \	        W1V\        4      pWV3# \	        WAV\        4      pWV3# rs   )r   r   mpi_pow_intr   r+   r   r   r   r   r#   r   )	r>   nr?   r@   rA   r_   r`   ru   rv   s	   &&&      rC   r   r   1  sB   FB1ud|[BR%@$GGAvd|AvAv!""1uut[1t]3, 4K' rlrl!8B45AB47A 4K AXB45AB47A 4K ABb~~t]; 4K  t];4KrE   c                 "   Vw  r4W48X  dW   V\         \        39  dF   V\        \        V4      4      8X  d   \	        V \        V4      V4      # V\
        8X  d   \        W4      # \        W^,           4      p\        WQV^,           4      p\        Wb4      #    )
r   r   r   r   r   r   r   r   rz   r   )r>   rJ   r?   rR   rS   uvs   &&&    rC   mpi_powr   V  sx    FB	xBtUm+&*%%q&*d33;A$$"9AdRi A1rE   c                 ,    \        W4      '       d   V # V# rG   )r   xys   &&rC   MINr   a      a||HrE   c                 ,    \        W4      '       d   V # V# rG   )r   r   s   &&rC   MAXr   f  r   rE   c                     V w  r#rEV \         8X  d   \        \         ^ 3# \        W4      w  rg\        W4WE,           ^4      w  rp
V'       d
   RV	,
          p	WgV	3# rt   rj   )r   r   r5   r4   )r   wpsignmanexpbccr>   rJ   r   wp_s   &&         rC   cos_sin_quadrantr   k  sT    DsEzUA~qDA#&"-IA#qD7NrE   c                   aaa V w  r#Y#u;8X  d   \         8X  d   M M\        \        3\         \         33# \        V 9   g   \        V 9   d   \        \        3\        \        33# S^,           p\        W$4      w  rVp\        W44      w  rp
\        WX.4      w  rX\        Wi.4      w  riWz8X  d   MW,
          ^8  d   \        \        3\        \        33# V^,          V
^,          8w  d   \        pV^,
          ^,          V
^,
          ^,          8w  d   \        pV^,
          ^,          V
^,
          ^,          8w  d   \        p	V^,
          ^,          V
^,
          ^,          8w  d   \        p\        \        V,          \        ^
,          ,           V) 4      o\        \        V,          \        ^
,          ,
          V) 4      oVVV3R lpV! V\        4      pV! V\        4      pV! V\        4      pV! V	\        4      p	WX3Wi33# )r   c                    < \        V ^ ,          4      V\        8H  8X  d   SpMSp\        WS	V4      p V w  r4rVWV,           ^8  d   V'       d   \        # \        # V # rs   )boolr   r'   r   r   )
r   roundingpr   r   r   r   lessmorer?   s
   &&     rC   finalizempi_cos_sin.<locals>.finalize  sU    !:(k12AAA$)36Q;KrE   )r   r   r   r   r   r   r   r,   r-   r   r   )r   r?   r_   r`   r   car@   nacbrA   nbr   r   r   s   &f          @@rC   mpi_cos_sinr   v  s   DAd|eU^++	uzt}udm++	B!!(JBB!!(JBB""FB""FB	x	At}udm++ q5BE>BqD19A	!BqD19A	!BqD19A	!B""5s;D""5s;D 
"k	"B	"m	$B	"k	"B	"m	$B7RGrE   c                 &    \        W4      ^ ,          # rs   r   r   r?   s   &&rC   mpi_cosr         q""rE   c                 &    \        W4      ^,          # ri   r   r   s   &&rC   mpi_sinr     r   rE   c                 B    \        W^,           4      w  r#\        W2V4      # r   r   r   r   r?   cossins   &&  rC   mpi_tanr         12g&HC3T""rE   c                 B    \        W^,           4      w  r#\        W#V4      # r   r   r   s   &&  rC   mpi_cotr     r   rE   c                    V^,           p\        W\        4      p\        W\        4      p\        W\        4      p\        V\        4      '       g   Q hV'       dI   \        \        \        V4      \        V4      4      W\        4      p\        V\        ^d4      V\        4      p\        WQV\        4      p\        WaV\        4      pWx3# r   )r!   r   r   r   r   r'   r   r"   r)   r   r&   r%   )	r   r   percentr?   r   xaxbr_   r`   s	   &&&&     rC   mpi_from_str_a_br     s    	B	!	%B	!	'B&A!UCWR[11-HAx}b-8t[)At]+A4KrE   c                   \        RV ,          4      pV P                  RR4      p V^,           pRV 9   d!   V P                  R4      w  rE\        WERV4      # RV 9   dv   V ^ ,          R8X  g   RV 9  d   VhV P                  RR4      p RpRV 9   d%   V R,          R8w  d   VhR	pV P                  RR4      p V P                  R4      w  rE\        WEWa4      # R
V 9   Ed   RV 9  g   RV 9  d   VhV ^ ,          R8X  d[   V P                  RR4      p V P                  RR4      p V P                  R
4      w  rx\	        Wq\
        4      p\	        W\        4      pWx3# V P                  R4      w  rEVP                  R
4      w  rYRV 9   d   V	P                  R4      w  rMV	P                  R4      Rr)\	        WE,           V,           V\
        4      p\	        WI,           V,           V\        4      pWx3# \	        W\
        4      p\	        W\        4      pWx3# )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'  +-F()%T,r<   r=   erj   )
ValueErrorreplacesplitr   r!   r   r   rstrip)
r>   r?   r   r   r   r   r   r_   r`   zs
   &&        rC   mpi_from_strr     s   & 	;a?@A			#rA	Bqywwt}eT22	Q43;#Q,GIIc2!8u|G		#r"Awws|g44	qLclGQ43;		#r"A		#r"A773<DA+.A-0A4K 773<DA773<DAaxwws|1xx}b1Qk2AQm4A4KQk*Qm,trE   c           	        \        V4      pV^,           pV w  r\        W4      p\        W4      p\        W3/ VB p\        W3/ VB p\        W3/ VB pRpV'       d   RpVw  ppVR8X  d8   \        \	        VR4      V3/ VB pVV,           R,           V,           V,           pV# VR8X  dr   V\
        8X  d   \
        pM5\        V\        ^d4      4      p\        V\        V\        ^4      4      V4      pVV,           R,           \        VV4      ,           R,           pV# VR8X  d(   VV,           R	,           V,           V,           V,           pV# VR
8X  Ed"   W8X  d'   \        W^,           3/ VB p\        W^,           3/ VB pVP                  R4      p	\        V	4      ^8X  d   V	P                  R4       VP                  R4      p
\        V
4      ^8X  d   V
P                  R4       V	^,          V
^,          8X  Ed6   V	^ ,          V
^ ,          8w  d   \        \        V	^ ,          4      ^,           4       F(  pV	^ ,          V,          V
^ ,          V,          8w  g   K(   M	  V	^ ,          RX V,           V	^ ,          VR ,           R	,           V,           V
^ ,          VR ,           V,           R\        \        V	^,          4      ^4      ,          ,           V	^,          ,           pV# V	^ ,          V,           V,           R\        \        V	^,          4      ^4      ,          ,           V	^,          ,           p V# VRP                  V	4      ,           R	,           V,           RP                  V
4      ,           V,           p V# \        RV,          4      h)aO  
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   	plusminusr   r   r   z%)bracketsr   diffr   Nz%'%s' is unknown mode for printing mpirj   )r   rk   rg   r    r*   r   r'   r   r)   r   lenappendr   minjoinr   )r   rB   
use_spacesr   mode	error_dpskwargsr?   r   r_   r`   middeltaa_strb_strmid_strspbr1br2	delta_strr>   r   is   &&&&&&,                rC   
mpi_to_strr     s   P sD	BDA
!
CaE1$V$E1$V$ES((G	BHC{9U2.>v>	bL4"$y0H HG 
	%<A x}-A734b9AbL39!55<8 H7 
	%K#"U*S04 H3 
>1!e.v.E1!e.v.EKKq6Q;HHRLKKq6Q;HHRLQ41Q4<tqt|AaD	A.AtAw!A$q') / qT"1X^ad12h.4r9AaDHDsJ3s1Q4y!,,-/0t4 H aD3J$s3s1Q4y!+<'<<qtC
 H chhqk!C'",sxx{:S@A H @4GHHrE   c                 B    V w  r4Vw  rV\        W5V4      \        WFV4      3# rG   )ra   r   r   r?   r_   r`   r   ds   &&&    rC   mpci_addr   d  )    DADA1d 333rE   c                 B    V w  r4Vw  rV\        W5V4      \        WFV4      3# rG   )rd   r   s   &&&    rC   mpci_subr   i  r   rE   c                 6    V w  r#\        W!4      \        W14      3# rG   )rq   r   r?   r_   r`   s   &&  rC   mpci_negr  n      DA1WQ---rE   c                 6    V w  r#\        W!4      \        W14      3# rG   )rn   r   s   &&  rC   mpci_posr  r  r  rE   c                     V w  r4Vw  rV\        W54      p\        WF4      p\        WxV4      p	\        W64      p
\        WE4      p\        WV4      pW3# rG   )rz   rd   ra   )r   r   r?   r_   r`   r   r   r1r2rei1i2ims   &&&          rC   mpci_mulr  v  sS    DADA	B	B	t	B	B	B	t	B6MrE   c                    V w  r4Vw  rVV^,           p\        V4      p\        V4      p	\        WV4      p
\        \        W54      \        WF4      V4      p\        \        WE4      \        W64      V4      p\	        WV4      p\	        WV4      pW3# r   )r   ra   rz   rd   r   )r   r   r?   r_   r`   r   r   r   m1m2mr  r  s   &&&          rC   mpci_divr    s    DADA	bB	AB	ABbA	wq|R	0B	wq|R	0B		B		B6MrE   c                     V w  r#V^,           p\        W$4      p\        W44      w  rg\        WVV4      p\        WWV4      pW#3# r   )r   r   rz   )r   r?   r_   r`   r   rr   r>   s   &&      rC   mpci_expr    sF    DA	bBAqDAdAdA4KrE   c                 6    V w  r#\        W!4      \        W14      3# rG   )r*   )r   r   r_   r`   s   &&  rC   	mpi_shiftr    s    DAQ>9Q>))rE   c                     V^,           p\        W4      p\        \        W24      p\        W4V4      p\	        W4V4      p\        VR4      p\        VR4      pWV3# )r   rj   )r   r   mpi_onera   rd   r  )r   r?   r   e1e2r   r>   s   &&     rC   mpi_cosh_sinhr    sW    	bB	B	"	!BAA!RA!RA4KrE   c                     V w  r#V^
,           p\        W$4      w  rV\        W44      w  rx\        WWV4      p	\        WhV4      p
V	\        V
4      3# 
   )r   r  rz   rq   r   r?   r_   r`   r   r   r>   chshr  r  s   &&         rC   mpci_cosr"    sP    DA	bBqDA1!FB		B		Bwr{?rE   c                     V w  r#V^
,           p\        W$4      w  rV\        W44      w  rx\        WgV4      p	\        WXV4      p
W3# r  )r   r  rz   r  s   &&         rC   mpci_sinr$    sI    DA	bBqDA1!FB		B		B6MrE   c                     V w  r#V\         8X  d   \        V4      # V\         8X  d   \        V4      # \        V4      p\        V4      p\        W#V^,           4      p\	        WA4      # r   )mpi_zerorx   r   ra   r   )r   r?   r_   r`   rJ   s   &&   rC   mpci_absr'    sX    DAH}qzH}qz1A1Ad2gAArE   c                 z   V w  r4Vw  rVY4u;8X  d   \         8X  d+   M M'\        V\         4      '       d   \        # \        V4      # \        V\         4      '       dy   \        V\         4      '       d   \	        W6V\
        4      pM\	        W5V\
        4      p\        V\         4      '       d   \	        WEV\        4      pWx3# \	        WFV\        4      p Wx3# \        V\         4      '       dQ   \	        W5V\        4      p\        V\         4      '       d   \	        WFV\
        4      pWx3# \	        W6V\
        4      p Wx3# \        V\         4      '       dQ   \	        WEV\
        4      p\        V\         4      '       d   \	        W6V\        4      pWx3# \	        WFV\        4      p Wx3# \        V\        4      p\        V4      pWx3# rG   )
r   r   r&  r   r2   r   r   r   r3   r#   )	r   r   r?   yaybr   r   r_   r`   s	   &&&      rC   	mpi_atan2r+    s|   FBFB	5"eOd|b%"e"$4A"$4A"e"$6A* 4K' "$6A& 4K# 
E		bdM2"e"$4A 4K "$4A 4K 
E		bdK0"e"$6A 4K "$6A
 4K 4'AJ4KrE   c                 "    V w  r#\        W2V4      # rG   )r+  )r   r?   r   r   s   &&  rC   mpci_argr-    s    DAQ4  rE   c                 ^    V w  r#\        \        W^,           4      V4      p\        W4      pWE3# r   )r   r'  r-  )r   r?   r   r   r  r  s   &&    rC   mpci_logr/    s/    DA	!"W%t	,B	!	B6MrE   c           	      2   Vw  r4V\         8X  da   Vw  rVWV8X  dW   Vw  rxrV'       d2   V	^ 8  d+   \        V RV,          \        W,          4      ,          V4      # V\        8X  d   \        V ^ V4      # V^,           p\	        \        V\        W4      V4      V4      # r   )r&  mpci_pow_intintr   r  r  r/  )r   r   r?   yreyimr)  r*  r   r   r   r   r   s   &&&         rC   mpci_powr5    s    HC
h8!#Dssax#ATzCM'A4HHU{#Aq$//	bBHQ4d;;rE   c                 ~    V w  r#\        \        V4      \        V4      V4      p\        W#V4      p\        V^4      pWE3# r   )rd   r   rz   r  )r   r?   r_   r`   r  r  s   &&    rC   mpci_squarer7    s>    DA	A
1t	4B	t	B	2q	B6MrE   c           	         V^ 8  d*   \        \        \        3\        W) V^,           4      V4      # V^ 8X  d   \        \        3# V^8X  d   \	        W4      # V^8X  d   \        W4      # V^,           p\        \        3pV'       d;   V^,          '       d   \        W@V4      pV^,          p\        W4      p V^,          pKB  \	        WB4      # rs   )r  r  r&  r1  r  r7  r  )r   r   r?   r   results   &&&  rC   r1  r1    s    1u*LBR,H$OOAv  Av  Av1##	Bx F
q55f,FFA	aF!!rE   g#+Vcb?gVcb?g?c                 b    V w  r#Vw  rE\        WR4      '       d   R # \        WC4      '       d   R # R# )FT)r   r   )r   r   r_   r`   r   r   s   &&    rC   mpi_overlapr;  &  s)    DADAa||Ea||ErE   c                    V w  r4V^,           pV^8X  d   \        \        V \        V4      V^ 4      # \        V\        4      '       d   V^ 8X  d$   \        W1\        4      p\        WA\        4      pWg3# V^8X  d$   \        WA\        4      p\        W1\        4      pWg3# V^8X  d!   \        W1\        4      p\        WA\        4      pXX3# \        V\        4      '       d   \        V\        4      '       d   V^ 8X  d$   \        WA\        4      p\        W1\        4      pWg3# V^8X  d$   \        W1\        4      p\        WA\        4      pWg3# V^8X  d!   \        WA\        4      p\        W1\        4      pXX3# \        V \        V4      pV^ 8X  d   \        \        W^,           ^ 4      W4      # V^8X  d   \        \        W^,           ^4      W4      # V^8X  d/   \        \        W^,           ^4      \!        W^,           4      V4      # XX3# r   )	mpi_gammara   r  r   gamma_min_br6   r   r   r7   r8   r   r   gamma_min_ar   rz   rd   r   )	r   r?   typer_   r`   r   r   r   znews	   &&&      rC   r=  r=  2  s   DA	bBqyGR0$:: a19!;/A!=1A0 4K/ QY1K0A1M2A* 4K) QYQk2AQm4A$ a4K! 
5		fQ4419!;/A!=1A 4K QY1K0A1M2A 4K QYQk2AQm4A a4K	 q'2&19WYt!VQ%?II19WYt!VQ%?II19WYt!VQ%?QRFASUYZZa4KrE   c                    V w  w  r4w  rVYVu;8X  d   \         8X  d3   M M/V^8w  g   \        V\         4      '       d   \        WV4      \        3# V^,           pV^8w  d   V^,          V^,          ,           pV^,          V^,          ,           p	V\         8w  d   \	        W4      p
MT	p
\        \        V4      4      p\        \        V4      4      p\	        W4      p\	        ^ W,          4      pV\        V4      ,          pV^8X  d   \        W43\        V4      w  r4W43WV33p ^ p\        V\        4      '       d   \        WV3\        \        34      '       d   \        W43\        V4      WV33pV^ 8X  d   \        \!        W^,           ^ 4      W4      # V^8X  d   \#        \!        W^,           ^4      W4      # V^8X  d/   \%        \!        W^,           ^4      \'        W^,           4      V4      # \)        V\         4      '       dJ   \+        W63V\,        4      p\+        WE3V\.        4      p\+        W53V\,        4      p\+        WF3V\.        4      pM\1        V\         4      '       dJ   \+        W53V\,        4      p\+        WF3V\.        4      p\+        WE3V\,        4      p\+        W63V\.        4      pM{\+        V\         3V\.        4      p\        \3        V4      V4      '       d   \+        W53V\.        4      pM\+        W63V\.        4      p\+        WE3V\,        4      p\+        WF3V\,        4      pV^ ,          V^ ,          3V^,          V^,          33pV^8X  d'   \5        V^ ,          V4      \5        V^,          V4      3# V^8X  d   \7        V4      p\9        VV4      # )   )r   r   r=  r&  maxabsr   r   ra   r  r   r>  r;  gamma_mono_imag_agamma_mono_imag_br  
mpci_gammar  r   r/  r   r9   r   r   r   r#   rn   r  r  )r   r?   r@  a1a2b1b2r   amagbmagmaganbnabsn
gamma_sizerA  minremaxreminimmaximws   &&&                  rC   rH  rH  W  s   GRWb 
5dai6"U+;+;$'11 
bBqy!uRU{!uRU{;d/CC__2{48_

hz"" qy2'7B/bWrg5E b+w!24E FGG B7GR02'9Dqy*T61*Eq!OOqy*T61*Eq!OOqy*T61*ExPQWXRXGY[_!``
 b%bWb+6bWb-8bWb+6bWb-8	E		bWb+6bWb-8bWb+6bWb-8 bZ];'"+r"" ""m<E ""m<EbWb+6bWb+6	q58uQxq22AqyqtT"GAaD$$777qyQKAtrE   c                     \        W^R7      # rC  r@  r=  r   r?   s   &&rC   mpi_loggammar^    s    )A!"<<rE   c                     \        W^R7      # rZ  rH  r]  s   &&rC   mpci_loggammara    s    :aA#>>rE   c                     \        W^R7      #    r[  r\  r]  s   &&rC   
mpi_rgammare    s    	! ::rE   c                     \        W^R7      # rc  r`  r]  s   &&rC   mpci_rgammarg    s    A!!<<rE   c                     \        W^R7      # ri   r[  r\  r]  s   &&rC   mpi_factorialrj    s    9Q1#==rE   c                     \        W^R7      # ri  r`  r]  s   &&rC   mpci_factorialrl    s    JqQ$??rE   Nrs   )Tz[]r      g)__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.   r/   r0   r1   r2   r3   r4   r5   	gammazetar6   r7   r8   r9   rD   r&  r  rK   rN   rT   rW   rY   r\   ra   rd   rg   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+  r-  r/  r5  r7  r1  r?  r>  	gamma_minrF  rG  r;  r=  rH  r^  ra  re  rg  rj  rl  rH   rE   rC   <module>rt     s  
              
 I H; 5>, & %+?.$$BH9v
#J	

	2h####@DZx4
4
..
*	
$L!<"& ''+&	t$ sO #JGR = > : < = ?rE   