U
    ZÊ¹jã#  ã                   @   sd   d dl Z d dlT dd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )é    N)Ú*c                  C   sn   dt _dd„ } t| ddgddd�\}}|d	k s2t‚td
ƒD ].}d|d  }tt||ƒ| |ƒ ƒ|k s:t‚q:d S )Né   c                 S   s   t dd|   ƒ|  S )Né   )Úcos©Úx© r   úY/var/www/html/bwave/python/venv/lib/python3.8/site-packages/mpmath/tests/test_calculus.pyÚ<lambda>   ó    z$test_approximation.<locals>.<lambda>r   é   é   T)Úerrorgñhãˆµøä>é
   g      @)ÚmpÚdpsZchebyfitÚAssertionErrorÚrangeÚabsÚpolyval)ÚfÚpÚerrÚir   r   r   r	   Útest_approximation   s    r   c                   C   sB   dt _tdd„ dƒ tdƒd ¡s&t‚tdd„ tƒ t¡s>t‚d S )Nr   c                 S   s   | t | ƒ | d  S )Né   )Úsinr   r   r   r	   r
      r   ztest_limits.<locals>.<lambda>r   é   é   c                 S   s   dd|   |  S ©Nr   r   )Únr   r   r	   r
      r   )r   r   ÚlimitÚaeÚmpfr   ÚinfÚer   r   r   r	   Útest_limits   s     r&   c                  C   sr   t g dƒdkst‚t dgdƒdks&t‚t dgdƒdks:t‚ddddg} t | dƒdksXt‚t | ddd�d	ksnt‚d S )
Nr   r   é   r   éþÿÿÿéý   T)Z
derivative)r)   é¾   )r   r   ©r   r   r   r	   Útest_polyval   s    r,   c                  C   sŠ   t ddgƒ} | d  d¡st‚t dddgƒ\} }|  dtdƒt  ¡sJt‚| dtdƒt  ¡sdt‚t dgƒg ksvt‚t tdd	„ ¡ d S )
Nr   éüÿÿÿr   r   r   r   éÿÿÿÿc                   S   s
   t dgƒS )Nr   )Ú	polyrootsr   r   r   r	   r
   #   r   z test_polyroots.<locals>.<lambda>)r/   r"   r   ÚsqrtÚjÚpytestÚraisesÚ
ValueError)r   Úqr   r   r	   Útest_polyroots   s    r6   c               B   C   s„  d} ddddddddddddd	dd
dddddddddddddddddddddddddddddddddddddddddddd dd!dd"dd#gA}t  d$¡�æ t t j¡� t|d%d&d'| d( d)� W 5 Q R X t|d*d&d'| d( d)�}d+d,„ |D ƒ}|d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdlg@k�svt‚W 5 Q R X d S )mNé@   ì	   #!”¤yÓUMDQj~U4	 r   ì÷ÿÿÿ`<²	&&
 xXD`D� ì	   Ð#~O6dI�W6o²¡b9ì÷ÿÿÿ NÚ$‡U­VOF>³`…}Dì	   ha0¦rÌ3(|Wo9Eìöÿÿÿàcs9�l™MhPc;/,3 ì
   pâ~	#ð]¤‚lùs<m ìöÿÿÿ Wß)ç4“G‡°`ŸY ì
   Ô<¥gó?IŒ"GX)p@/ ìöÿÿÿàög24ú¸Kc�89z… ì
   Ð 1_âbm-ƒ9w:øbYj ìöÿÿÿ 	Œ@bmÏDu#Ép‹O2‡> ì
   ØJ=Ð{|L	mã~È;` ìöÿÿÿ`|½fl?Ñ'ÕhØ_ÖÖK¥ ì
   ðeŒoÔ.!03aÉ—7Í# ì÷ÿÿÿ /Ç $+È-kMsf]¤`û:ì	   ’þ;bfL†HQLRì÷ÿÿÿ /�¦vÍ\ Q¼B‘8¢%Œì	   ðe¤]r+…a ;M~ÕDML³ì÷ÿÿÿ`|]€B`3*0Vwk£_ ì	   ØJ5]c<üO¤JÖg¢1 ì÷ÿÿÿ 	”x,a6ƒF~E8P ì   Ð ‰VÉ'6@âhË>ˆ)ìøÿÿÿà~&-ME³	A"ì   Ô<-A»Gn,a;Ã0À$S ìøÿÿÿ W?nÀ05õ%Zu½ ì   pbŽzÐ^.qìùÿÿÿàcd qT¿Tõ ì   h9N$$).ÁlF4 ìúÿÿÿ NÂs,�1j	ì   Ð#vsKn?b; ìûÿÿÿ`<xŽ!£uì   #!°Oä»er   r'   TFr   ©ÚmaxstepsÚcleanupr   Ú	extraprecé2   c                 S   s   g | ]}t |ƒ‘qS r   )Ústr)Ú.0Úrr   r   r	   Ú
<listcomp>P   s     z+test_polyroots_legendre.<locals>.<listcomp>ú-0.999ú-0.996ú-0.991ú-0.983ú-0.973ú-0.961ú-0.946ú-0.93ú-0.911ú-0.889ú-0.866ú-0.841ú-0.813ú-0.784ú-0.753ú-0.72ú-0.685ú-0.649ú-0.611ú-0.572ú-0.531ú-0.489ú-0.446ú-0.402ú-0.357ú-0.311ú-0.265ú-0.217ú-0.17ú-0.121ú-0.073ú-0.0243ú0.0243ú0.073ú0.121ú0.17ú0.217ú0.265z0.311ú0.357ú0.402ú0.446ú0.489ú0.531ú0.572ú0.611ú0.649ú0.685ú0.72ú0.753ú0.784ú0.813ú0.841ú0.866ú0.889ú0.911ú0.93ú0.946ú0.961ú0.973ú0.983ú0.991ú0.996ú0.999)r   Úworkdpsr2   r3   ÚNoConvergencer/   r   )r    ÚcoeffsÚrootsr   r   r	   Útest_polyroots_legendre%   s                                  à"
ÿ
ÿ                                                 ÷ÿr¥   c               B   C   sô  d} ddddddddddddd	dd
dddddddddddddddddddddddddddddddddddddddddddd dd!dd"dd#gA}t d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcddgAƒ}t detj ¡� t|dfdgdhde|  di�}W 5 Q R X t tj¡� t|djdgdh| di� W 5 Q R X t|djdgdg| |dk�\}}tt |ƒt |ƒ 	t
¡ ƒ|k �s¬t‚t|dldgdg| |d dm… dk�\}}tt |ƒt |ƒ 	t
¡ ƒ|k �sðt‚d S )nNéd   r8   r   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   z 0.311rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   rš   r›   rœ   r�   rž   rŸ   r    z1.0r   r]   TFrY   r'   )rZ   r[   r   r\   Ú
roots_inité   é<   )Úmatrixr   r¡   r   r/   r2   r3   r¢   ÚmaxÚapplyr   r   )Z
extra_precr£   r§   Zroots_exactr¤   r   Zroots1Zerr1r   r   r	   Útest_polyroots_legendre_init]   s$                                  à"                                                ô
ÿ
ÿ
 ÿ
