Ë
    3^(hûh  ã                   óp  — d Z ddlZddlmZmZmZmZ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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 ddl:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZR e efZSeefZTe!efZUe"efZVe#e$fZWe#e$e%fZXd„ ZYd„ ZZd	„ Z[d
efd„Z\d„ Z]efd„Z^d„ Z_efd„Z`efd„Zadefd„Zbdefd„Zcefd„Zddefd„Zed„ Zfefd„Zgefd„Zhefd„Ziefd„Zjefd„Zkefd„Zlefd„Zmefd„Znefd„Zoefd„Zpefd „Zqefd!„Zrefd"„Zsefd#„Ztefd$„Zud%„ Zvefd&„Zwefd'„Zxefd(„Zyefd)„Zzd*„ Z{efd+„Z|efd,„Z}efd-„Z~efd.„Zefd/„Z€efd0„Z�efd1„Z‚efd2„Zƒefd3„Z„efd4„Z…efd5„Z†efd6„Z‡efd7„Zˆefd8„Z‰efd9„ZŠ ed:«      Z‹ ed;«      ZŒd<„ Z�efd=„ZŽefd>„Z�efd?„Z�efd@„Z‘efdA„Z’efdB„Z“dIdC„Z”dIdD„Z•dIdE„Z–dIdF„Z—edGk(  r&	 ddl˜m™c mšc m›Zœ eœjü                  Z~eœjô                  Zzyy# e�ežf$ r  eŸdH«       Y yw xY w)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                 ó2   — | \  }}|t         v ry|t         v ryy)z2Check if either real or imaginary part is infiniteTF)Ú_infs©ÚzÚreÚims      úQ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/mpmath/libmp/libmpc.pyÚ
mpc_is_infrY   )   s    € à�F€BˆØ	ŒU�{˜4Ø	ŒU�{˜4Øó    c                 ó2   — | \  }}|t         v ry|t         v ryy)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                 ó˜   — | \  }}t        ||«      }|d   r|dz   t        t        |«      |fi |¤Žz   dz   S |dz   t        ||fi |¤Žz   dz   S )Nr   z - Újz + )r   r)   )rU   ÚdpsÚkwargsrV   rW   Úrss         rX   Ú
mpc_to_strrc   7   sa   € Ø�F€BˆÜ	��C‹€BØ	ˆ!‚uØ�E‰zœF¤7¨2£;°Ñ>°vÑ>Ñ>ÀÑDÐDà�E‰zœF 2 sÑ5¨fÑ5Ñ5¸Ñ;Ð;rZ   Fc                 óP   — | \  }}t        t        |||«      t        |||«      «      S ©N)Úcomplexr   )rU   ÚstrictÚrndrV   rW   s        rX   Úmpc_to_complexri   ?   s*   € Ø�F€BˆÜ”8˜B ¨Ó,¬h°r¸6À3Ó.GÓHÐHrZ   c                 óN  — t         j                  dk\  rb| \  }}t        |«      t         j                  j                  t        |«      z  z   }|dt         j                  j
                  z  z  }t        |«      S 	 t        t        | d¬«      «      S # t        $ r t        | «      cY S w xY w)N)é   é   rl   T)rg   )
ÚsysÚversion_infor8   Ú	hash_infoÚimagÚwidthÚintÚhashri   ÚOverflowError)rU   rV   rW   Úhs       rX   Úmpc_hashrv   C   s‹   € Ü
×Ñ˜6Ò!Ø‰ˆˆBÜ�R‹Lœ3Ÿ=™=×-Ñ-´¸³Ñ<Ñ<ˆà�”C—M‘M×'Ñ'Ñ'Ñ(ˆÜ�1‹vˆð	Üœ q°Ô6Ó7Ð7øÜò 	Ü˜“7ŠNð	ús   Á7B ÂB$Â#B$c                 ó*   — | \  }}|t        |||«      fS re   ©r)   ©rU   Úprecrh   rV   rW   s        rX   Úmpc_conjugater{   P   s   € Ø�F€BˆØŒw�r˜4 Ó%Ð%Ð%rZ   c                 ó   — | t         k7  S re   )Úmpc_zero)rU   s    rX   Úmpc_is_nonzeror~   T   s   € Ø”‰=ÐrZ   c                 óN   — | \  }}|\  }}t        ||||«      t        ||||«      fS re   ©r*   ©rU   Úwrz   rh   ÚaÚbÚcÚds           rX   Úmpc_addr‡   W   ó5   € Ø�D€A€qØ�D€A€qÜ�1�a˜˜sÓ#¤W¨Q°°4¸Ó%=Ð=Ð=rZ   c                 ó,   — | \  }}t        ||||«      |fS re   r€   )rU   Úxrz   rh   rƒ   r„   s         rX   Úmpc_add_mpfr‹   \   ó!   € Ø�D€A€qÜ�1�a˜˜sÓ# QÐ&Ð&rZ   c                 óN   — | \  }}|\  }}t        ||||«      t        ||||«      fS re   ©r+   r�   s           rX   Úmpc_subr�   `   rˆ   rZ   c                 ó,   — | \  }}t        ||||«      |fS re   rŽ   )rU   Úprz   rh   rƒ   r„   s         rX   Úmpc_sub_mpfr’   e   rŒ   rZ   c                 ó@   — | \  }}t        |||«      t        |||«      fS re   )r(   ©rU   rz   rh   rƒ   r„   s        rX   Úmpc_posr•   i   ó(   € Ø�D€A€qÜ�1�d˜CÓ ¤'¨!¨T°3Ó"7Ð7Ð7rZ   c                 ó@   — | \  }}t        |||«      t        |||«      fS re   rx   r”   s        rX   Úmpc_negr˜   m   r–   rZ   c                 ó<   — | \  }}t        ||«      t        ||«      fS re   )r/   )rU   Únrƒ   r„   s       rX   Ú	mpc_shiftr›   q   s"   € Ø�D€A€qÜ�Q˜‹?œI a¨›OÐ+Ð+rZ   c                 ó(   — | \  }}t        ||||«      S )zEAbsolute value of a complex number, |a+bi|.
    Returns an mpf value.)r1   r”   s        rX   Úmpc_absr�   u   s   € ð �D€A€qÜ�Q˜˜4 Ó%Ð%rZ   c                 ó(   — | \  }}t        ||||«      S )z3Argument of a complex number. Returns an mpf value.)rI   r”   s        rX   Úmpc_argrŸ   {   s   € à�D€A€qÜ�Q˜˜4 Ó%Ð%rZ   c                 ó@   — | \  }}t        |||«      t        |||«      fS re   )r3   r”   s        rX   Ú	mpc_floorr¡   €   s(   € Ø�D€A€qÜ�Q˜˜cÓ"¤I¨a°°sÓ$;Ð;Ð;rZ   c                 ó@   — | \  }}t        |||«      t        |||«      fS re   )r4   r”   s        rX   Úmpc_ceilr£   „   ó(   € Ø�D€A€qÜ�A�t˜SÓ!¤8¨A¨t°SÓ#9Ð9Ð9rZ   c                 ó@   — | \  }}t        |||«      t        |||«      fS re   )r5   r”   s        rX   Úmpc_nintr¦   ˆ   r¤   rZ   c                 ó@   — | \  }}t        |||«      t        |||«      fS re   )r6   r”   s        rX   Úmpc_fracr¨   Œ   r¤   rZ   c                 ó¶   — | \  }}|\  }}t        ||«      }t        ||«      }	t        ||«      }
t        ||«      }t        ||	||«      }t        |
|||«      }||fS )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­   ‘   sk   € ð �D€A€qØ�D€A€qÜ��1‹€AÜ��1‹€AÜ��1‹€AÜ��1‹€AÜ	��A�t˜SÓ	!€BÜ	��A�t˜SÓ	!€BØˆrˆ6€MrZ   c                 ó”   — | \  }}t        ||«      }t        ||«      }t        ||||«      }t        ||||«      }t        |d«      }	||	fS ©Nr   )r,   r+   r/   )
rU   rz   rh   rƒ   r„   r‘   rª   r«   rV   rW   s
             rX   Ú
