§
    JŠtjûh  ã                   óv  — 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“dJdD„Z”dJdE„Z•dJdF„Z–dJdG„Z—edHk    r6	 ddl˜m™c mšc m›Zœ eœj~        Z~eœjz        ZzdS # e�ežf$ r  eŸdI¦  «         Y dS w xY wdS )Kz-
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                 ó<   — | \  }}|t           v rdS |t           v rdS dS )z2Check if either real or imaginary part is infiniteTF)Ú_infs©ÚzÚreÚims      úQ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/mpmath/libmp/libmpc.pyÚ
mpc_is_infrY   )   s*   € à�F€BˆØ	�U€{€{˜4˜4Ø	�U€{€{˜4˜4Øˆ5ó    c                 ó<   — | \  }}|t           v rdS |t           v rdS dS )z9Check if either real or imaginary part is infinite or nanTF)Ú	_infs_nanrT   s      rX   Úmpc_is_infnanr]   0   s*   € à�F€BˆØ	�Y€€˜t˜tØ	�Y€€˜t˜tØˆ5rZ   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   sv   € Ø�F€BˆÝ	��C‰Œ€BØ	ˆ!„uð <Ø�E‰z�F¥7¨2¡;¤;°Ð>Ð>°vÐ>Ð>Ñ>ÀÑDÐDà�E‰z�F 2 sÐ5Ð5¨fÐ5Ð5Ñ5¸Ñ;Ð;rZ   Fc                 óh   — | \  }}t          t          |||¦  «        t          |||¦  «        ¦  «        S ©N)Úcomplexr   )rU   ÚstrictÚrndrV   rW   s        rX   Úmpc_to_complexri   ?   s3   € Ø�F€BˆÝ•8˜B ¨Ñ,Ô,­h°r¸6À3Ñ.GÔ.GÑHÔHÐHrZ   c                 óV  — t           j        dk    r\| \  }}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ŒL�3œ=Ô-µ¸±´Ñ<Ñ<ˆà�•C”MÔ'Ñ'Ñ(ˆÝ�1‰vŒvˆð	Ý� q°Ð6Ñ6Ô6Ñ7Ô7Ð7øÝð 	ð 	ð 	Ý˜‘7”7ˆNˆNˆNð	øøøs   Á.B ÂB(Â'B(c                 ó2   — | \  }}|t          |||¦  «        fS re   ©r)   ©rU   Úprecrh   rV   rW   s        rX   Úmpc_conjugater{   P   s"   € Ø�F€BˆØ�w�r˜4 Ñ%Ô%Ð%Ð%rZ   c                 ó   — | t           k    S re   )Úmpc_zero)rU   s    rX   Úmpc_is_nonzeror~   T   s   € Ø•Š=ÐrZ   c                 ó^   — | \  }}|\  }}t          ||||¦  «        t          ||||¦  «        fS re   ©r*   ©rU   Úwrz   rh   ÚaÚbÚcÚds           rX   Úmpc_addr‡   W   ó;   € Ø�D€A€qØ�D€A€qÝ�1�a˜˜sÑ#Ô#¥W¨Q°°4¸Ñ%=Ô%=Ð=Ð=rZ   c                 ó4   — | \  }}t          ||||¦  «        |fS re   r€   )rU   Úxrz   rh   rƒ   r„   s         rX   Úmpc_add_mpfr‹   \   ó$   € Ø�D€A€qÝ�1�a˜˜sÑ#Ô# QÐ&Ð&rZ   c                 ó^   — | \  }}|\  }}t          ||||¦  «        t          ||||¦  «        fS re   ©r+   r�   s           rX   Úmpc_subr�   `   rˆ   rZ   c                 ó4   — | \  }}t          ||||¦  «        |fS re   rŽ   )rU   Úprz   rh   rƒ   r„   s         rX   Úmpc_sub_mpfr’   e   rŒ   rZ   c                 óP   — | \  }}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Ð7Ð7rZ   c                 óP   — | \  }}t          |||¦  «        t          |||¦  «        fS re   rx   r”   s        rX   Úmpc_negr˜   m   r–   rZ   c                 óL   — | \  }}t          ||¦  «        t          ||¦  «        fS re   )r/   )rU   Únrƒ   r„   s       rX   Ú	mpc_shiftr›   q   s&   € Ø�D€A€qÝ�Q˜‰?Œ?�I a¨™OœOÐ+Ð+rZ   c                 ó0   — | \  }}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                 ó0   — | \  }}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                 óP   — | \  }}t          |||¦  «        t          |||¦  «        fS re   )r3   r”   s        rX   Ú	mpc_floorr¡   €   s.   € Ø�D€A€qÝ�Q˜˜cÑ"Ô"¥I¨a°°sÑ$;Ô$;Ð;Ð;rZ   c                 óP   — | \  }}t          |||¦  «        t          |||¦  «        fS re   )r4   r”   s        rX   Úmpc_ceilr£   „   ó.   € Ø�D€A€qÝ�A�t˜SÑ!Ô!¥8¨A¨t°SÑ#9Ô#9Ð9Ð9rZ   c                 óP   — | \  }}t          |||¦  «        t          |||¦  «        fS re   )r5   r”   s        rX   Úmpc_nintr¦   ˆ   r¤   rZ   c                 óP   — | \  }}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­   ‘   sy   € ð �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°   £   sa   € à�D€A€qÝ��!‰Œ€AÝ��!‰Œ€AÝ��!�T˜3ÑÔ€AÝ	��A�t˜SÑ	!Ô	!€BÝ	�1�a‰Œ€BØˆrˆ6€MrZ   c                 ó\   — | \  }}t          ||||¦  «        }t          ||||¦  «        }||fS re   )r,   ©rU   r‘   rz   rh   rƒ   r„   rV   rW   s           rX   Úmpc_mul_mpfr³   ­   s:   € Ø�D€A€qÝ	��A�t˜SÑ	!Ô	!€BÝ	��A�t˜SÑ	!Ô	!€BØˆrˆ6€MrZ   c                 óv   — | \  }}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µ   ³   sD   € ð �D€A€qÝ	•˜˜A˜t SÑ)Ô)Ñ	*Ô	*€BÝ	��A�t˜SÑ	!Ô	!€BØˆrˆ6€MrZ   c                 ó\   — | \  }}t          ||||¦  «        }t          ||||¦  «        }||fS re   )r.   )rU   rš   rz   rh   rƒ   r„   rV   rW   s           rX   Úmpc_mul_intr·   ¼   s:   € Ø�D€A€qÝ	�Q˜˜4 Ñ	%Ô	%€BÝ	�Q˜˜4 Ñ	%Ô	%€BØˆrˆ6€MrZ   c                 óv  — | \  }}|\  }}|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Ô
3€Cå•˜˜!‘”�g a¨™lœl¨BÑ/Ô/€AÝ•˜˜!‘”�g a¨™lœl¨BÑ/Ô/€AÝ�1�S˜˜cÑ"Ô"¥G¨A¨c°$°sÑ$;Ô$;Ð;Ð;rZ   c                 ó\   — | \  }}t          ||||¦  «        }t          ||||¦  «        }||fS )zCalculate z/p where p is real)r-   r²   s           rX   Úmpc_div_mpfrÁ   Í   s:   € à�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Å   Ô   sg   € à�D€A€qÝ•˜˜!‘”�W Q q™\œ\¨$¨r©'Ñ2Ô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Ç   Ü   sw   € à�D€A€qÝ•˜˜!‘”�W Q q™\œ\¨4°©7Ñ3Ô3€AÝ	•˜˜1‘”˜q $¨Ñ	,Ô	,€BÝ	•�  1™œÑ&Ô&¨¨4°Ñ	5Ô	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  }|°:||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Ì   ä   s‡   € ð €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Ñ   ñ   sW   € Øˆ„t�u‚}€}Ý˜1˜a œd D¨#Ñ.Ô.Ð.Ý•7�7 1 d¨2¡gÑ.Ô.°°4¸±7Ñ;Ô;¸TÀ3ÑGÔ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€yÝ˜1˜r E™k¨T°4©ZÑ8¸$ÀÑDÔDÐDØˆr‚z€zÝ˜˜D ™GÑ$Ô$ˆÝ˜5 2¨¡+°Ñ"4°d¸CÑ@Ô@Ð@Ý•;�w q¨$¨r©'Ñ2Ô2°A°t¸B±wÑ?Ô?ÀÀsÑKÔKÐKrZ   c           	      ó  — | \  }}|t           k    rt          ||||¦  «        t           fS |t           k    rmt          ||||¦  «        }|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     rr|dk    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Ô   ÿ   sL  € Ø�D€A€qØ�E‚z€zÝ˜1˜a  sÑ+Ô+­UÐ2Ð2Ø�E‚z€zÝ˜˜1˜d CÑ(Ô(ˆØ	ˆQ‰ˆØ�Š6ˆ6Ø•e�8ˆOØ�!ŠVˆVÝ˜!�8ˆOØ�!ŠVˆVÝ˜1‘:”:�uÐ$Ð$Ø�!ŠVˆVÝ�' !™*œ*Ð$Ð$ØˆA‚v€v•gˆ~ØˆA‚v€v•g˜a  sÑ+Ô+Ð+ØˆA‚v€v•j  D¨#Ñ.Ô.Ð.ØˆB‚w€w•~ a¨¨sÑ3Ô3Ð3Øˆ1‚u€u•^¥K°°A°2°t¸A±vÑ$>Ô$>ÀÀcÑJÔJÐJØÑ€Eˆ4��sØÑ€Eˆ4��sØÐ�d�UˆdØÐ�d�UˆdØ	�‰€BÝ�‰WŒW€FØ�F�S  c™]œ]Ñ*Ñ+€JØ�EÒÐØ�Š6ˆ6Ø�R‰KˆDØˆDˆDà�r�c‰NˆDØˆDÝ   t¨QÑ/Ô/‰ˆˆBÝ˜"�c ! D¡&™kœk¨4°Ñ5Ô5ˆÝ˜"�c ! D¡&™kœk¨4°Ñ5Ô5ˆØ�2ˆvˆÝ•;�w q¨$¨r©'Ñ2Ô2°A°t¸B±wÑ?Ô?ÀÀsÑKÔKÐKrZ   c                 ó  — | \  }}|t           k    rX|t           k    r||fS |d         r't          t          |¦  «        ||¦  «        }t           |fS t          |||¦  «        }|t           fS |dz   }|d         sut          t	          ||f|¦  «        ||¦  «        }t          |d¦  «        }	t          |	||¦  «        }t          |d¦  «        }
t          |
|¦  «        }t          ||||¦  «        }nš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Õ   '  sŠ  € ð
 �D€A€qØ�E‚z€zØ•Š:ˆ:Ø�q�6ˆMàˆQŒ4ð 	Ý�' !™*œ* d¨CÑ0Ô0ˆBÝ˜2�;Ðå˜!˜T 3Ñ'Ô'ˆBØ��;ÐØ	ˆb‰€BØˆQŒ4ð Ý•W˜a ˜V RÑ(Ô(¨!¨RÑ0Ô0ˆÝ�a˜ÑÔˆÝ�a˜˜sÑ#Ô#ˆÝ�a˜‰OŒOˆÝ�a˜‰_Œ_ˆÝ�Q˜˜4 Ñ%Ô%ˆˆå•G˜Q ˜F BÑ'Ô'¨¨BÑ/Ô/ˆÝ�a˜ÑÔˆÝ�a˜˜sÑ#Ô#ˆÝ�a˜‰OŒOˆÝ�a˜‰_Œ_ˆÝ�Q˜˜4 Ñ%Ô%ˆØˆQŒ4ð 	Ý˜‘”ˆBÝ˜‘”ˆBØˆrˆ6€MrZ   c                 óz  — d}t          t          | |||z  z
  ¦  «        ¦  «        }t          t          ||||z  z
  ¦  «        ¦  «        }	 |d|z  z   d|z  z  }|j        }|j        }	t	          t          |¦  «        ¦  «        }t	          t          |	¦  «        ¦  «        }	n‹# t
          $ r~ t          ||¦  «        }t          ||¦  «        }t          |¦  «        }
