ó
    ‰*£hûh  ã                   óÜ  • S r SSKrSSKJrJrJrJrJr  SSKJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9  SSK:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrIJJrJJKrKJLrLJMrMJNrNJOrOJPrPJQrQJRrR  \ \4rS\\4rT\!\4rU\"\4rV\#\$4rW\#\$\%4rXS rYS rZS	 r[S
\4S jr\S r]\4S jr^S r_\4S jr`\4S jraS\4S jrbS\4S jrc\4S jrdS\4S jreS rf\4S jrg\4S jrh\4S jri\4S jrj\4S jrk\4S jrl\4S jrm\4S jrn\4S jro\4S jrp\4S  jrq\4S! jrr\4S" jrs\4S# jrt\4S$ jruS% rv\4S& jrw\4S' jrx\4S( jry\4S) jrzS* r{\4S+ jr|\4S, jr}\4S- jr~\4S. jr\4S/ jr€\4S0 jr�\4S1 jr‚\4S2 jrƒ\4S3 jr„\4S4 jr…\4S5 jr†\4S6 jr‡\4S7 jrˆ\4S8 jr‰\4S9 jrŠ\" S:5      r‹\" S;5      rŒS< r�\4S= jrŽ\4S> jr�\4S? jr�\4S@ jr‘\4SA jr’\4SB jr“SISC jr”SISD jr•SISE jr–SISF jr—\SG:X  a&   SSK˜J™s  Jšs  J›rœ  \œRü                  r~\œRô                  rzgg! \�\ž4 a    \Ÿ" SH5         gf = f)Jz-
Low-level functions for complex arithmetic.
é    Né   )ÚMPZÚMPZ_ZEROÚMPZ_ONEÚMPZ_TWOÚBACKEND)1Úround_floorÚround_ceilingÚ
round_downÚround_upÚround_nearestÚ
round_fastÚbitcountÚbctableÚ	normalizeÚ
normalize1Úreciprocal_rndÚrshiftÚlshiftÚgiant_stepsÚnegative_rndÚto_strÚto_fixedÚfrom_man_expÚ
from_floatÚto_floatÚfrom_intÚto_intÚfzeroÚfoneÚftwoÚfhalfÚfinfÚfninfÚfnanÚfnoneÚmpf_absÚmpf_posÚmpf_negÚmpf_addÚmpf_subÚmpf_mulÚmpf_divÚmpf_mul_intÚ	mpf_shiftÚmpf_sqrtÚ	mpf_hypotÚmpf_rdiv_intÚ	mpf_floorÚmpf_ceilÚmpf_nintÚmpf_fracÚmpf_signÚmpf_hashÚComplexResult)Úmpf_piÚmpf_expÚmpf_logÚmpf_cos_sinÚmpf_cosh_sinhÚmpf_tanÚmpf_pow_intÚmpf_log_hypotÚmpf_cos_sin_piÚmpf_phiÚmpf_cosÚmpf_sinÚ
mpf_cos_piÚ
mpf_sin_piÚmpf_atanÚ	mpf_atan2Úmpf_coshÚmpf_sinhÚmpf_tanhÚmpf_asinÚmpf_acosÚ	mpf_acoshÚmpf_nthrootÚmpf_fibonaccic                 ó8   • U u  pU[         ;   a  gU[         ;   a  gg)z2Check if either real or imaginary part is infiniteTF)Ú_infs©ÚzÚreÚims      ÚP/home/mande/repo/quber/.venv/lib/python3.13/site-packages/mpmath/libmp/libmpc.pyÚ
mpc_is_infrY   )   s   € à�F€BØ	ŒUƒ{˜4Ø	ŒUƒ{˜4Øó    c                 ó8   • U u  pU[         ;   a  gU[         ;   a  gg)z9Check if either real or imaginary part is infinite or nanTF)Ú	_infs_nanrT   s      rX   Úmpc_is_infnanr]   0   s   € à�F€BØ	ŒYƒ˜tØ	ŒYƒ˜tØrZ   c                 óœ   • U u  p4[        X15      nUS   (       a  US-   [        [        U5      U40 UD6-   S-   $ US-   [        XA40 UD6-   S-   $ )Nr   z - Újz + )r   r)   )rU   ÚdpsÚkwargsrV   rW   Úrss         rX   Ú
mpc_to_strrc   7   s[   € Ø�F€BÜ	�‹€BØ	ˆ!‡uØ�E‰zœF¤7¨2£;°Ñ>°vÑ>Ñ>ÀÑDÐDà�E‰zœF 2Ñ5¨fÑ5Ñ5¸Ñ;Ð;rZ   Fc                 óJ   • U u  p4[        [        X1U5      [        XAU5      5      $ ©N)Úcomplexr   )rU   ÚstrictÚrndrV   rW   s        rX   Úmpc_to_complexri   ?   s$   € Ø�F€BÜ”8˜B¨Ó,¬h°rÀ3Ó.GÓHÐHrZ   c                 óJ  • [         R                  S:¼  aa  U u  p[        U5      [         R                  R                  [        U5      -  -   nUS[         R                  R
                  -  -  n[        U5      $  [        [        U SS95      $ ! [         a    [        U 5      s $ f = f)N)é   é   rl   T)rg   )
ÚsysÚversion_infor8   Ú	hash_infoÚimagÚwidthÚintÚhashri   ÚOverflowError)rU   rV   rW   Úhs       rX   Úmpc_hashrv   C   s‰   € Ü
×Ñ˜6Ó!Ø‰ˆÜ�R‹Lœ3Ÿ=™=×-Ñ-´¸³Ñ<Ñ<ˆà�”C—M‘M×'Ñ'Ñ'Ñ(ˆÜ�1‹vˆð	Üœ q°Ñ6Ó7Ð7øÜó 	Ü˜“7ŠNð	ús   Á7B
 Â
B"Â!B"c                 ó&   • U u  p4U[        XAU5      4$ re   ©r)   ©rU   Úprecrh   rV   rW   s        rX   Úmpc_conjugater{   P   s   € Ø�F€BØŒw�r Ó%Ð%Ð%rZ   c                 ó   • U [         :g  $ re   )Úmpc_zero)rU   s    rX   Úmpc_is_nonzeror~   T   s   € Ø”‰=ÐrZ   c                 óB   • U u  pEUu  pg[        XFX#5      [        XWX#5      4$ re   ©r*   ©rU   Úwrz   rh   ÚaÚbÚcÚds           rX   Úmpc_addr‡   W   ó)   € Ø�D€AØ�D€AÜ�1˜Ó#¤W¨Q°4Ó%=Ð=Ð=rZ   c                 ó&   • U u  pE[        XAX#5      U4$ re   r€   )rU   Úxrz   rh   rƒ   r„   s         rX   Úmpc_add_mpfr‹   \   ó   € Ø�D€AÜ�1˜Ó# QÐ&Ð&rZ   c                 óB   • U u  pEUu  pg[        XFX#5      [        XWX#5      4$ re   ©r+   r�   s           rX   Úmpc_subr�   `   rˆ   rZ   c                 ó&   • U u  pE[        XAX#5      U4$ re   rŽ   )rU   Úprz   rh   rƒ   r„   s         rX   Úmpc_sub_mpfr’   e   rŒ   rZ   c                 ó:   • U u  p4[        X1U5      [        XAU5      4$ re   )r(   ©rU   rz   rh   rƒ   r„   s        rX   Úmpc_posr•   i   ó"   € Ø�D€AÜ�1˜CÓ ¤'¨!°3Ó"7Ð7Ð7rZ   c                 ó:   • U u  p4[        X1U5      [        XAU5      4$ re   rx   r”   s        rX   Úmpc_negr˜   m   r–   rZ   c                 ó6   • U u  p#[        X!5      [        X15      4$ re   )r/   )rU   Únrƒ   r„   s       rX   Ú	mpc_shiftr›   q   s   € Ø�D€AÜ�Q‹?œI a›OÐ+Ð+rZ   c                 ó"   • U u  p4[        X4X5      $ )zAAbsolute value of a complex number, |a+bi|.
Returns an mpf value.)r1   r”   s        rX   Úmpc_absr�   u   s   € ð �D€AÜ�Q˜4Ó%Ð%rZ   c                 ó"   • U u  p4[        XCX5      $ )z3Argument of a complex number. Returns an mpf value.)rI   r”   s        rX   Úmpc_argrŸ   {   s   € à�D€AÜ�Q˜4Ó%Ð%rZ   c                 ó:   • U u  p4[        X1U5      [        XAU5      4$ re   )r3   r”   s        rX   Ú	mpc_floorr¡   €   s"   € Ø�D€AÜ�Q˜cÓ"¤I¨a°sÓ$;Ð;Ð;rZ   c                 ó:   • U u  p4[        X1U5      [        XAU5      4$ re   )r4   r”   s        rX   Úmpc_ceilr£   „   ó"   € Ø�D€AÜ�A˜SÓ!¤8¨A°SÓ#9Ð9Ð9rZ   c                 ó:   • U u  p4[        X1U5      [        XAU5      4$ re   )r5   r”   s        rX   Úmpc_nintr¦   ˆ   r¤   rZ   c                 ó:   • U u  p4[        X1U5      [        XAU5      4$ re   )r6   r”   s        rX   Úmpc_fracr¨   Œ   r¤   rZ   c                 ó    • U u  pEUu  pg[        XF5      n[        XW5      n	[        XG5      n
[        XV5      n[        X‰X#5      n[        X«X#5      nXÍ4$ )zº
Complex multiplication.

Returns the real and imaginary part of (a+bi)*(c+di), rounded to
the specified precision. The rounding mode applies to the real and
imaginary parts separately.
)r,   r+   r*   )rU   r‚   rz   rh   rƒ   r„   r…   r†   r‘   ÚqÚrÚsrV   rW   s                 rX   Úmpc_mulr­   ‘   sU   € ð �D€AØ�D€AÜ�‹€AÜ�‹€AÜ�‹€AÜ�‹€AÜ	��tÓ	!€BÜ	��tÓ	!€BØˆ6€MrZ   c                 ó„   • U u  p4[        X35      n[        XD5      n[        X4X5      n[        XVX5      n[        US5      n	X‰4$ ©Nr   )r,   r+   r/   )
rU   rz   rh   rƒ   r„   r‘   rª   r«   rV   rW   s
             rX   Ú
mpc_squarer°   £   sE   € à�D€AÜ�‹€AÜ�‹€AÜ��TÓ€AÜ	��tÓ	!€BÜ	�1�a‹€BØˆ6€MrZ   c                 ó@   • U u  pE[        XAX#5      n[        XQX#5      nXg4$ re   )r,   ©rU   r‘   rz   rh   rƒ   r„   rV   rW   s           rX   Úmpc_mul_mpfr³   ­   s(   € Ø�D€AÜ	��tÓ	!€BÜ	��tÓ	!€BØˆ6€MrZ   c                 óR   • U u  pE[        [        XQX#5      5      n[        XAX#5      nXg4$ )z:
Multiply the mpc value z by I*x where x is an mpf value.
)r)   r,   )rU   rŠ   rz   rh   rƒ   r„   rV   rW   s           rX   Úmpc_mul_imag_mpfrµ   ³   s/   € ð �D€AÜ	”˜˜tÓ)Ó	*€BÜ	��tÓ	!€BØˆ6€MrZ   c                 ó@   • U u  pE[        XAX#5      n[        XQX#5      nXg4$ re   )r.   )rU   rš   rz   rh   rƒ   r„   rV   rW   s           rX   Úmpc_mul_intr·   ¼   s(   € Ø�D€AÜ	�Q˜4Ó	%€BÜ	�Q˜4Ó	%€BØˆ6€MrZ   c                 ó  • U u  pEUu  pgUS-   n[        [        Xf5      [        Xw5      U5      n	[        [        XF5      [        XW5      U5      n
[        [        XV5      [        XG5      U5      n[        X©X#5      [        X¹X#5      4$ ©Né
   )r*   r,   r+   r-   )rU   r‚   rz   rh   rƒ   r„   r…   r†   ÚwpÚmagÚtÚus               rX   Úmpc_divr¿   Â   st   € Ø�D€AØ�D€AØ	�‰€Bä
”'˜!“-¤¨£°Ó
3€Cä”˜“œg a›l¨BÓ/€AÜ”˜“œg a›l¨BÓ/€AÜ�1˜Ó"¤G¨A°$Ó$;Ð;Ð;rZ   c                 ó@   • U u  pE[        XAX#5      n[        XQX#5      nXg4$ )zCalculate z/p where p is real)r-   r²   s           rX   Úmpc_div_mpfrÁ   Í   s(   € à�D€AÜ	��tÓ	!€BÜ	��tÓ	!€BØˆ6€MrZ   c                 ó–   • U u  p4[        [        X35      [        XD5      US-   5      n[        X5X5      n[        [        XEX5      5      nXg4$ )zCalculate 1/z efficientlyrº   ©r*   r,   r-   r)   )rU   rz   rh   rƒ   r„   ÚmrV   rW   s           rX   Úmpc_reciprocalrÅ   Ô   sG   € à�D€AÜ”˜“œW Q›\¨$¨r©'Ó2€AÜ	��tÓ	!€BÜ	”˜˜tÓ)Ó	*€BØˆ6€MrZ   c                 ó¾   • Uu  pE[        [        XD5      [        XU5      US-   5      n[        [        X@5      XbU5      n[        [        [        XP5      5      XbU5      nXx4$ )z)Calculate p/z where p is real efficientlyrº   rÃ   )	r‘   rU   rz   rh   rƒ   r„   rÄ   rV   rW   s	            rX   Úmpc_mpf_divrÇ   Ü   sS   € à�D€AÜ”˜“œW Q›\¨4°©7Ó3€AÜ	”˜“˜q¨Ó	,€BÜ	”œ ›Ó&¨°Ó	5€BØˆ6€MrZ   c                 óš   • SnSnU(       a>  US-  (       a  X0-  XA-  -
  X@-  X1-  -   pCUS-  nX -  X-  -
  SU -  U-  pUS-  nU(       a  M>  X44$ )zcComplex integer power: computes (a+b*I)**n exactly for
nonnegative n (a and b must be Python ints).r   r   rl   © )rƒ   r„   rš   ÚwreÚwims        rX   Úcomplex_int_powrÌ   ä   sh   € ð €CØ
€CÞ
Øˆq�5Ø‘u˜s™u‘} c¡e¨c©e¡m�Ø�‰FˆAØ‰s�Q‘S‰y˜!˜A™#˜a™%ˆ1Ø	ˆa‰ˆ÷ ˆ!ð ˆ8€OrZ   c           	      ó„   • US   [         :X  a  [        XS   X#5      $ [        [        [	        XS-   5      XS-   5      X#5      $ )Nr   r   rº   )r   Úmpc_pow_mpfÚmpc_expr­   Úmpc_log)rU   r‚   rz   rh   s       rX   Úmpc_powrÑ   ñ   s?   € Øˆ�tŒuƒ}Ü˜1 ™d DÓ.Ð.Ü”7œ7 1¨2¡gÓ.°¸±7Ó;¸TÓGÐGrZ   c           	      óÚ   • Uu  pEpgUS:¼  a  [        U SU-  XV-  -  X#5      $ US:X  a!  [        XS-   5      n[        USU-  U-  X#5      $ [        [        [	        XS-   5      XS-   5      X#5      $ )Nr   éÿÿÿÿrº   )Úmpc_pow_intÚmpc_sqrtrÏ   r³   rÐ   )	rU   r‘   rz   rh   ÚpsignÚpmanÚpexpÚpbcÚsqrtzs	            rX   rÎ   rÎ   ö   s{   € ØÑ€E�ØˆqƒyÜ˜1˜r E™k¨T©ZÑ8¸$ÓDÐDØˆrƒzÜ˜ ™GÓ$ˆÜ˜5 2¨¡+°Ñ"4°dÓ@Ð@Ü”;œw q¨r©'Ó2°A¸B±wÓ?ÀÓKÐKrZ   c           	      óP  • U u  pEU[         :X  a  [        XAX#5      [         4$ U[         :X  a[  [        XQX#5      nUS-  nUS:X  a  U[         4$ US:X  a  [         U4$ US:X  a  [        U5      [         4$ US:X  a  [         [        U5      4$ US:X  a  [        $ US:X  a  [	        XU5      $ US:X  a  [        XU5      $ US:X  a  [        XU5      $ US:  a  [        [        X* US-   5      X#5      $ Uu  pxpšUu  p¼pÞU(       a  U* nU(       a  U* nX�-
  n[        U5      nUU[        X®5      -   -  nUS:  aW  US:”  a  X�-  nUn	OXÏ* -  nU	n[        XŒU5      u  nn[        U[        X-  5      X#5      n[        U[        X-  5      X#5      nUU4$ [        [        [        XS-   5      XS-   5      X#5      $ )	Né   r   r   rl   rk   rÓ   i'  rº   )r   r@   r)   Úmpc_oner•   r°   rÅ   rÔ   ÚabsÚmaxrÌ   r   rr   rÏ   r·   rÐ   )rU   rš   rz   rh   rƒ   r„   ÚvÚasignÚamanÚaexpÚabcÚbsignÚbmanÚbexpÚbbcÚdeÚabs_deÚ
exact_sizerV   rW   s                       rX   rÔ   rÔ   ÿ   sÂ  € Ø�D€AØŒEƒzÜ˜1 Ó+¬UÐ2Ð2ØŒEƒzÜ˜˜dÓ(ˆØ	ˆQ‰ˆØ�‹6Ø”e�8ˆOØ�!‹VÜ˜!�8ˆOØ�!‹VÜ˜1“:œuÐ$Ð$Ø�!‹VÜœ' !›*Ð$Ð$ØˆAƒv”gˆ~ØˆAƒv”g˜a sÓ+Ð+ØˆAƒv”j ¨#Ó.Ð.ØˆBƒw”~ a¨sÓ3Ð3Øˆ1ƒu”^¤K°°2°t¸A±vÓ$>ÀÓJÐJØÑ€E�ØÑ€E�Þ�d�UˆdÞ�d�UˆdØ	‰€BÜ�‹W€FØ�FœS ›]Ñ*Ñ+€JØ�EÓØ�‹6Ø‰KˆDØ‰Dà�c‰NˆDØˆDÜ  ¨QÓ/‰ˆˆBÜ˜"œc !¡&›k¨4Ó5ˆÜ˜"œc !¡&›k¨4Ó5ˆØ�2ˆvˆÜ”;œw q¨r©'Ó2°A¸B±wÓ?ÀÓKÐKrZ   c                 ó`  • U u  p4U[         :X  aH  U[         :X  a  X44$ US   (       a  [        [        U5      X5      n[         U4$ [        X1U5      nU[         4$ US-   nUS   (       dU  [        [	        X44U5      X75      n[        US5      n	[        X‘U5      n[        US5      n
[        X§5      n[        XKX5      nXe4$ [        [	        X44U5      X75      n[        US5      n	[        X‘U5      n[        US5      n
[        X§5      n[        XKX5      nUS   (       a  [        U5      n[        U5      nXe4$ )z�Complex square root (principal branch).

We have sqrt(a+bi) = sqrt((r+a)/2) + b/sqrt(2*(r+a))*i where
r = abs(a+bi), when a+bi is not a negative real number.r   é   rÓ   r   )r   r0   r)   r*   r�   r/   r-   r+   )rU   rz   rh   rƒ   r„   rW   rV   r»   r½   r¾   rà   r‚   s               rX   rÕ   rÕ   '  s,  € ð
 �D€AØŒEƒzØ”‹:Ø�6ˆMàˆQ�4Üœ' !›* dÓ0ˆBÜ˜2�;Ðä˜! 3Ó'ˆBØœ�;ÐØ	ˆb‰€BØˆQ�4Ü”W˜a˜V RÓ(¨!Ó0ˆÜ�a˜ÓˆÜ�a˜sÓ#ˆÜ�a˜‹OˆÜ�a‹_ˆÜ�Q˜4Ó%ˆð ˆ6€Mô ”G˜Q˜F BÓ'¨Ó/ˆÜ�a˜ÓˆÜ�a˜sÓ#ˆÜ�a˜‹OˆÜ�a‹_ˆÜ�Q˜4Ó%ˆØˆQ�4Ü˜“ˆBÜ˜“ˆBØˆ6€MrZ   c                 óº  • Sn[        [        XX$-  -
  5      5      n[        [        XX$-  -
  5      5      n USU-  -   SU-  -  nUR                  nUR                  n	[	        [        U5      5      n[	        [        U	5      5      n	SnUnUn[        XCU-   5       HÔ  n[        X‰US-
  5      u  nn[        UUS-
  U-  U-
  U-
  5      n[        UUS-
  U-  U-
  U-
  5      nUU-  UU-  -   Xþ-   -	  n[        XU-
  5      n[        XU-
  5      nUU-  UU-  -   U-	  nU* U-  UU-  -   U-	  nUU-  U-  nUU-  U-  nUUS-
  [        X�U-
  5      -  -   U-  nUUS-
  [        XŸU-
  5      -  -   U-  n	UnMÖ     X‰4$ ! [
         a]    [        XT5      n[        Xd5      n[        U5      n
[        SX¤5      n[        XV4U[        4U5      u  p‰[        U5      n[        U	5      n	 GNUf = f)Né2   y              ð?g      ð?r   rº   )rr   r   Úrealrp   r   rt   r   r2   rÑ   r   r   r   rÌ   r   )rƒ   r„   rš   rz   ÚstartÚa1Úb1r«   rV   rW   ÚfnÚnthÚextraÚprevpÚextra1r‘   Úre2Úim2Úr4ÚapÚbpÚrecÚimcÚrebÚimbs                            rX   Úmpc_nthroot_fixedr  K  s  € à€EÜ	ŒV�A˜a™g‘~Ó&Ó	'€BÜ	ŒV�A˜a™g‘~Ó&Ó	'€BðØ�"�r‘'‰\˜S ™UÑ#ˆØ�V‰VˆØ�V‰VˆÜ”�R“‹\ˆÜ”�R“‹\ˆð €EØ€EØ€FÜ˜ U¡
Ö+ˆä" 2¨1¨Q©3Ó/‰ˆˆSÜ�S˜1˜Q™3 ™+¨™/¨FÑ2Ó3ˆÜ�S˜1˜Q™3 ™+¨™/¨FÑ2Ó3ˆØ�#‰g˜˜C™Ñ Q¡ZÑ0ˆÜ�A˜a‘xÓ ˆÜ�A˜a‘xÓ ˆØ�C‰x˜"˜s™(Ñ" qÑ(ˆØˆs�S‰y˜2 ™8Ñ#¨Ñ)ˆØ�a‰x˜BÑˆØ�a‰x˜BÑˆØ�Q�q‘Sœ&  u¡WÓ-Ñ-Ñ-°Ñ1ˆØ�Q�q‘Sœ&  u¡WÓ-Ñ-Ñ-°Ñ1ˆØŠñ ,ð ˆ6€Møô5 ó Ü�bÓ ˆÜ�bÓ ˆÜ�a‹[ˆÜ˜1˜bÓ(ˆÜ˜"˜ C¬ <°Ó7‰ˆÜ�B‹ZˆÜ�B‹Z‹ðús   ¶AE3 Å3A#GÇGc                 ó>  • U u  pEUS   S:X  a  U[         :X  a  [        XAX#5      nU[         4$ US:  ab  US:X  a  [        $ US:X  a  [        XE4X#5      $ US:X  a  [	        [        XE4X#5      $ [        XE4U* US-   [        U   5      n[	        [        XrU5      $ US::  a”  [        SUS-   -  5      nUu  pšp¼Uu  pÞnn[        XE4U5      nUS	   US   -   S
:”  a\  US	   US   -   U:  aM  [        XH5      n[        XX5      n[        UUX5      u  nnSn[        Xh* U-
  Xƒ5      n[        UU* U-
  Xƒ5      nUU4$ [        U5      nUS-   S-   n[        SUU5      n[        XE4U[         4Xƒ5      u  nn[        US   US   US   US   X#5      n[        US   US   US   US   X#5      nUU4$ )ze
Complex n-th root.

Use Newton method as in the real case when it is faster,
otherwise use z**(1/n)
r   rl   r   rÓ   é   rí   g333333ó?rº   éþÿÿÿiöÿÿÿrk   )r   rP   rÝ   r•   r¿   Úmpc_nthrootr   rr   r�   r   r  r   r   r2   rÑ   r   )rU   rš   rz   rh   rƒ   r„   rV   ÚinverseÚprec2rá   râ   rã   rä   rå   ræ   rç   rè   ÚpfÚafÚbfrW   rö   rô   rõ   s                           rX   r  r  r  sç  € ð �D€AØˆ�tˆqƒy�Qœ%“ZÜ˜˜tÓ)ˆØ”Eˆ{ÐØˆ1ƒuØ�‹6ÜˆNØ�‹6Ü˜A˜6 4Ó-Ð-Ø�‹7Üœ7 Q F¨DÓ6Ð6Ü˜q˜f q b¨$¨q©&´.ÀÑ2EÓFˆÜ”w ¨sÓ3Ð3ØˆBƒwÜ�C˜4 "™9Ñ%Ó&ˆØ!"Ñˆ�TØ!"Ñˆ�T˜3Ü�a�U˜DÓ!ˆØˆb‰6�B�r‘F‰?˜SÓ  b¨¡f¨r°"©v¡o¸Ó&<Ü˜!Ó#ˆBÜ˜!Ó#ˆBÜ& r¨2¨qÓ8‰FˆB�ØˆEÜ˜b &¨¡,°Ó;ˆBÜ˜b 5 &¨¡,°Ó;ˆBØ�r�6ˆMÜ	�!‹€BØ�‰G�b‰L€EÜ
�q˜"˜eÓ
$€CÜ�a�V˜c¤5˜\¨5Ó6�F€BˆÜ	�2�a‘5˜"˜Q™%  A¡¨¨1©¨tÓ	9€BÜ	�2�a‘5˜"˜Q™%  A¡¨¨1©¨tÓ	9€BØˆrˆ6€MrZ   c                 ó   • [        U SX5      $ )z
Complex cubic root.
rk   )r  ©rU   rz   rh   s      rX   Úmpc_cbrtr  ›  s   € ô �q˜!˜TÓ'Ð'rZ   c                 óä   • U u  p4U[         :X  a  [        XAU5      $ U[         :X  a  [        X1U5      [         4$ [        X1S-   U5      n[        XAS-   U5      u  pg[        XVX5      n[        XWX5      n	X‰4$ )aJ  
Complex exponential function.

We use the direct formula exp(a+bi) = exp(a) * (cos(b) + sin(b)*i)
for the computation. This formula is very nice because it is
pefectly stable; since we just do real multiplications, the only
numerical errors that can creep in are single-ulp rounding errors.

The formula is efficient since mpmath's real exp is quite fast and
since we can compute cos and sin simultaneously.

It is no problem if a and b are large; if the implementations of
exp/cos/sin are accurate and efficient for all real numbers, then
so is this function for all complex numbers.
rÜ   )r   r=   r;   r,   )
rU   rz   rh   rƒ   r„   r¼   r…   r¬   rV   rW   s
             rX   rÏ   rÏ   ¡  sy   € ð  �D€AØŒEƒzÜ˜1 CÓ(Ð(ØŒEƒzÜ�q Ó$¤eÐ+Ð+Ü
�!˜!‘V˜SÓ
!€CÜ�q˜q™& #Ó&�D€AÜ	�˜Ó	#€BÜ	�˜Ó	#€BØˆ6€MrZ   c                 óF   • [        U S   U S   X5      n[        XU5      nX44$ )Nr   r   )rA   rŸ   ry   s        rX   rÐ   rÐ   ¼  s+   € Ü	�q˜‘t˜Q˜q™T 4Ó	-€BÜ	�˜#Ó	€BØˆ6€MrZ   c                 ó  • U u  p4U[         :X  a  [        X1U5      [         4$ U[         :X  a  [        XAU5      [         4$ US-   n[        X55      u  pg[	        XE5      u  p‰[        XhX5      n
[        XyX5      nU
[        U5      4$ )a?  Complex cosine. The formula used is cos(a+bi) = cos(a)*cosh(b) -
sin(a)*sinh(b)*i.

The same comments apply as for the complex exp: only real
multiplications are pewrormed, so no cancellation errors are
possible. The formula is also efficient since we can compute both
pairs (cos, sin) and (cosh, sinh) in single stwps.é   )r   rD   rJ   r=   r>   r,   r)   ©rU   rz   rh   rƒ   r„   r»   r…   r¬   ÚchÚshrV   rW   s               rX   Úmpc_cosr  Á  s„   € ð �D€AØŒEƒzÜ�q Ó$¤eÐ+Ð+ØŒEƒzÜ˜ Ó%¤uÐ,Ð,Ø	�‰€BÜ�qÓ�D€AÜ˜1Ó!�F€BÜ	�˜Ó	"€BÜ	�˜Ó	"€BØŒw�r‹{ˆ?ÐrZ   c                 óî   • U u  p4U[         :X  a  [        X1U5      [         4$ U[         :X  a  [         [        XAU5      4$ US-   n[        X55      u  pg[	        XE5      u  p‰[        XxX5      n
[        XiX5      nX«4$ )z{Complex sine. We have sin(a+bi) = sin(a)*cosh(b) +
cos(a)*sinh(b)*i. See the docstring for mpc_cos for additional
comments.r  )r   rE   rK   r=   r>   r,   r  s               rX   Úmpc_sinr  Õ  s}   € ð �D€AØŒEƒzÜ�q Ó$¤eÐ+Ð+ØŒEƒzÜ”h˜q¨Ó,Ð,Ð,Ø	�‰€BÜ�qÓ�D€AÜ˜1Ó!�F€BÜ	�˜Ó	"€BÜ	�˜Ó	"€BØˆ6€MrZ   c                 óT  • U u  p4Uu  pVpxUu  pšp¼U[         :X  a  [        X1U5      [         4$ U[         :X  a  [         [        XAU5      4$ US-   n[        US5      n[        US5      n[	        X=5      u  pï[        XM5      u  nn[        UUU5      n[        UUX5      n[        UUX5      nUU4$ )z_Complex tangent. Computed as tan(a+bi) = sin(2a)/M + sinh(2b)/M*i
where M = cos(2a) + cosh(2b).é   r   )r   r?   rL   r/   r=   r>   r*   r-   )rU   rz   rh   rƒ   r„   rá   râ   rã   rä   rå   ræ   rç   rè   r»   r…   r¬   r  r  r¼   rV   rW   s                        rX   Úmpc_tanr  å  s»   € ð �D€AØÑ€E�ØÑ€E�ØŒEƒzœ' !¨3Ó/´Ð6Ð6ØŒEƒzœ%¤¨!°3Ó!7Ð7Ð7Ø	�‰€BÜ�!�Q‹€AÜ�!�Q‹€AÜ�qÓ�D€AÜ˜1Ó!�F€Bˆä
�!�R˜Ó
€CÜ	��C˜Ó	#€BÜ	��S˜$Ó	$€BØˆrˆ6€MrZ   c                 ó:  • U u  p4U[         :X  a  [        X1U5      [         4$ [        U[        US-   5      US-   5      nU[         :X  a  [	        XAU5      [         4$ US-   n[        X55      u  pg[        XE5      u  p‰[        XhX5      n
[        XyX5      nU
[        U5      4$ ©Nr  r  )r   rF   r,   r:   rJ   rB   r>   r)   r  s               rX   Ú
mpc_cos_pir  ø  sœ   € Ø�D€AØŒEƒzÜ˜! 3Ó'¬Ð.Ð.Ü�”6˜$˜q™&“> 4¨¡6Ó*€AØŒEƒzÜ˜ Ó%¤uÐ,Ð,Ø	�‰€BÜ˜!Ó �D€AÜ˜1Ó!�F€BÜ	�˜Ó	"€BÜ	�˜Ó	"€BØŒw�r‹{ˆ?ÐrZ   c                 ó&  • U u  p4U[         :X  a  [        X1U5      [         4$ [        U[        US-   5      US-   5      nU[         :X  a  [         [	        XAU5      4$ US-   n[        X55      u  pg[        XE5      u  p‰[        XxX5      n
[        XiX5      nX«4$ r  )r   rG   r,   r:   rK   rB   r>   r  s               rX   Ú
mpc_sin_pir     s•   € Ø�D€AØŒEƒzÜ˜! 3Ó'¬Ð.Ð.Ü�”6˜$˜q™&“> 4¨¡6Ó*€AØŒEƒzÜ”h˜q¨Ó,Ð,Ð,Ø	�‰€BÜ˜!Ó �D€AÜ˜1Ó!�F€BÜ	�˜Ó	"€BÜ	�˜Ó	"€BØˆ6€MrZ   c                 óh  • U u  p4U[         :X  a  [        XAU5      u  pVU[         4[         U44$ U[         :X  a  [        X1U5      u  pxU[         4U[         44$ US-   n	[        X95      u  px[        XI5      u  pV[        XuX5      n
[        X†X5      n[        X…X5      n[        XvX5      nU
[	        U5      4XÍ44$ )Nr  )r   r>   r=   r,   r)   )rU   rz   rh   rƒ   r„   r  r  r…   r¬   r»   ÚcreÚcimÚsreÚsims                 rX   Úmpc_cos_sinr&    sÀ   € Ø�D€AØŒEƒzÜ˜q¨Ó,‰ˆØ”Eˆ{œU B˜KÐ'Ð'ØŒEƒzÜ˜1 CÓ(‰ˆØ”5ˆz˜Aœu˜:Ð%Ð%Ø	�‰€BÜ�qÓ�D€AÜ˜1Ó!�F€BÜ
�!˜Ó
#€CÜ
�!˜Ó
#€CÜ
�!˜Ó
#€CÜ
�!˜Ó
#€CØ”˜“Ð  
Ð*Ð*rZ   c                 ó   • U u  p4U[         :X  a  [        X1U5      u  pVU[         4U[         44$ [        U[        US-   5      US-   5      nU[         :X  a  [	        XAU5      u  pxU[         4[         U44$ US-   n	[        X95      u  pV[	        XI5      u  px[        XWX5      n
[        XhX5      n[        XgX5      n[        XXX5      nU
[        U5      4XÍ44$ r  )r   rB   r,   r:   r>   r)   )rU   rz   rh   rƒ   r„   r…   r¬   r  r  r»   r"  r#  r$  r%  s                 rX   Úmpc_cos_sin_pir(  %  sÚ   € Ø�D€AØŒEƒzÜ˜a sÓ+‰ˆØ”5ˆz˜Aœu˜:Ð%Ð%Ü�”6˜$˜q™&“> 4¨¡6Ó*€AØŒEƒzÜ˜q¨Ó,‰ˆØ”Eˆ{œU B˜KÐ'Ð'Ø	�‰€BÜ˜!Ó �D€AÜ˜1Ó!�F€BÜ
�!˜Ó
#€CÜ
�!˜Ó
#€CÜ
�!˜Ó
#€CÜ
�!˜Ó
#€CØ”˜“Ð  
Ð*Ð*rZ   c                 ó8   • U u  p4[        U[        U5      4X5      $ )z:Complex hyperbolic cosine. Computed as cosh(z) = cos(z*i).)r  r)   r”   s        rX   Úmpc_coshr*  7  s   € à�D€AÜ�A”w˜q“z�? DÓ.Ð.rZ   c                 ó.   • U u  p4[        XC4X5      u  pCX44$ )z;Complex hyperbolic sine. Computed as sinh(z) = -i*sin(z*i).)r  r”   s        rX   Úmpc_sinhr,  <  ó    € à�D€AÜ�A�6˜4Ó%�D€AØˆ4€KrZ   c                 ó.   • U u  p4[        XC4X5      u  pCX44$ )z>Complex hyperbolic tangent. Computed as tanh(z) = -i*tan(z*i).)r  r”   s        rX   Úmpc_tanhr/  B  r-  rZ   c                 óL  • U u  p4US-   n[        [        XE5      [        U5      4n[        [        XE5      U4n[	        Xe5      n[	        Xu5      n	[        X‰X5      u  p4[        [        US5      5      [        US5      4n
U
S   [        :X  a  [        U 5      (       a  U
S   [        4n
U
$ )Nr  rÓ   r   r   )
r*   r    r)   r+   rÐ   r�   r/   r%   rY   r   )rU   rz   rh   rƒ   r„   r»   rŠ   ÚyÚl1Úl2rà   s              rX   Úmpc_atanr4  I  sœ   € Ø�D€Að 
�‰€BÜ”�aÓœg a›jÐ(€AÜ”�aÓ˜aÐ€AÜ	�‹€BÜ	�‹€BÜ�2˜4Ó%�D€Aä”	˜!˜B“Ó ¤)¨A¨b£/Ð1€Að 	ˆ�tŒtƒ|œ
 1Ÿ™Øˆq‰T”5ˆMˆØ€HrZ   gû:pÎˆä?g      ø?c                 ó`	  • U u  pEUS-   nU[         :X  aÞ  [        [        [        U5      U5      nUS   (       d*  US:X  a  [	        XAU5      [         4$ [        XAU5      [         4$ US   (       aJ  [        X5      n[        [        U5      X5      n	US:X  a  U[        U	5      4$ [        [        US5      5      U	4$ [        XAU5      n	US:X  a  [         U	4$ [        X5      n[        US5      [        U	5      4$ S=p«US   (       a  [        U5      nSn
US   (       a  [        U5      nSn[        [        XF5      n[        [        XF5      n[        XÅU5      n[        XuU5      n[        [        XÞU5      S5      n[        XOU5      n[        XUU5      n[        [        UU5      S   (       d"  US:X  a  [	        UU5      nGOB[        UU5      nGO4[        XôU5      nUS   (       dŽ  [        U[        XÜU5      U5      n	[        XçU5      n[        [        U[        U	UU5      U5      S5      nUS:X  a!  [        [        [!        UU5      XF5      U5      nO²[        [        U[!        UU5      U5      U5      nO�[        U[        XÜU5      U5      n	[        U[        XçU5      U5      n[        [        U	UU5      S5      n[        U[!        UU5      U5      nUS:X  a  [        [        UXF5      U5      nO[        [        UUU5      U5      n[        ["        Xö5      S   (       dË  [        U[        XÜU5      U5      n[        U5      S   (       a1  [        XçU5      n[        UUU5      n[        [        UUU5      S5      nO#[        XçU5      n[        [        UUU5      S5      n[        U[        U[        U5      U5      n[%        [        [        [        U[!        UU5      U5      U5      U5      nO<[!        [        [        XÿU5      [        U5      U5      n[%        [        UUU5      U5      nU
(       a(  US:X  a  [        [        U5      UU5      nO[        U5      nU(       d  US:X  a  [        U5      nU(       a  US:X  a  [        U5      n['        US   US   US   US   X5      n['        US   US   US   US   X5      nUU4$ )aé  complex acos for n = 0, asin for n = 1
The algorithm is described in
T.E. Hull, T.F. Fairgrieve and P.T.P. Tang
'Implementing the Complex Arcsine and Arcosine Functions
using Exception Handling',
ACM Trans. on Math. Software Vol. 23 (1997), p299
The complex acos and asin can be defined as
acos(z) = acos(beta) - I*sign(a)* log(alpha + sqrt(alpha**2 -1))
asin(z) = asin(beta) + I*sign(a)* log(alpha + sqrt(alpha**2 -1))
where z = a + I*b
alpha = (1/2)*(r + s); beta = (1/2)*(r - s) = a/alpha
r = sqrt((a+1)**2 + y**2); s = sqrt((a-1)**2 + y**2)
These expressions are rewritten in different ways in different
regions, delimited by two crossovers alpha_crossover and beta_crossover,
and by abs(a) <= 1, in order to improve the numerical accuracy.
rº   r   rÓ   r   rl   rk   )r   r+   r    r'   rN   rM   r:   rO   r)   r/   r*   r1   r-   r,   Úbeta_crossoverrH   r0   Úalpha_crossoverr<   r   )rU   rz   rh   rš   rƒ   r„   r»   ÚamÚpir…   rá   rå   rü   r«   r¬   ÚalphaÚbetaÚb2rV   ÚAxr†   Úc1Úc2ÚAm1rW   s                            rX   Ú	acos_asinrA  _  sI  € ð" �D€AØ	�‰€BàŒEƒzÜ”Tœ7 1›: rÓ*ˆà�!�uØ�A‹vÜ ¨Ó-¬uÐ4Ð4ä ¨Ó-¬uÐ4Ð4ð ��tÜ˜DÓ&�Üœg a›j¨$Ó4�Ø˜“6Øœw q›z˜>Ð)ä"¤9¨R°Ó#4Ó5°qÐ8Ð8ô ˜a sÓ+�Ø˜“6Ü  !˜8�Oä Ó*�BÜ$ R¨Ó,¬g°a«jÐ8Ð8ØÐ€EØˆ‡tÜ�A‹JˆØˆØˆ‡tÜ�A‹JˆØˆÜ	”�qÓ	€BÜ	”�qÓ	€BÜ�"˜Ó€AÜ�"˜Ó€AÜ”g˜a BÓ'¨Ó,€EÜ�1˜RÓ €DÜ	��bÓ	€Bä”> 4¨Ó,¨Q×/Ø�‹6Ü˜$ Ó#ŠBä˜$ Ó#ŠBô �U˜rÓ"ˆà�!�uô
 ˜œG A¨2Ó.°Ó3ˆAÜ˜˜rÓ"ˆAÜœ7 2¤w¨q°!°RÓ'8¸"Ó=¸rÓBˆBØ�A‹vÜœg¤h¨r°2Ó&6¸Ó>ÀÓC‘äœg a¬°"°bÓ)9¸2Ó>ÀÓC‘ô ˜œG A¨2Ó.°Ó3ˆAÜ˜œG A¨2Ó.°Ó3ˆAÜœ7 1 a¨Ó,¨bÓ1ˆBÜ˜œH R¨Ó,¨bÓ1ˆBØ�A‹vÜœg b¨!Ó0°"Ó5‘äœg a¨¨RÓ0°"Ó5�ô
 ”? EÓ.¨q×1Ü�Rœ ¨Ó+¨RÓ0ˆä�2‹;�q�>ä˜ Ó#ˆBÜ˜˜R Ó$ˆBÜœG B¨¨BÓ/°Ó4‰Cô ˜ Ó#ˆBÜœG B¨¨BÓ/°Ó4ˆCä�Sœ' %¬¨rÓ2°BÓ7ˆÜ”WœT¤7¨3´¸¸RÓ0@À"Ó#EÀrÓJÈBÓO‰ô ”gœg e°BÓ7¼¸rÓBÀBÓGˆÜ”W˜U B¨Ó+¨RÓ0ˆÞØ�‹6Üœ › R¨Ó,‰Bä˜“ˆBÞ�Q˜!“VÜ�R‹[ˆÞ��a“Ü�R‹[ˆÜ	�2�a‘5˜"˜Q™%  A¡¨¨1©¨tÓ	9€BÜ	�2�a‘5˜"˜Q™%  A¡¨¨1©¨tÓ	9€BØˆrˆ6€MrZ   c                 ó   • [        XUS5      $ ©Nr   ©rA  r  s      rX   Úmpc_acosrE  ç  ó   € Ü�Q˜c 1Ó%Ð%rZ   c                 ó   • [        XUS5      $ r¯   rD  r  s      rX   Úmpc_asinrH  ê  rF  rZ   c                 óV   • U u  p4[        U[        U5      4X5      u  p4[        U5      U4$ re   )rH  r)   r”   s        rX   Ú	mpc_asinhrJ  í  s-   € à�D€AÜ�aœ ›�_ dÓ0�D€AÜ�1‹:�qˆ=ÐrZ   c                 óz   • [        XU5      u  p4US   (       d
  U[        :X  a  [        U5      U4$ U[        U5      4$ rC  )rE  r   r)   r”   s        rX   Ú	mpc_acoshrL  ó  s;   € ô �A˜SÓ!�D€AØˆ‡tˆq”E‹zÜ�q‹z˜1ˆ}Ðà”'˜!“*ˆ}ÐrZ   c                 óú   • US-   n[        U [        U5      n[        [        X5      n[        XC5      n[        XS5      n[	        [        XEU5      S5      nUS   [
        :X  a  [        U 5      (       a  [        US   4nU$ )Nr  rÓ   r   r   )r‡   rÝ   r�   rÐ   r›   r%   rY   r   )rU   rz   rh   r»   rƒ   r„   rà   s          rX   Ú	mpc_atanhrN  ü  sq   € à	�‰€BÜ�”7˜BÓ€AÜ”˜Ó€AÜ�‹€AÜ�‹€AÜ”'˜! Ó# RÓ(€Að 	ˆ�tŒtƒ|œ
 1Ÿ™Ü�A�a‘DˆMˆØ€HrZ   c                 ó‚  • U u  p4U[         :X  a  [        X1U5      [         4$ [        [        US   US   -   5      [        US   US   -   5      5      nX-   S-   n[	        U5      n[        [        US5      [        U5      n[        U[         4X5      n	[        X5      n
[        X©U5      n
[        XšU5      n	[        X˜X5      n	U	$ )Nrl   rk   rí   r   )r   rQ   rß   rÞ   rC   r*   r/   r&   rÑ   r  r¿   r�   rÁ   )rU   rz   rh   rV   rW   Úsizer»   rƒ   r„   r¾   rà   s              rX   Úmpc_fibonaccirQ  
  s¼   € Ø�F€BØ	ŒUƒ{Ü˜b¨Ó,¬eÐ4Ð4ÜŒs�2�a‘5˜˜A™‘;Ó¤ R¨¡U¨2¨a©5¡[Ó!1Ó2€DØ	‰�rÑ	€BÜ�‹€AÜ”	˜!˜Q“¤¨Ó+€AÜ�”E�
˜AÓ"€AÜ�1Ó€AÜ��bÓ€AÜ��bÓ€AÜ�A˜$Ó$€AØ€HrZ   c                 ó   • [         ere   ©r9   ©rŠ   rz   rh   s      rX   Úmpf_expjrU    ó   € Ü
ÐrZ   c                 ó  • U u  p4U[         :X  a  [        X1U5      $ U[         :X  a  [        [        U5      X5      [         4$ [        [        U5      US-   5      n[        X1S-   5      u  pg[	        XVX5      n[	        XWX5      nX44$ r¹   )r   r=   r;   r)   r,   )rU   rz   rh   rV   rW   Úeyr…   r¬   s           rX   Úmpc_expjrY    s}   € Ø�F€BØ	ŒUƒ{Ü˜2 SÓ)Ð)Ø	ŒUƒ{Ü”w˜r“{ DÓ.´Ð5Ð5Ü	”˜“˜d 2™gÓ	&€BÜ�r ™7Ó#�D€AÜ	�˜Ó	"€BÜ	�˜Ó	"€BØˆ6€MrZ   c                 ó   • [         ere   rS  rT  s      rX   Ú
mpf_expjpir[  (  rV  rZ   c                 ó`  • U u  p4U[         :X  a  [        X1U5      $ Uu  pVpxUS-   n	U(       a  U	[        SXx-   5      -  n	[        [	        [        U	5      XI5      5      nU[         :X  a  [        XAU5      [         4$ [        XAS-   5      n
[        X1S-   5      u  p¼[	        X«X5      n[	        X¬X5      nX44$ )Nrº   r   )r   rB   rß   r)   r,   r:   r;   )rU   rz   rh   rV   rW   ÚsignÚmanÚexpÚbcr»   rX  r…   r¬   s                rX   Ú
mpc_expjpira  +  s°   € Ø�F€BØ	ŒUƒ{Ü˜b¨Ó,Ð,ØÑ€DˆsØ	ˆb‰€BÞ
Ø
Œc�!�S‘V‹nÑˆÜ	”œ › RÓ,Ó	-€BØ	ŒUƒ{Ü�r Ó%¤uÐ,Ð,Ü	�˜"‘WÓ	€BÜ˜" 2™gÓ&�D€AÜ	�˜Ó	"€BÜ	�˜Ó	"€BØˆ6€MrZ   Úsagez&Warning: Sage imports in libmpc failed)Úf) Ú__doc__rm   Úbackendr   r   r   r   r   Ú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/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   Ú	libelefunr:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rÝ   r}   Úmpc_twoÚmpc_halfrS   r\   rY   r]   rc   ri   rv   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*  r,  r/  r4  r6  r7  rA  rE  rH  rJ  rL  rN  rQ  rU  rY  r[  ra  Úsage.libs.mpmath.ext_libmpÚlibsÚmpmathÚ	ext_libmpÚ_lbmpÚImportErrorÚAttributeErrorÚprintrÉ   rZ   rX   Ú<module>rr     sG  ðñó ç =Õ =÷÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ õ ÷÷ ÷ ÷ ÷ ÷ ó ð �ˆ+€Ø�%ˆ<€Ø
�ˆ+€Ø�5ˆ>€à	ˆuˆ€Ø�5˜$Ð€	òòò<ð #¨
ô Iòð  *ô &òð 'ô >ð
 !+ô 'ð ˜jô >ð
  *ô 'ð $ô 8ð ˜jô 8ò,ð $ô &ð $ô &ð
 &ô <ð %ô :ð %ô :ð %ô :ð
 'ô ð$ 'ô ð !+ô ð &0ô ð !+ô ð 'ô 	<ð !+ô ð !+ô ð !+ô òð 'ô Hð
 !+ô Lð !+ô &LðP %ô "òH%ðN !+ô 'ðR %ô (ð $ô ð6 $ô ð
 $ô ð( $ô ð  $ô ð& 'ô ð 'ô ð (ô +ð" !+ô +ð$ %ô /ð
 %ô ð %ô ð %ô ñ& ˜FÓ#€Ù˜S“/€òFðP %ô &ð %ô &ð &ô ð &ô ð &ô ð  *ô ôô
ôôð$ ˆfÓð8ß2Ó2Ø—-‘-ˆØ—>‘>‰ð	 øð
 ˜Ð(ó 8ÙÐ6Ö7ð8ús   È2$I ÉI+É*I+