mpc_squarer°   £   sU   € à�D€A€qÜ��!‹€AÜ��!‹€AÜ��!�T˜3Ó€AÜ	��A�t˜SÓ	!€BÜ	�1�a‹€BØˆrˆ6€MrZ   c                 óL   — | \  }}t        ||||«      }t        ||||«      }||fS re   )r,   ©rU   r‘   rz   rh   rƒ   r„   rV   rW   s           rX   Úmpc_mul_mpfr³   ­   s4   € Ø�D€A€qÜ	��A�t˜SÓ	!€BÜ	��A�t˜SÓ	!€BØˆrˆ6€MrZ   c                 ó^   — | \  }}t        t        ||||«      «      }t        ||||«      }||fS )zB
    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€qÜ	”˜˜A˜t SÓ)Ó	*€BÜ	��A�t˜SÓ	!€BØˆrˆ6€MrZ   c                 óL   — | \  }}t        ||||«      }t        ||||«      }||fS re   )r.   )rU   rš   rz   rh   rƒ   r„   rV   rW   s           rX   Úmpc_mul_intr·   ¼   s4   € Ø�D€A€qÜ	�Q˜˜4 Ó	%€BÜ	�Q˜˜4 Ó	%€BØˆrˆ6€MrZ   c                 ó  — | \  }}|\  }}|dz   }t        t        ||«      t        ||«      |«      }	t        t        ||«      t        ||«      |«      }
t        t        ||«      t        ||«      |«      }t        |
|	||«      t        ||	||«      fS ©Né
   )r*   r,   r+   r-   )rU   r‚   rz   rh   rƒ   r„   r…   r†   ÚwpÚmagÚtÚus               rX   Úmpc_divr¿   Â   sŒ   € Ø�D€A€qØ�D€A€qØ	�‰€Bä
