U
    ZÊ¹jÈ(  ã                
   @   sÎ  d dl mZ d dlZd dlT ejjZejZej	Z	ej
Z
ejZejZedddgdddgdddggƒZddd	gZedd
d
dgdddd
gddddgdd d	dggƒZdddd
gZedd d
d
d gd ddd d
gd	ddd d gd d dddgd dd d dggƒZd d d d dgZedddddgdddddgddd d!d"gd#d$d%d&d'gd(d)d*d+d,ggƒZd-d.d/d0d1gZedddgdddgddd2ggƒZed3d4d5gd6d7d8gd9d:d;ggƒZd<d=d>gZedd?gddgddggƒZdddgZedddgd
d dgd
dd
gdd d
ggƒZdddd	gZed	ddgdddgddd@ggƒZdAdBdCgZedDdEdEgdFdGdHgdIdJdKggƒZdLdDdLgZ dMdN„ Z!dOdP„ Z"dQdR„ Z#dSdT„ Z$dUdV„ Z%dWdX„ Z&dYdZ„ Z'd[d\„ Z(d]d^„ Z)d_d`„ Z*e+dƒdadb„ ƒZ,dcdd„ Z-dedf„ Z.dgdh„ Z/didj„ Z0dkdl„ Z1dS )mé    )ÚdivisionN)Ú*é   é   é   é   é   é   éÿÿÿÿéþÿÿÿéüÿÿÿéýÿÿÿéûÿÿÿé	   iôÿÿÿé   é   é2   g¸…ëQx$@g=
×£p=Àg        gìQ¸…ë¡¿g®Gáz®@gNbX9´ÀgR¸…ëQô?gÃõ(\�Â@gÃõ(\�B!ÀgHáz®Gñ?gR¸…ëQÀg…ëQ¸…ë?g¦›Ä °rÐ¿g¤p=
×£"@gÍÌÌÌÌÌEÀg)\�Âõ¨#@g�Âõ(\�@g     @1Àg;ßO�—n¢?g\�Âõ(Ü8@g…ëQ¸ž"Àg33333sA@g¤p=
×£S@g…ëQ¸ñ?g33333sP@gfffffæ!@g
×£p=Š4@g®Gáz®@çffffff@g×£p=
7M@iøÿÿÿgÒ­£ª	ö?gîZB>èÙ@gr3Ü€Ïo@gs�FZ*o@g#„GG¬ó¿geä,ìi�9@g�¨Œ}„.AgRòêÒ#@g(~ŒÆ„.Ág     €7@g…ëQ¸…/Àg¸…ëQ¸@g      à¿g      @é
   é   g      /Ày      ð?      ð?g       @g      @g      @g      @g      @g       @g      "@ç      ð?c                  C   sð   t  ¡ } t}t| ƒ\} }t| ||ƒ}t| |ƒ}|ddddgksBt‚dd„ |D ƒdddd	d
gksbt‚t ¡ } t}t| ƒ\} }t| ||ƒ}t| |ƒ}|ddddgks¤t‚dd„ |D ƒdddddgksÄt‚t	dƒ} |  ¡ }t| dd� | |ksìt‚d S )Nr   r   r   c                 S   s   g | ]}t |d ƒ‘qS ©é   ©Úround©Ú.0Úi© r   úW/var/www/html/bwave/python/venv/lib/python3.8/site-packages/mpmath/tests/test_linalg.pyÚ
<listcomp>O   s     z"test_LU_decomp.<locals>.<listcomp>g-·°«õP@grhâAÄý@gç(mUð´¿g^ \^vø@g+ÿ6�CV@r   r	   c                 S   s   g | ]}t |d ƒ‘qS r   r   r   r   r   r   r    W   s     g¬wØ]@g_º¬D¨P@gIÏ˜}¸Xé?gR°xÀgE¥9ƒèð¿)Ú	overwrite)
ÚA3ÚcopyÚb3Ú	LU_decompÚL_solveÚU_solveÚAssertionErrorÚA4Úb4Ú
randmatrix)ÚAÚbÚpÚyÚxZbakr   r   r   Útest_LU_decompH   s4    
  ÿ

  ÿ