t          d|
|¦  «        }t          ||f|t          f|¦  «        \  }}	t          |¦  «        }t          |	¦  «        }	Y nw xY w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 )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�t˜a ™g‘~Ñ&Ô&Ñ	'Ô	'€BÝ	�V�A�t˜a ™g‘~Ñ&Ô&Ñ	'Ô	'€BðØ�"�r‘'‰\˜S ™UÑ#ˆØŒVˆØŒVˆÝ•�R‘”‰\Œ\ˆÝ•�R‘”‰\Œ\ˆˆøÝð ð ð Ý�b˜%Ñ Ô ˆÝ�b˜%Ñ Ô ˆÝ�a‰[Œ[ˆÝ˜1˜b %Ñ(Ô(ˆÝ˜"˜b˜ C­ <°Ñ7Ô7‰ˆˆBÝ�B‰ZŒZˆÝ�B‰ZŒZˆˆˆðøøøð €EØ€EØ€FÝ˜  U¡
Ñ+Ô+ð ð ˆå" 2 r¨1¨Q©3Ñ/Ô/‰ˆˆSÝ�S˜1˜Q™3 ™+¨™/¨FÑ2Ñ3Ô3ˆÝ�S˜1˜Q™3 ™+¨™/¨FÑ2Ñ3Ô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€Ms   Á
AB ÂBD'Ä&D'c                 óV  — | \  }}|d         dk    r&|t           k    rt          ||||¦  «        }|t           fS |dk     r|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
k    r||d	         |d         z   |k     rgt          ||¦  «        }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€y�Q�%’Z�ZÝ˜˜A˜t SÑ)Ô)ˆØ•Eˆ{ÐØˆ1‚u€uØ�Š6ˆ6ÝˆNØ�Š6ˆ6Ý˜A˜q˜6 4¨Ñ-Ô-Ð-Ø�Š7ˆ7Ý�7 Q¨ F¨D°#Ñ6Ô6Ð6Ý˜q !˜f q b¨$¨q©&µ.ÀÔ2EÑFÔFˆÝ•w ¨¨sÑ3Ô3Ð3ØˆB‚w€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Ô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Ô6�F€BˆÝ	�2�a”5˜"˜Qœ%  A¤¨¨1¬¨t°SÑ	9Ô	9€BÝ	�2�a”5˜"˜Qœ%  A¤¨¨1¬¨t°SÑ	9Ô	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                 ó0  — | \  }}|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€zÝ˜1˜d CÑ(Ô(Ð(Ø�E‚z€zÝ�q˜$ Ñ$Ô$¥eÐ+Ð+Ý
�!�T˜!‘V˜SÑ
!Ô
!€CÝ�q˜$˜q™& #Ñ&Ô&�D€A€qÝ	��a˜˜sÑ	#Ô	#€BÝ	��a˜˜sÑ	#Ô	#€BØˆrˆ6€MrZ   c                 óh   — t          | d         | d         ||¦  «        }t          | ||¦  «        }||fS )Nr   r   )rA   rŸ   ry   s        rX   rÐ   rÐ   ¼  s7   € Ý	�q˜”t˜Q˜qœT 4¨Ñ	-Ô	-€BÝ	��D˜#Ñ	Ô	€BØˆrˆ6€MrZ   c                 óX  — | \  }}|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€zÝ�q˜$ Ñ$Ô$¥eÐ+Ð+Ø�E‚z€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€zÝ�q˜$ Ñ$Ô$¥eÐ+Ð+Ø�E‚z€zÝ•h˜q $¨Ñ,Ô,Ð,Ð,Ø	�‰€BÝ�q˜"ÑÔ�D€A€qÝ˜1˜bÑ!Ô!�F€BˆÝ	��B˜˜cÑ	"Ô	"€BÝ	��B˜˜cÑ	"Ô	"€BØˆrˆ6€MrZ   c                 ó¼  — | \  }}|\  }}}}|\  }	}
}}|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€z�' ! T¨3Ñ/Ô/µÐ6Ð6Ø�E‚z€z�%¥¨!¨T°3Ñ!7Ô!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                 ó   — | \  }}|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€zÝ˜!˜T 3Ñ'Ô'­Ð.Ð.Ý�•6˜$˜q™&‘>”> 4¨¡6Ñ*Ô*€AØ�E‚z€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€zÝ˜!˜T 3Ñ'Ô'­Ð.Ð.Ý�•6˜$˜q™&‘>”> 4¨¡6Ñ*Ô*€AØ�E‚z€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€zÝ˜q $¨Ñ,Ô,‰ˆˆBØ•Eˆ{�U B˜KÐ'Ð'Ø�E‚z€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€zÝ˜a  sÑ+Ô+‰ˆˆ1Ø•5ˆz˜A�u˜:Ð%Ð%Ý�•6˜$˜q™&‘>”> 4¨¡6Ñ*Ô*€AØ�E‚z€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                 óL   — | \  }}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”z�? D¨#Ñ.Ô.Ð.rZ   c                 ó@   — | \  }}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                 ó@   — | \  }}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                 ó¶  — | \  }}|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œ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                 ó0  — | \  }}|dz   }|t           k    �rt          t          t          |¦  «        |¦  «        }|d         s6|dk    rt	          |||¦  «        t           fS t          |||¦  «        t           fS |d         rdt          ||¦  «        }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	          ||¦  «        }�n¯t          ||¦  «        }�n�t          |||¦  «        }|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         rBt          |||¦  «        }t          |||¦  «        }t          t          |||¦  «        d¦  «        }n0t          |||¦  «        }t          t          |||¦  «        d¦  «        }t          |t          |t          |¦  «        |¦  «        }t%          t          t          t          |t!          ||¦  «        |¦  «        |¦  «        |¦  «        }nRt!          t          t          |||¦  «        t          |¦  «        |¦  «        }t%          t          |||¦  «        |¦  «        }|
r4|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�zÝ•T�7 1™:œ: rÑ*Ô*ˆà�!Œuð 	9Ø�AŠvˆvÝ  4¨Ñ-Ô-­uÐ4Ð4å  4¨Ñ-Ô-­uÐ4Ð4ð �Œtð 9Ý˜D #Ñ&Ô&�Ý�g a™jœj¨$°Ñ4Ô4�Ø˜’6�6Ø�w q™zœz˜>Ð)å"¥9¨R°Ñ#4Ô#4Ñ5Ô5°qÐ8Ð8õ ˜a  sÑ+Ô+�Ø˜’6�6Ý  !˜8�Oå  cÑ*Ô*�BÝ$ R¨Ñ,Ô,­g°a©j¬jÐ8Ð8ØÐ€EˆEØˆ„tð Ý�A‰JŒJˆØˆØˆ„tð Ý�A‰JŒJˆØˆÝ	•�q˜"Ñ	Ô	€BÝ	•�q˜"Ñ	Ô	€BÝ�"�a˜ÑÔ€AÝ�"�a˜ÑÔ€AÝ•g˜a  BÑ'Ô'¨Ñ,Ô,€EÝ�1�e˜RÑ Ô €DÝ	��1�bÑ	Ô	€Bå•> 4¨Ñ,Ô,¨QÔ/ð &6Ø�Š6ˆ6Ý˜$ Ñ#Ô#ˆB‰Bå˜$ Ñ#Ô#ˆB‰Bõ �U˜A˜rÑ"Ô"ˆà�!Œuð 	6õ
 ˜�G A r¨2Ñ.Ô.°Ñ3Ô3ˆAÝ˜˜2˜rÑ"Ô"ˆAÝ�7 2¥w¨q°!°RÑ'8Ô'8¸"Ñ=Ô=¸rÑBÔBˆBØ�AŠvˆvÝ�g¥h¨r°2Ñ&6Ô&6¸¸2Ñ>Ô>ÀÑCÔC��å�g a­°"°bÑ)9Ô)9¸2Ñ>Ô>ÀÑCÔC��õ ˜�G A r¨2Ñ.Ô.°Ñ3Ô3ˆAÝ˜�G A r¨2Ñ.Ô.°Ñ3Ô3ˆAÝ�7 1 a¨Ñ,Ô,¨bÑ1Ô1ˆBÝ˜�H R¨Ñ,Ô,¨bÑ1Ô1ˆBØ�AŠvˆvÝ�g b¨!¨RÑ0Ô0°"Ñ5Ô5��å�g a¨¨RÑ0Ô0°"Ñ5Ô5�õ
 •? E¨2Ñ.Ô.¨qÔ1ñ 1Ý�R�  B¨Ñ+Ô+¨RÑ0Ô0ˆå�2‰;Œ;�qŒ>ð 	5å˜˜B Ñ#Ô#ˆBÝ˜˜R Ñ$Ô$ˆBÝ�G B¨¨BÑ/Ô/°Ñ4Ô4ˆCˆCõ ˜˜B Ñ#Ô#ˆBÝ�G B¨¨BÑ/Ô/°Ñ4Ô4ˆCå�S�' %­¨rÑ2Ô2°BÑ7Ô7ˆÝ•W�T¥7¨3µ¸¸RÑ0@Ô0@À"Ñ#EÔ#EÀrÑJÔJÈBÑOÔOˆˆõ •g�g e¨U°BÑ7Ô7½¸rÑBÔBÀBÑGÔGˆÝ•W˜U B¨Ñ+Ô+¨RÑ0Ô0ˆØð Ø�Š6ˆ6Ý� ™œ R¨Ñ,Ô,ˆBˆBå˜‘”ˆBØð �Q˜!’V�VÝ�R‰[Œ[ˆØð ��a’�Ý�R‰[Œ[ˆÝ	�2�a”5˜"˜Qœ%  A¤¨¨1¬¨t°SÑ	9Ô	9€BÝ	�2�a”5˜"˜Qœ%  A¤¨¨1¬¨t°SÑ	9Ô	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          |t          |¦  «        f||¦  «        \  }}t          |¦  «        |fS re   )rH  r)   r”   s        rX   Ú	mpc_asinhrJ  í  s:   € à�D€A€qÝ�a� ™œ�_ d¨CÑ0Ô0�D€A€qÝ�1‰:Œ:�qˆ=ÐrZ   c                 ó”   — t          | ||¦  «        \  }}|d         s|t          k    rt          |¦  «        |fS |t          |¦  «        fS rC  )rE  r   r)   r”   s        rX   Ú	mpc_acoshrL  ó  sM   € õ �A�t˜SÑ!Ô!�D€A€qØˆ„tð ˆq•EŠzˆzÝ�q‰zŒz˜1ˆ}Ðà•'˜!‘*”*ˆ}ÐrZ   c                 óD  — |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  ü  s�   € à	�‰€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Ô!1Ñ2Ô2€DØ	�‰�rÑ	€BÝ�‰Œ€AÝ•	˜!˜Q‘”¥¨Ñ+Ô+€AÝ�•E�
˜A˜rÑ"Ô"€AÝ�1�bÑÔ€AÝ��1�bÑÔ€AÝ��1�bÑÔ€AÝ�A�q˜$ Ñ$Ô$€AØ€HrZ   Úfc                 ó   — t           ‚re   ©r9   ©rŠ   rz   rh   s      rX   Úmpf_expjrV    ó   € Ý
Ð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_expjrZ    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   rT  rU  s      rX   Ú
mpf_expjpir\  (  rW  rZ   c                 óÊ  — | \  }}|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»   rY  r…   r¬   s                rX   Ú
mpc_expjpirb  +  só   € Ø�F€BˆØ	�U‚{€{Ý˜b $¨Ñ,Ô,Ð,ØÑ€Dˆ#ˆs�BØ	ˆb‰€BØ
ð Ø
�c�!�S˜‘V‰nŒ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)rR  ) Ú__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  rV  rZ  r\  rb  Úsage.libs.mpmath.ext_libmpÚlibsÚmpmathÚ	ext_libmpÚ_lbmpÚImportErrorÚAttributeErrorÚprintrÉ   rZ   rX   ú<module>rr     sÐ	  ððð ð €
€
€
à =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð �ˆ+€Ø�%ˆ<€Ø
�ˆ+€Ø�5ˆ>€à	ˆuˆ€Ø�5˜$Ð€	ðð ð ðð ð ð<ð <ð <ð #¨
ð Ið Ið Ið Iðð ð ð  *ð &ð &ð &ð &ðð ð ð 'ð >ð >ð >ð >ð
 !+ð 'ð 'ð 'ð 'ð ˜jð >ð >ð >ð >ð
  *ð 'ð 'ð 'ð 'ð $ð 8ð 8ð 8ð 8ð ˜jð 8ð 8ð 8ð 8ð,ð ,ð ,ð $ð &ð &ð &ð &ð $ð &ð &ð &ð &ð
 &ð <ð <ð <ð <ð %ð :ð :ð :ð :ð %ð :ð :ð :ð :ð %ð :ð :ð :ð :ð
 'ð ð ð ð ð$ 'ð ð ð ð ð !+ð ð ð ð ð &0ð ð ð ð ð !+ð ð ð ð ð 'ð 	<ð 	<ð 	<ð 	<ð !+ð ð ð ð ð !+ð ð ð ð ð !+ð ð ð ð ðð ð ð 'ð Hð Hð Hð Hð
 !+ð Lð Lð Lð Lð !+ð &Lð &Lð &Lð &LðP %ð "ð "ð "ð "ðH%ð %ð %ðN !+ð 'ð 'ð 'ð 'ðR %ð (ð (ð (ð (ð $ð ð ð ð ð6 $ð ð ð ð ð
 $ð ð ð ð ð( $ð ð ð ð ð  $ð ð ð ð ð& 'ð ð ð ð ð 'ð ð ð ð ð (ð +ð +ð +ð +ð" !+ð +ð +ð +ð +ð$ %ð /ð /ð /ð /ð
 %ð ð ð ð ð %ð ð ð ð ð %ð ð ð ð ð& �˜FÑ#Ô#€Ø�*˜S‘/”/€ðFð Fð FðP %ð &ð &ð &ð &ð %ð &ð &ð &ð &ð &ð ð ð ð ð &ð ð ð ð ð &ð ð ð ð ð  *ð ð ð ð ðð ð ð ð
ð 
ð 
ð 
ðð ð ð ðð ð ð ð$ ˆfÒÐð8Ø2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ø”-ˆØ”>ˆˆˆøØ˜Ð(ð 8ð 8ð 8ØˆÐ6Ñ7Ô7Ð7Ð7Ð7Ð7ð8øøøð Ðs   ÈH  È H6È5H6