”'˜!˜Q“-¤¨¨A£°Ó
3€Cä”˜˜!“œg a¨›l¨BÓ/€AÜ”˜˜!“œg a¨›l¨BÓ/€AÜ�1�S˜˜cÓ"¤G¨A¨c°$°sÓ$;Ð;Ð;rZ   c                 óL   — | \  }}t        ||||«      }t        ||||«      }||fS )zCalculate z/p where p is real)r-   r²   s           rX   Úmpc_div_mpfrÁ   Í   s4   € à�D€A€qÜ	��A�t˜SÓ	!€BÜ	��A�t˜SÓ	!€BØˆrˆ6€MrZ   c                 ó¦   — | \  }}t        t        ||«      t        ||«      |dz   «      }t        ||||«      }t        t        ||||«      «      }||fS )zCalculate 1/z efficientlyrº   ©r*   r,   r-   r)   )rU   rz   rh   rƒ   r„   ÚmrV   rW   s           rX   Úmpc_reciprocalrÅ   Ô   sW   € à�D€A€qÜ”˜˜!“œW Q q›\¨$¨r©'Ó2€AÜ	��A�t˜SÓ	!€BÜ	”˜˜A˜t SÓ)Ó	*€BØˆrˆ6€MrZ   c                 óÎ   — |\  }}t        t        ||«      t        ||«      |dz   «      }t        t        || «      |||«      }t        t        t        || «      «      |||«      }||fS )z)Calculate p/z where p is real efficientlyrº   rÃ   )	r‘   rU   rz   rh   rƒ   r„   rÄ   rV   rW   s	            rX   Úmpc_mpf_divrÇ   Ü   sc   € à�D€A€qÜ”˜˜!“œW Q q›\¨4°©7Ó3€AÜ	”˜˜1“˜q $¨Ó	,€BÜ	”œ  1›Ó&¨¨4°Ó	5€BØˆrˆ6€MrZ   c                 óŒ   — d}d}|r;|dz  r|| z  ||z  z
  || z  ||z  z   }}|dz  }| | z  ||z  z
  d| z  |z  }} |dz  }|rŒ;||fS )zgComplex 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Ì   ä   sx   € ð €CØ
€CÙ
ØˆqŠ5Ø˜1‘u˜s 1™u‘} c¨!¡e¨c°!©e¡m�ˆCØ�‰FˆAØ�‰s�Q�q‘S‰y˜!˜A™#˜a™%ˆ1ˆØ	ˆa‰ˆò ð �ˆ8€OrZ   c           	      óŒ   — |d   t         k(  rt        | |d   ||«      S t        t        t	        | |dz   «      ||dz   «      ||«      S )Nr   r   rº   )r   Úmpc_pow_mpfÚmpc_expr­   Úmpc_log)rU   r‚   rz   rh   s       rX   Úmpc_powrÑ   ñ   sI   € Øˆ�tŒu‚}Ü˜1˜a ™d D¨#Ó.Ð.Ü”7œ7 1 d¨2¡gÓ.°°4¸±7Ó;¸TÀ3ÓGÐGrZ   c           	      óè   — |\  }}}}|dk\  rt        | d|z  ||z  z  ||«      S |dk(  r#t        | |dz   «      }t        |d|z  |z  ||«      S t        t        t	        | |dz   «      ||dz   «      ||«      S )Nr   éÿÿÿÿrº   )Úmpc_pow_intÚmpc_sqrtrÏ   r³   rÐ   )	rU   r‘   rz   rh   ÚpsignÚpmanÚpexpÚpbcÚsqrtzs	            rX   rÎ   rÎ   ö   s�   € ØÑ€Eˆ4��sØˆq‚yÜ˜1˜r E™k¨T°4©ZÑ8¸$ÀÓDÐDØˆr‚zÜ˜˜D ™GÓ$ˆÜ˜5 2¨¡+°Ñ"4°d¸CÓ@Ð@Ü”;œw q¨$¨r©'Ó2°A°t¸B±wÓ?ÀÀsÓKÐKrZ   c           	      óV  — | \  }}|t         k(  rt        ||||«      t         fS |t         k(  rYt        ||||«      }|dz  }|dk(  r|t         fS |dk(  rt         |fS |dk(  rt        |«      t         fS |dk(  rt         t        |«      fS |dk(  rt        S |dk(  rt	        | ||«      S |dk(  rt        | ||«      S |dk(  rt        | ||«      S |dk  rt        t        | | |dz   «      ||«      S |\  }}}	}
|\  }}}}|r| }|r| }|	|z
  }t        |«      }||t        |