r1   c                  C   s<   t ttfD ],} t| ƒ}t| | t| jƒ dƒdk s
t‚q
d S )Nr   g›+¡†›„=)ÚA1ÚA2ÚA5ÚinverseÚmnormÚeyeÚrowsr(   )r,   Úinvr   r   r   Útest_inverse^   s    r:   c                  C   s>  dt _tt } }tt| |ƒƒ\}}}}|ttdƒtdƒtdƒdgdtdƒtdƒtd	ƒgdtd
ƒtdƒtdƒgdtdƒtdƒtdƒggƒksŽt‚|ddtdƒgks¤t‚t	t
|dƒdƒdks¼t‚ddddddddddd d!g}d"d#„ }g }g }	tdd$ƒD ]Z}
||
ƒ} tt| |ƒƒ\}}}}t|ƒ}t|ƒ}| t
|dƒ¡ |	 t
t| ||ƒdƒ¡ qòd%d&„ |D ƒd'd(d)d*d+gk�spt‚t
t|ƒt|	ƒ tƒd,k �s�t‚d-d.„ }g }g }tddƒD ]n}
||
ƒ} t|  ¡ ƒ\}}}}| t
|dƒ¡ | t
t| d d …d |
d/ …f || d d …|
d/ f ƒdƒ¡ �qªt
t|ƒt|ƒ tƒd,k �s:t‚d S )0Né   z3.0z-2.0z-1.0r   g      ð¿z3.333333333333333z-2.9999999999999991z2.0z-0.66666666666666674z2.8142135623730948z-2.8284271247461898r   z-1.3333333333333333z-0.20000000000000018z4.2426406871192857r   z-1.4142135623730949r   r   gßÌvø@gJ+‡†Y@gyé&1,M@g%�•C;B@g�Âõ(\O8@g1¬Z1@g�—nƒÀ(@gªñÒMb�"@g�Âõ(\�@gq=
×£p@gÁÊ¡E¶ó@gyé&1,@g /Ý$@c                    s>   g }t ddƒD ]&‰ | ‡ fdd„t d| d ƒD ƒ¡ qt|ƒS )Nr   é   c                    s   g | ]}d ˆ | d  ‘qS )r   r   r   )r   Új©r   r   r   r    x   s     z3test_householder.<locals>.coeff.<locals>.<listcomp>)ÚrangeÚappendÚmatrix)Únr,   r   r>   r   Úcoefft   s    $ztest_householder.<locals>.coeffr   c                 S   s   g | ]}t |d ƒ‘qS )r   r   )r   Úresr   r   r   r    „   s     z$test_householder.<locals>.<listcomp>g˜R¤mÆX.@gÕ8îhi\ê?g5Å»ÚŒ^Ó?g‰Œ–›¢š?g ïA8C?ç‚vIhÂ%<=c                 S   s`   t d|  | ƒ}td|  dddd�}| dd„ ¡}t|d d …df ƒ| t|d | …df ƒ }|S )Nr   r
   r   ©ÚminÚmaxc                 S   s   t dtƒ  |  ƒS )Ny              ð?)ÚexpÚpi©r0   r   r   r   Ú<lambda>�   ó    z9test_householder.<locals>.hilbert_cmplx.<locals>.<lambda>r   )Zhilbertr+   ÚapplyÚdiag)rB   r,   Úvr   r   r   Úhilbert_cmplx‰   s
    ,z'test_householder.<locals>.hilbert_cmplxr   )ÚmpÚdpsÚA8Úb8ÚhouseholderÚextendrA   Úmpfr(   r   Únormr?   r@   ÚresidualÚinfr#   )r,   r-   ÚHr.   r0   Úrr/   rC   Z	residualsZrefresrB   rQ   Zresiduals_cmplxZrefres_cmplxr   r   r   Útest_householderc   s^    
ÿÿüÿ
  ÿ  þ @r^   c                  C   s8   t dƒ} t| ƒ\}}}t||  ||  dƒdk s4t‚d S )Nr   r   gVçž¯Ò<)r+   Zlur6   r(   )r,   ÚPÚLÚUr   r   r   Útest_factorizationš   s    rb   c                   C   s  t tttttƒtƒtƒdk s t‚t tttttƒtƒtƒdk s@t‚t tt	tt	t
ƒt
ƒtƒdks`t‚t tttttƒd tƒtƒdk s„t‚t tttttƒd tƒtƒdk s¨t‚t tt	tt	t
ƒd t
ƒdƒdksÌt‚t tttttƒtƒdƒdk sìt‚t tttttƒd tƒdƒdk �st‚d S )Ng»½×Ùß|Û=ç      ø?gœo   @r   r   g333333@)rY   rZ   ÚA6Úlu_solveÚb6r[   r(   ÚA7Úb7rT   rU   Zqr_solveÚA10Úb10r   r   r   r   Ú
test_solveŸ   s       $$$ rk   c                  C   sP   t ddgddgddggƒ} t dt dt gƒ}tt| t| |ƒ|ƒƒdk sLt‚d S )	Nr   y               @r   y              @r   r   r   gÚ|a2Uð?)rA   r=   rY   rZ   re   r(   )r,   r-   r   r   r   Útest_solve_overdet_complex©   s    rl   c                     sx   dt _ddgddgg} ttdƒƒ}ddg}d| |f d||f d	| |f d	||f fD ]‰ t ttf‡ fd
d„¡ qVd S )Nr;   r   g333333ó?gÞÝÝÝÝÝÝ?gš™™™™™¹?r   r   zlu_solve(%s, %s)zqr_solve(%s, %s)c                      s   t ˆ ƒS ©N)Úevalr   r>   r   r   rL   µ   rM   ztest_singular.<locals>.<lambda>)rR   rS   ÚreprÚzerosÚpytestZraisesÚZeroDivisionErrorÚ
ValueError)r,   ÚBr-   r   r>   r   Útest_singular®   s    
 