$
 
ÿ
r­   c            	      C   s¶   t dƒ} dt_d}| g}d}td|d ƒD ]}||9 }| | | ¡ q*t||d |d ƒ\}}tdddƒD ]@}t|d d d… |ƒt|d d d… |ƒ }| t	|ƒd¡sjt
‚qjd	t_d S )
Nr   é   r   r   r   gš™™™™™¹?r.   g»½×Ùß|Û=r   )r#   r   r   r   ÚappendZpadeZaranger   r"   Úexpr   )	ÚoneÚNÚaÚkr   r   r5   r   r`   r   r   r	   Ú	test_pade›   s    (rµ   c                  C   sÚ   dt _tdd„ ddgdƒ\} }| d  d¡s0t‚| d  d	td
ƒ dt  ¡sRt‚| d  d
td
ƒ dt  ¡stt‚|d dks„t‚|d  d
dt  ¡sžt‚|d  d
dt  ¡s¸t‚t| |fddgdƒ d¡sÖt‚d S )Nr   c                 S   s   | d S r   r   r   r   r   r	   r
   ¬   r   ztest_fourier.<locals>.<lambda>r.   r   r   g      ø?r   éýÿÿÿr   r   gè–¯®�þ?)r   r   Zfourierr"   r   r0   ÚpiZ
fourierval)ÚcÚsr   r   r	   Útest_fourierª   s    ""rº   c                   C   s4   dt _tdd„ ddƒ dtdt ƒ d ¡s0t‚d S )Nr   c                 S   s   | S ©Nr   ©Útr   r   r	   r
   ¸   r   z test_differint.<locals>.<lambda>r   g      à¿r   r   )r   r   Z	differintr"   r0   r·   r   r   r   r   r	   Útest_differint¶   s    r¾   c                  C   sê  dt _d} dd„ }dd„ }|| ƒ}t|| dd� |¡s:t‚t|| dd� |¡sRt‚t|| d	d� |¡sjt‚t|| d
d� |¡s‚t‚d} || ƒ}t|| dd� |¡s¦t‚t|| dd� |¡s¾t‚t|| d	d� |¡sÖt‚t|| d
d� |¡sît‚d} dd„ }dd„ }|| ƒ}t|| dd� |¡�s$t‚t|| dd� |¡�s>t‚t|| d	d� |¡�sXt‚t|| d
d� |¡�srt‚d} || ƒ}t|| dd� |¡�s˜t‚t|| dd� |¡�s²t‚t|| d	d� |¡�sÌt‚t|| d
d� |¡�sæt‚d S )Nr   g{®Gáz„?c                 S   s   d| d d  S )Nr   r   r   r+   r   r   r	   r
   ½   r   ztest_invlap.<locals>.<lambda>c                 S   s   | t |  ƒ S r»   )r°   r¼   r   r   r	   r
   ¾   r   Ztalbot)ÚmethodZstehfestZdehoogZcoheng      ð?c                 S   s   t | ƒ|  S r»   )Úlogr+   r   r   r	   r
   Ì   r   c                 S   s   t  t| ƒ S r»   )ZeulerrÀ   r¼   r   r   r	   r
   Í   r   )r   r   Zinvertlaplacer"   r   )r½   ÚfpÚftZfttr   r   r	   Útest_invlapº   s:    rÃ   )r2   Zmpmathr   r&   r,   r6   r¥   r­   rµ   rº   r¾   rÃ   r   r   r   r	   Ú<module>   s   		
8>