|«      z   z  }|dk  r]|dkD  r||z  }|}	n|| z  }|	}t        |||«      \  }}t        |t        ||	z  «      ||«      }t        |t        ||z  «      ||«      }||fS t        t        t        | |dz   «      ||dz   «      ||«      S )	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€qØŒE‚zÜ˜1˜a  sÓ+¬UÐ2Ð2ØŒE‚zÜ˜˜1˜d CÓ(ˆØ	ˆQ‰ˆØ�Š6Ø”e�8ˆOØ�!ŠVÜ˜!�8ˆOØ�!ŠVÜ˜1“:œuÐ$Ð$Ø�!ŠVÜœ' !›*Ð$Ð$ØˆA‚v”gˆ~ØˆA‚v”g˜a  sÓ+Ð+ØˆA‚v”j  D¨#Ó.Ð.ØˆB‚w”~ a¨¨sÓ3Ð3Øˆ1‚u”^¤K°°A°2°t¸A±vÓ$>ÀÀcÓJÐJØÑ€Eˆ4��sØÑ€Eˆ4��sÙ�d�UˆdÙ�d�UˆdØ	�‰€BÜ�‹W€FØ�FœS  c›]Ñ*Ñ+€JØ�EÒØ�Š6Ø�R‰KˆDØ‰Dà�r�c‰NˆDØˆDÜ   t¨QÓ/‰ˆˆBÜ˜"œc ! D¡&›k¨4°Ó5ˆÜ˜"œc ! D¡&›k¨4°Ó5ˆØ�2ˆvˆÜ”;œw q¨$¨r©'Ó2°A°t¸B±wÓ?ÀÀsÓKÐKrZ   c                 ób  — | \  }}|t         k(  rE|t         k(  r||fS |d   rt        t        |«      ||«      }t         |fS t        |||«      }|t         fS |dz   }|d   s\t        t	        ||f|«      ||«      }t        |d«      }	t        |	||«      }t        |d«      }
t        |
|«      }t        ||||«      }||fS t        t	        ||f|«      ||«      }t        |d«      }	t        |	||«      }t        |d«      }
t        |
|«      }t        ||||«      }|d   rt        |«      }t        |«      }||fS )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Õ   '  sP  € ð
 �D€A€qØŒE‚zØ”Š:Ø�q�6ˆMàˆQŠ4Üœ' !›* d¨CÓ0ˆBÜ˜2�;Ðä˜!˜T 3Ó'ˆBØœ�;ÐØ	ˆb‰€BØˆQŠ4Ü”W˜a ˜V RÓ(¨!¨RÓ0ˆÜ�a˜ÓˆÜ�a˜˜sÓ#ˆÜ�a˜‹OˆÜ�a˜‹_ˆÜ�Q˜˜4 Ó%ˆð ˆrˆ6€Mô ”G˜Q ˜F BÓ'¨¨BÓ/ˆÜ�a˜ÓˆÜ�a˜˜sÓ#ˆÜ�a˜‹OˆÜ�a˜‹_ˆÜ�Q˜˜4 Ó%ˆØˆQŠ4Ü˜“ˆBÜ˜“ˆBØˆrˆ6€MrZ   c                 óÖ  — d}t        t        | |||z  z
  «      «      }t        t        ||||z  z
  «      «      }	 |d|z  z   d|z  z  }|j                  }|j                  }	t	        t        |«      «      }t	        t        |	«      «      }	d}|}|}t        |||z   «      D ]Ù  }t        ||	|dz
  «      \  }}t        ||dz
  |z  |z
  |z
  «      }t        ||dz
  |z  |z
  |z
  «      }||z  ||z  z   ||z   z	  }t        | ||z
  «      }t        |||z
  «      }||z  ||z  z   |z	  }| |z  ||z  z   |z	  }||z  |z  }||z  |z  }||dz
  t        |||z
  «      z  z   |z  }||dz
  t        |	||z
  «      z  z   |z  }	|}ŒÛ ||	fS # t
        $ rb t        ||«      }t        ||«      }t        |«      }