ÿru   c                  C   sf   t  t  t¡¡t  dddgdddgdddgg¡ks6t‚t  tt¡} t  t  t| t¡t j	¡dksbt‚d S )Nr   r   r   r
   g      ø¿rc   )
ÚfpZcholeskyrA   ÚA9r(   Zcholesky_solveÚb9rY   rZ   r[   rK   r   r   r   Útest_cholesky·   s    6ry   c                   C   sŠ   t tƒdkst‚tt tƒdƒdks&t‚tt tƒƒdks:t‚tt tƒƒdksNt‚t tƒdks^t‚tt tƒƒdksrt‚t t	dƒƒdks†t‚d S )	Nr   r   é   i*  iðÌC iïŸ«r   r   )
Údetr2   r(   r   r3   r"   r)   r4   rd   rp   r   r   r   r   Útest_det¼   s    r|   c                  C   sl   dt _tddgddggƒ} t| dd„ ƒtdƒks4t‚t| d	d„ ƒtdƒksNt‚t| d
d„ ƒtdƒksht‚d S )Nr;   gëâ6Àô?gê•²q¬ë?ga2U0*©Ë?gÄB­iÞqÂ?c                 S   s
   t | dƒS )Nr   ©r6   rK   r   r   r   rL   È   rM   ztest_cond.<locals>.<lambda>z327065209.73817754c                 S   s
   t | tƒS rm   )r6   r[   rK   r   r   r   rL   É   rM   c                 S   s
   t | dƒS )NÚFr}   rK   r   r   r   rL   Ê   rM   z249729266.80008656)rR   rS   rA   ZcondrX   r(   ©r,   r   r   r   Ú	test_condÅ   s
    r€   c                  C   s,   t ddƒ} ttt| ƒƒ|  dƒdk s(t‚d S )Nr   r   g¹j7­Ö–6)r+   r6   r5   r(   r   r   r   r   Útest_precisionÌ   s    
r�   c                  C   s´   dt _dt_t dddgdddgdd	d
gg¡} t dddg¡}t | |¡}|d jdk s\t‚|d jdk snt‚|d jdk s€t‚d|d ks�t‚d|d ks t‚d|d ks°t‚d S )Nr;   z0.1z0.3z1.0z7.1z5.5z4.8z3.2z4.4z5.6Ú4z0.6z0.5r   rE   r   r   giEç'n@gFxl¢bO*ÀgŸ'ÝÃÉ®@)rR   rS   ZivrA   re   Údeltar(   )Úar-   Úcr   r   r   Útest_interval_matrixÑ   s    "r†   c                  C   s<   t dƒ} t| ƒ}| jt| ƒks"t‚d| d< | jd ks8t‚d S )Nr   éüÿÿ)r   r   )r+   r%   Z_LUr(   )r,   ZLUr   r   r   Útest_LU_cacheÞ   s
    rˆ   c                  C   sp   t dddd�} t ddddd�}t| |ƒt dddd	d� }t| ||ƒ}tt| ||ƒd