t        d|
|«      }t        ||f|t        f|«      \  }}	t        |«      }t        |	«      }	Y �Œ_w xY w)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  sD  € à€EÜ	ŒV�A�t˜a ™g‘~Ó&Ó	'€BÜ	ŒV�A�t˜a ™g‘~Ó&Ó	'€BðØ�"�r‘'‰\˜S ™UÑ#ˆØ�V‰VˆØ�V‰VˆÜ”�R“‹\ˆÜ”�R“‹\ˆð €EØ€EØ€FÜ˜  U¡
Ó+ò ˆä" 2 r¨1¨Q©3Ó/‰ˆˆSÜ�S˜1˜Q™3 ™+¨™/¨FÑ2Ó3ˆÜ�S˜1˜Q™3 ™+¨™/¨FÑ2Ó3ˆØ�#‰g˜˜C™Ñ Q¨¡ZÑ0ˆÜ�A�t˜a‘xÓ ˆÜ�A�t˜a‘xÓ ˆØ�C‰x˜"˜s™(Ñ" qÑ(ˆØˆs�S‰y˜2 ™8Ñ#¨Ñ)ˆØ�a‰x˜BÑˆØ�a‰x˜BÑˆØ�Q�q‘Sœ&  Q u¡WÓ-Ñ-Ñ-°Ñ1ˆØ�Q�q‘Sœ&  Q u¡WÓ-Ñ-Ñ-°Ñ1ˆØ‰ðð ˆrˆ6€Møô5 ò Ü�b˜%Ó ˆÜ�b˜%Ó ˆÜ�a‹[ˆÜ˜1˜b %Ó(ˆÜ˜"˜b˜ C¬ <°Ó7‰ˆˆBÜ�B‹ZˆÜ�B‹Z‹ðús   ºAE= Å=A'G(Ç'G(c                 óZ  — | \  }}|d   dk(  r|t         k(  rt        ||||«      }|t         fS |dk  re|dk(  rt        S |dk(  rt        ||f||«      S |dk(  rt	        t        ||f||«      S t        ||f| |dz   t        |   «      }t	        t        |||«      S |dk  rœt        d|dz   z  «      }|\  }	}
}}|\  }}}}t        ||f|«      }|d	   |d   z   d
kD  ra|d	   |d   z   |k  rSt        ||«      }t        ||«      }t        ||||«      \  }}d}t        || |z
  ||«      }t        || |z
  ||«      }||fS t        |«      }|dz   dz   }t        d||«      }t        ||f|t         f||«      \  }}t        |d   |d   |d   |d   ||«      }t        |d   |d   |d   |d   ||«      }||fS )zu
    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€qØˆ�tˆq‚y�Qœ%’ZÜ˜˜A˜t SÓ)ˆØ”Eˆ{ÐØˆ1‚uØ�Š6ÜˆNØ�Š6Ü˜A˜q˜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Ø!"Ñˆˆt�T˜3Ü�a˜�U˜DÓ!ˆØˆb‰6�B�r‘F‰?˜SÒ  b¨¡f¨r°"©v¡o¸Ò&<Ü˜!˜UÓ#ˆBÜ˜!˜UÓ#ˆBÜ& r¨2¨q°%Ó8‰FˆB�ØˆEÜ˜b 5 &¨¡,°°sÓ;ˆBÜ˜b 5 &¨¡,°°sÓ;ˆ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°SÓ	9€BÜ	�2�a‘5˜"˜Q™%  A¡¨¨1©¨t°SÓ	9€BØˆrˆ6€MrZ   c                 ó   — t        | d||«      S )z
    Complex cubic root.
    rk   )r  ©rU   rz   rh   s      rX   Úmpc_cbrtr  ›  s   € ô �q˜!˜T 3Ó'Ð'rZ   c                 óö   — | \  }}|t         k(  rt        |||«      S |t         k(  rt        |||«      t         fS t        ||dz   |«      }t        ||dz   |«      \  }}t        ||||«      }t        ||||«      }	||	fS )av  
    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Ï   ¡  s�   € ð  �D€A€qØŒE‚zÜ˜1˜d CÓ(Ð(ØŒE‚zÜ�q˜$ Ó$¤eÐ+Ð+Ü
�!�T˜!‘V˜SÓ
!€CÜ�q˜$˜q™& #Ó&�D€A€qÜ	��a˜˜sÓ	#€BÜ	��a˜˜sÓ	#€BØˆrˆ6€MrZ   c                 óL   — t        | d   | d   ||«      }t        | ||«      }||fS )Nr   r   )rA   rŸ   ry   s        rX   rÐ   rÐ   ¼  s1   € Ü	�q˜‘t˜Q˜q™T 4¨Ó	-€BÜ	��D˜#Ó	€BØˆrˆ6€MrZ   c                 ó  — | \  }}|t         k(  rt        |||«      t         fS |t         k(  rt        |||«      t         fS |dz   }t        ||«      \  }}t	        ||«      \  }}	t        ||||«      }
t        ||	||«      }|
t        |«      fS )aS  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€qØŒE‚zÜ�q˜$ Ó$¤eÐ+Ð+ØŒE‚zÜ˜˜4 Ó%¤uÐ,Ð,Ø	�‰€BÜ�q˜"Ó�D€A€qÜ˜1˜bÓ!�F€BˆÜ	��B˜˜cÓ	"€BÜ	��B˜˜cÓ	"€BØŒw�r‹{ˆ?ÐrZ   c                 ó  — | \  }}|t         k(  rt        |||«      t         fS |t         k(  rt         t        |||«      fS |dz   }t        ||«      \  }}t	        ||«      \  }}	t        ||||«      }
t        ||	||«      }|
|fS )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€qØŒE‚zÜ�q˜$ Ó$¤eÐ+Ð+ØŒE‚zÜ”h˜q $¨Ó,Ð,Ð,Ø	�‰€BÜ�q˜"Ó�D€A€qÜ˜1˜bÓ!�F€BˆÜ	��B˜˜cÓ	"€BÜ	��B˜˜cÓ	"€BØˆrˆ6€MrZ   c                 óh  — | \  }}|\  }}}}|\  }	}
}}|t         k(  rt        |||«      t         fS |t         k(  rt         t        |||«      fS |dz   }t        |d«      }t        |d«      }t	        ||«      \  }}t        ||«      \  }}t        |||«      }t        ||||«      }t        ||||«      }||fS )zcComplex 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€qØÑ€Eˆ4��sØÑ€Eˆ4��sØŒE‚zœ' ! T¨3Ó/´Ð6Ð6ØŒE‚zœ%¤¨!¨T°3Ó!7Ð7Ð7Ø	�‰€BÜ�!�Q‹€AÜ�!�Q‹€AÜ�q˜"Ó�D€A€qÜ˜1˜bÓ!�F€Bˆä
�!�R˜Ó
€CÜ	��C˜˜sÓ	#€BÜ	��S˜$ Ó	$€BØˆrˆ6€MrZ   c                 óL  — | \  }}|t         k(  rt        |||«      t         fS t        |t        |dz   «      |dz   «      }|t         k(  rt	        |||«      t         fS |dz   }t        ||«      \  }}t        ||«      \  }}	t        ||||«      }
t        ||	||«      }|
t        |«      fS ©Nr  r  )r   rF   r,   r:   rJ   rB   r>   r)   r  s               rX   Ú
mpc_cos_pir  ø  s²   € Ø�D€A€qØŒE‚zÜ˜!˜T 3Ó'¬Ð.Ð.Ü�”6˜$˜q™&“> 4¨¡6Ó*€AØŒE‚zÜ˜˜4 Ó%¤uÐ,Ð,Ø	�‰€BÜ˜!˜RÓ �D€A€qÜ˜1˜bÓ!�F€BˆÜ	��B˜˜cÓ	"€BÜ	��B˜˜cÓ	"€BØŒw�r‹{ˆ?ÐrZ   c                 ó:  — | \  }}|t         k(  rt        |||«      t         fS t        |t        |dz   «      |dz   «      }|t         k(  rt         t	        |||«      fS |dz   }t        ||«      \  }}t        ||«      \  }}	t        ||||«      }
t        ||	||«      }|
|fS r  )r   rG   r,   r:   rK   rB   r>   r  s               rX   Ú
mpc_sin_pir     s­   € Ø�D€A€qØŒE‚zÜ˜!˜T 3Ó'¬Ð.Ð.Ü�”6˜$˜q™&“> 4¨¡6Ó*€AØŒE‚zÜ”h˜q $¨Ó,Ð,Ð,Ø	�‰€BÜ˜!˜RÓ �D€A€qÜ˜1˜bÓ!�F€BˆÜ	��B˜˜cÓ	"€BÜ	��B˜˜cÓ	"€BØˆrˆ6€MrZ   c                 óˆ  — | \  }}|t         k(  r t        |||«      \  }}|t         ft         |ffS |t         k(  r t        |||«      \  }}|t         f|t         ffS |dz   }	t        ||	«      \  }}t        ||	«      \  }}t        ||||«      }
t        ||||«      }t        ||||«      }t        ||||«      }|
t	        |«      f||ffS )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€qØŒE‚zÜ˜q $¨Ó,‰ˆˆBØ”Eˆ{œU B˜KÐ'Ð'ØŒE‚zÜ˜1˜d CÓ(‰ˆˆ1Ø”5ˆz˜Aœu˜:Ð%Ð%Ø	�‰€BÜ�q˜"Ó�D€A€qÜ˜1˜bÓ!�F€BˆÜ
�!�R˜˜sÓ
#€CÜ
�!�R˜˜sÓ
#€CÜ
�!�R˜˜sÓ
#€CÜ
�!�R˜˜sÓ
#€CØ”˜“Ð  c 
Ð*Ð*rZ   c                 óÀ  — | \  }}|t         k(  r t        |||«      \  }}|t         f|t         ffS t        |t        |dz   «      |dz   «      }|t         k(  r t	        |||«      \  }}|t         ft         |ffS |dz   }	t        ||	«      \  }}t	        ||	«      \  }}t        ||||«      }
t        ||||«      }t        ||||«      }t        ||||«      }|
t        |«      f||ffS 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€qØŒE‚zÜ˜a  sÓ+‰ˆˆ1Ø”5ˆz˜Aœu˜:Ð%Ð%Ü�”6˜$˜q™&“> 4¨¡6Ó*€AØŒE‚zÜ˜q $¨Ó,‰ˆˆBØ”Eˆ{œU B˜KÐ'Ð'Ø	�‰€BÜ˜!˜RÓ �D€A€qÜ˜1˜bÓ!�F€BˆÜ
�!�R˜˜sÓ
#€CÜ
�!�R˜˜sÓ
#€CÜ
�!�R˜˜sÓ
#€CÜ
�!�R˜˜sÓ
#€CØ”˜“Ð  c 
Ð*Ð*rZ   c                 ó<   — | \  }}t        |t        |«      f||«      S )z:Complex hyperbolic cosine. Computed as cosh(z) = cos(z*i).)r  r)   r”   s        rX   Úmpc_coshr*  7  s"   € à�D€A€qÜ�A”w˜q“z�? D¨#Ó.Ð.rZ   c                 ó8   — | \  }}t        ||f||«      \  }}||fS )z;Complex hyperbolic sine. Computed as sinh(z) = -i*sin(z*i).)r  r”   s        rX   Úmpc_sinhr,  <  ó*   € à�D€A€qÜ�A�q�6˜4 Ó%�D€A€qØˆaˆ4€KrZ   c                 ó8   — | \  }}t        ||f||«      \  }}||fS )z>Complex hyperbolic tangent. Computed as tanh(z) = -i*tan(z*i).)r  r”   s        rX   Úmpc_tanhr/  B  r-  rZ   c                 óP  — | \  }}|dz   }t        t        ||«      t        |«      f}t        t        ||«      |f}t	        ||«      }t	        ||«      }	t        ||	||«      \  }}t        t        |d«      «      t        |d«      f}
|
d   t        k(  rt        | «      r|
d   t        f}
|
S )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€qð 
�‰€BÜ”�a˜Óœg a›jÐ(€AÜ”�a˜Ó˜aÐ€AÜ	��B‹€BÜ	��B‹€BÜ�2�r˜4 Ó%�D€A€qä”	˜!˜B“Ó ¤)¨A¨b£/Ð1€Að 	ˆ�tŒt‚|œ
 1œØˆq‰T”5ˆMˆØ€HrZ   gû:pÎˆä?g      ø?c                 ó	  — | \  }}|dz   }|t         k(  r×t        t        t        |«      |«      }|d   s+|dk(  rt	        |||«      t         fS t        |||«      t         fS |d   rKt        ||«      }t        t        |«      ||«      }	|dk(  r|t        |	«      fS t        t        |d«      «      |	fS t        |||«      }	|dk(  rt         |	fS t        ||«      }t        |d«      t        |	«      fS dx}
}|d   rt        |«      }d}
|d   rt        |«      }d}t        t        ||«      }t        t        ||«      }t        |||«      }t        |||«      }t        t        |||«      d«      }t        |||«      }t        |||«      }t        t        ||«      d   s!|dk(  rt	        ||«      }�nBt        ||«      }�n4t        |||«      }|d   s�t        |t        |||«      |«      }	t        |||«      }t        t        |t        |	||«      |«      d«      }|dk(  r"t        t        t!        ||«      ||«      |«      }n´t        t        |t!        ||«      |«      |«      }n’t        |t        |||«      |«      }	t        |t        |||«      |«      }t        t        |	||«      d«      }t        |t!        ||«      |«      }|dk(  rt        t        |||«      |«      }nt        t        |||«      |«      }t        t"        ||«      d   sÉt        |t        |||«      |«      }t        |«      d   r2t        |||«      }t        |||«      }t        t        |||«      d«      }n$t        |||«      }t        t        |||«      d«      }t        |t        |t        |«      |«      }t%        t        t        t        |t!        ||«      |«      |«      |«      }n=t!        t        t        |||«      t        |«      |«      }t%        t        |||«      |«      }|
r'|dk(  rt        t        |«      ||«      }nt        |«      }|s|dk(  rt        |«      }|r|dk(  rt        |«      }t'        |d   |d   |d   |d   ||«      }t'        |d   |d   |d   |d   ||«      }||fS )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  _  sƒ  € ð" �D€A€qØ	�‰€BàŒE‚zÜ”Tœ7 1›: rÓ*ˆà�!ŠuØ�AŠvÜ  4¨Ó-¬uÐ4Ð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ä  cÓ*�BÜ$ R¨Ó,¬g°a«jÐ8Ð8ØÐ€EˆEØˆ‚tÜ�A‹JˆØˆØˆ‚tÜ�A‹JˆØˆÜ	”�q˜"Ó	€BÜ	”�q˜"Ó	€BÜ�"�a˜Ó€AÜ�"�a˜Ó€AÜ”g˜a  BÓ'¨Ó,€EÜ�1�e˜RÓ €DÜ	��1�bÓ	€Bä”> 4¨Ó,¨QÒ/Ø�Š6Ü˜$ Ó#ŠBä˜$ Ó#ŠBô �U˜A˜rÓ"ˆà�!Šuô
 ˜œG A r¨2Ó.°Ó3ˆAÜ˜˜2˜rÓ"ˆAÜœ7 2¤w¨q°!°RÓ'8¸"Ó=¸rÓBˆBØ�AŠvÜœg¤h¨r°2Ó&6¸¸2Ó>ÀÓC‘äœg a¬°"°bÓ)9¸2Ó>ÀÓC‘ô ˜œG A r¨2Ó.°Ó3ˆAÜ˜œG A r¨2Ó.°Ó3ˆAÜœ7 1 a¨Ó,¨bÓ1ˆBÜ˜œH R¨Ó,¨bÓ1ˆBØ�AŠvÜœg b¨!¨RÓ0°"Ó5‘äœg a¨¨RÓ0°"Ó5�ô
 ”? E¨2Ó.¨qÒ1Ü�Rœ  B¨Ó+¨RÓ0ˆä�2‹;�qŠ>ä˜˜B Ó#ˆBÜ˜˜R Ó$ˆBÜœG B¨¨BÓ/°Ó4‰Cô ˜˜B Ó#ˆ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¨U°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°SÓ	9€BÜ	�2�a‘5˜"˜Q™%  A¡¨¨1©¨t°SÓ	9€BØˆrˆ6€MrZ   c                 ó   — t        | ||d«      S ©Nr   ©rA  r  s      rX   Úmpc_acosrE  ç  ó   € Ü�Q˜˜c 1Ó%Ð%rZ   c                 ó   — t        | ||d«      S r¯   rD  r  s      rX   Úmpc_asinrH  ê  rF  rZ   c                 ó\   — | \  }}t        |t        |«      f||«      \  }}t        |«      |fS re   )rH  r)   r”   s        rX   Ú	mpc_asinhrJ  í  s3   € à�D€A€qÜ�aœ ›�_ d¨CÓ0�D€A€qÜ�1‹:�qˆ=ÐrZ   c                 ór   — t        | ||«      \  }}|d   s	|t        k(  rt        |«      |fS |t        |«      fS rC  )rE  r   r)   r”   s        rX   Ú	mpc_acoshrL  ó  s?   € ô �A�t˜SÓ!�D€A€qØˆ‚tˆq”EŠzÜ�q‹z˜1ˆ}Ðà”'˜!“*ˆ}ÐrZ   c                 óö   — |dz   }t        | t        |«      }t        t        | |«      }t        ||«      }t        ||«      }t	        t        |||«      d«      }|d   t
        k(  rt        | «      rt        |d   f}|S )Nr  rÓ   r   r   )r‡   rÝ   r�   rÐ   r›   r%   rY   r   )rU   rz   rh   r»   rƒ   r„   rà   s          rX   Ú	mpc_atanhrN  ü  sw   € à	�‰€BÜ�”7˜BÓ€AÜ”˜˜BÓ€AÜ��2‹€AÜ��2‹€AÜ”'˜!˜Q Ó# RÓ(€Að 	ˆ�tŒt‚|œ
 1œÜ�A�a‘DˆMˆØ€HrZ   c                 ó’  — | \  }}|t         k(  rt        |||«      t         fS t        t        |d   |d   z   «      t        |d   |d   z   «      «      }||z   dz   }t	        |«      }t        t        |d«      t        |«      }t        |t         f| |«      }	t        | |«      }
t        |
|	|«      }
t        |	|
|«      }	t        |	|||«      }	|	S )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˜rÓ"€AÜ�1�bÓ€AÜ��1�bÓ€AÜ��1�bÓ€AÜ�A�q˜$ Ó$€AØ€HrZ   c                 ó   — t         ‚re   ©r9   ©rŠ   rz   rh   s      rX   Úmpf_expjrU    ó   € Ü
ÐrZ   c                 ó  — | \  }}|t         k(  rt        |||«      S |t         k(  rt        t        |«      ||«      t         fS t        t        |«      |dz   «      }t        ||dz   «      \  }}t	        ||||«      }t	        ||||«      }||fS r¹   )r   r=   r;   r)   r,   )rU   rz   rh   rV   rW   Úeyr…   r¬   s           rX   Úmpc_expjrY    s‘   € Ø�F€BˆØ	ŒU‚{Ü˜2˜t SÓ)Ð)Ø	ŒU‚{Ü”w˜r“{ D¨#Ó.´Ð5Ð5Ü	”˜“˜d 2™gÓ	&€BÜ�r˜4 ™7Ó#�D€A€qÜ	��Q˜˜cÓ	"€BÜ	��Q˜˜cÓ	"€BØˆrˆ6€MrZ   c                 ó   — t         ‚re   rS  rT  s      rX   Ú
mpf_expjpir[  (  rV  rZ   c                 óp  — | \  }}|t         k(  rt        |||«      S |\  }}}}|dz   }	|r|	t        d||z   «      z  }	t        t	        t        |	«      ||	«      «      }|t         k(  rt        |||«      t         fS t        ||dz   «      }
t        ||dz   «      \  }}t	        |
|||«      }t	        |
|||«      }||fS )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‰€BÙ
Ø
Œc�!�S˜‘V‹nÑˆÜ	”œ › R¨Ó,Ó	-€BØ	ŒU‚{Ü�r˜4 Ó%¤uÐ,Ð,Ü	��T˜"‘WÓ	€BÜ˜"˜d 2™gÓ&�D€A€qÜ	��Q˜˜cÓ	"€BÜ	��Q˜˜cÓ	"€BØˆrˆ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   Ç=$H# È#H5È4H5