ƒtt| ||ƒd
ƒk slt‚d S )Nr   g#B’¡œÇ;g@Œµx¯DrF   r   r‡   iè  gñhãˆµøä¾gñhãˆµøä>r   )r+   re   Úimprove_solutionrY   rZ   r(   )r,   r-   Úx1Zx2r   r   r   Útest_improve_solutionå   s
    r‹   c                  C   sÞ   t dƒD ]Ê} d}d}|| t_d}d}t d|d ƒ}t|ƒ}tdd„ |D ƒƒ}t|ƒdk rlt|ƒ}t|ƒ}qN|| }|d | | }	|d | | }
|t_t|	d	d
�}|| t_|
| }|t_t|t	ƒ 
d¡st‚qdt_d S )Nr   r;   r   r   c                 S   s   g | ]}t |ƒ‘qS r   )rI   )r   r0   r   r   r   r    õ   s     z!test_exp_pade.<locals>.<listcomp>g{®Gáz„?r
   Zpade)Úmethod)r?   rR   rS   rO   Úabsr+   r{   ZexpmrY   r[   Zaer(   )r   rS   ÚextraÚdmÚNÚdgr„   ZexpaÚmZa1Úe2Úe1Údr   r   r   Útest_exp_padeì   s,    


r–   c                  C   s*  dt _d} d}d}d}tdƒ}tddƒD �]ú}d}d	}t|d
 ƒ}t|tƒ  ƒ}t|tƒ  ƒ}	tt||	ƒƒ}
tt	||	ƒƒ}t  
|
|¡}|ròd}d}td|ƒD ]R}td|
ƒD ]B}t| ||  tƒ   ƒ}t| ||  tƒ   ƒ}t||ƒ|||f< qªqœnRd}d}td|ƒD ]>}td|
ƒD ],}t| ||  tƒ   ƒ}t|ƒ|||f< �q�qt|||d�\}}tdƒ}t|||  ƒ}||k�s|t‚|dk�rÎtt|
ƒ|j|  ƒ}||k�sªt‚tt|
ƒ||j  ƒ}||k�sÎt‚|dkr(tt|
ƒ|j| ¡   ƒ}||k�sþt‚tt|
ƒ| ¡ |j  ƒ}||ks(t‚q(d S )Nr;   i÷ÿÿÿr   r	   Fz0.0r   r   Úfullr   ÚcomplexTÚreal)Zedpsz1.0E-11)rR   rS   rX   ÚxrangeÚboolZnintZrandÚintrH   rG   rA   ZmpcZqrrY   r(   r7   ÚTÚ	conjugate)ZlowlimitZuplimitZmaxmZflgÚzeroÚkZexdpsÚmodeZnum1Znum2r’   rB   r,   Zdtyper=   r   ÚvalZval2ÚQÚRZmaxnormZn1r   r   r   Útest_qr  sV    
r¥   )2Ú
__future__r   rq   ZmpmathZlibmpÚbackendrš   rR   r%   r&   r'   rV   r‰   rA   r2   Úb1r3   Úb2r"   r$   r)   r*   r4   rd   rf   rg   rh   rT   rU   rw   rx   ri   rj   r1   r:   r^   rb   rk   rl   ru   ry   r|   r€   Zextradpsr�   r†   rˆ   r‹   r–   r¥   r   r   r   r   Ú<module>   s    
þ



ýüü
þ
þ
þ

ý
þ

þ
7
		
