a
    {dX                     @   s  d dl mZ d dlmZmZmZ d dlmZmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZmZ d dlmZmZ d d	lmZ d d
lmZmZ d dlmZmZ d dlmZ d dlm Z  d dl!m"Z" d dlm#Z# d dl$m%Z% dd Z&e#dd Z'dd Z(edd Z)dd Z*dd Z+dd Z,dd  Z-e#d!d" Z.d#d$ Z/d%d& Z0d'd( Z1d)d* Z2d+d, Z3d-d. Z4d/d0 Z5d1d2 Z6d3d4 Z7d5d6 Z8d7d8 Z9d9S ):    )N)FloatIRational)Symbolsymbols)Abs)exp)sqrt)cossin)eyeMatrix)S)raisesXFAIL)NonSquareMatrixErrorMatrixError)DFTsimplify)ImmutableMatrix)slow)allclosec                     s  t } td}|jddtjdiks(J |jddg dks@J | ddtg dtg dtg d	gfgksvJ | ddtg dgtg dgtg d	ggfgksJ tg d
g dg dg}| dtj dtj dtjdiksJ | ddtg dgfddtg dgfddt| dd| dddggfgksJJ | ddtg dggfddtg dggfddtg dggfgksJ t	d}t|dgddgg}| |dtjdiksJ tddgddgg}| ddtddddggfgksJ | ddtddgggfgks2J tg dg dg dg}| dd}dd| dd  }| dd}| ddd| d  }| ddd| d  }dd  ||d  dtdd||d    ||d  |  d||d    dd||d    | dggfddtg dgf||d  dtdd||d    ||d  |  d||d    dd||d    | dggfg fd d!t
tD }|  fd"d!t
tD }t|t|ksJ t	d#dd$}	tt|	t|	 gt |	 t|	gg}| ddtt |	 t|	 gdgggfdt|	 dtt|	 t|	 gdgggfgksdJ | ddtt|	 t|	 dgggfdt|	 dtt |	 t|	 dgggfgksJ tddg d%}|jdd&|_td'd( |jd d d D dksJ |jdd&|_td)d( |jd d d D dks@J tt dd*dgddgg}| t d+dtd,d  dttd, d t dd gdgggft d+dtd,d  dtt d-dtd,d  gdgggfgksJ tg  i ksJ tg jddg ksJ tg  g ks(J ttd.d/  ttd0d/  ttd1d/  ttd2d/  ttd3d/  ttd4d/  tddgdd*gg}
t|
jddd5tsJ t|
jddd5tsJ t|
jd6d/ dd5tsJ t|
jd7d/ dd5ts J d S )8N   FmultipleT   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   ar   r#   r   )         )      	      !      r,   c                 S   s   t t| |S N)strr   )en r5   h/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/sympy/matrices/tests/test_eigen.pyNSI   s    ztest_eigen.<locals>.NS      r*   )r   r%   r   c                    sL   g | ]D} | d  d | d d fdd| d d  D fqS )r   r#   r   c                    s   g | ]} |d qS r#   r5   .0jr7   r5   r6   
<listcomp>S       )test_eigen.<locals>.<listcomp>.<listcomp>r5   r<   ir7   rr5   r6   r?   R   s    ztest_eigen.<locals>.<listcomp>c                    sL   g | ]D} | d  d | d d fdd| d d  D fqS )r   r#   r   c                    s   g | ]} |d qS r:   r5   r;   r>   r5   r6   r?   V   r@   rA   r5   rB   rD   r5   r6   r?   U   s    epsreal)	r   r#   r   r   r   r   r#   r#   r   c                 s   s   | ]}|j V  qd S r1   qrB   r5   r5   r6   	<genexpr>l   r@   ztest_eigen.<locals>.<genexpr>c                 s   s   | ]}|j V  qd S r1   rJ   rB   r5   r5   r6   rL   n   r@   r(   r)   I   c                   S   s   t ddgddgddgg S )Nr   r#   r   r(   r   	eigenvalsr5   r5   r5   r6   <lambda>|   r@   ztest_eigen.<locals>.<lambda>c                   S   s   t ddgddgddgg S )Nr   r   r   r(   r)   r*   rO   r5   r5   r5   r6   rQ   ~   r@   c                   S   s   t g dg dg S )Nr'   r   r)   r*   rO   r5   r5   r5   r6   rQ      r@   c                   S   s   t g dg dg S )Nr   r(   r)   r   rO   r5   r5   r5   r6   rQ      r@   c                   S   s   t g dg dgjddS )Nr'   rR   FZerror_when_incompleterO   r5   r5   r5   r6   rQ      s   c                   S   s   t g dg dgjddS )Nr   rS   FrT   rO   r5   r5   r5   r6   rQ      s   )r   r   c                 S   s   | S r1   r5   xr5   r5   r6   rQ      r@   c                 S   s   | S r1   r5   rU   r5   r5   r6   rQ      r@   )r   r   r   rP   r   One
eigenvectsleft_eigenvectsZeror   rangelensortedabsr   r   Z_eigenvectsmaxr
   r   r   
isinstancedictlist)RMr&   bcdr3   Zr1Zr2rF   mr5   rD   r6   
test_eigen   s    


( 

(&

@@

$*
 *
**<:ri   c                  C   s   ddl m}  tddd}tdt| dgt|ddgg dg}| |jd	d
| |jdd
ksdJ | |jdd d
| |jdd
ksJ d S )Nr   )	count_opsrK   TZpositiver%   r   )r   r   r%   Fr   c                 S   s   | S r1   r5   rU   r5   r5   r6   rQ      r@   z!test_eigen_slow.<locals>.<lambda>)Zsympy.core.functionrj   r   r   r	   rP   )rj   rK   rh   r5   r5   r6   test_eigen_slow   s    (rl   c                  C   s   t g dg dg dg} tddtdd  tdd tdd tjg}| jddd	}t|}d
d |D }t|}t||D ]\}}t|| dk sJ qd S )N)r   333333?rm   )rm   ?rn   )rn   rm   rm   r)   r(   i     T)Zrationalr   c                 S   s   g | ]}|  qS r5   )Zevalfr<   rV   r5   r5   r6   r?      r@   z(test_float_eigenvals.<locals>.<listcomp>g&.>)	r   r   r
   r   rZ   rP   r]   zipr^   )rh   ZevalsZn_evalsZs_evalsrV   yr5   r5   r6   test_float_eigenvals   s    rs   c                     sX   t dddddtg tt fdd  dr4J tt fdd  d\} }d S )Nr#   r   r   c                      s
     dS NT)is_diagonalizabler5   rh   r5   r6   rQ      r@   z"test_eigen_vects.<locals>.<lambda>Tc                      s
     dS rt   diagonalizer5   rv   r5   r6   rQ      r@   )r   r   r   NotImplementedErrorru   r   rx   )PDr5   rv   r6   test_eigen_vects   s
    r|   c                     s>  t d\} }d dd t D } fddt D }t D ]}|| || |< q@t|}| }t| ksvJ t D ]}|||  dks~J q~|jdd}t|t|ksJ t| d	d	gd|d	gd
d| gg}| }|| d
|diksJ |jdd}t|dksJ || d
ks&J ||dks:J d S )Nzx y   c                 S   s   g | ]}t d | qS )zx%s)r   rB   r5   r5   r6   r?      r@   z#test_issue_8240.<locals>.<listcomp>c                    s   g | ]}d d t  D qS )c                 S   s   g | ]}d qS )r   r5   rB   r5   r5   r6   r?      r@   z.test_issue_8240.<locals>.<listcomp>.<listcomp>)r[   r;   r4   r5   r6   r?      r@   r   Tr   r   r#   r   )r   r[   r   rP   r\   setcount)rV   rr   Zdiagonal_variablesrd   rC   rP   r5   r~   r6   test_issue_8240   s(     r   c                  C   sx   t g dg dg dg} |  dtj dtj dtjdiksBJ t g dg dg dg d	g d
g}| stJ d S )Nr"   r   r   r#   r   r   r   r   r   rN   r   rN   rN   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   rP   r   rW   rZ   )rd   rh   r5   r5   r6   test_eigenvals   s    (	r   c                  C   sb   t g dg dg dg} |  }|D ]6\}}}t|dks@J | |d  ||d  ks&J q&d S Nr"   r   r   r   r   )r   rX   r\   rd   ZvecsvalZmultZvec_listr5   r5   r6   test_eigenvects   s    r   c                  C   sb   t g dg dg dg} |  }|D ]6\}}}t|dks@J |d |  ||d  ks&J q&d S r   )r   rY   r\   r   r5   r5   r6   test_left_eigenvects   s    r   c            %      C   s  t g dg dg dg} |  | ks*J | jdd| ks>J |  | ksNJ |  | | | fksdJ | jdd| | | fks~J |  | ksJ dd l}tdD ]}g }d}d}t|| D ]}|dd	}||g }qt |||} t| }| \}	}
}|  \}}}|  }| }|	|
 | }|| | }|
  |  |  |  |  |  | jdd}| jdd\}}}|jdd}|jdd\}}}|| | }|| | }|  |  |  |  |  |  | |ksJ ||ks J ||ksJ |
|ksJ | |ks*J ||ks8J ||ksFJ ||ksJ qtdD ]}g }d}t|| D ]4}|dd	}|dd	} || t  }||g }qvt |||} t| }| \}	}
}|  \}}}|  }| }|	|
 | }|| | }|
  |  |  |  |  |  | jdd}| jdd\}}}|jdd}|jdd\}}}|| | }|| | }|  |  |  |  |  |  | |ksJ ||ksJ ||ksJ |
|ksJ | |ksJ ||ksJ ||ksJ ||ks\J q\t d
dtdd} | 	dd } |  d |  ksfJ | jddd | jddksJ |  \}!}"}#|!|" |# |  }$t
t|$dk sJ d S )Nr   r    r!   F)upperr   r#   i 6ei ʚ;   r,   r      c                 S   s   t | S r1   )r   )rC   r5   r5   r6   rQ   }  r@   z$test_bidiagonalize.<locals>.<lambda>g-q=)r   ZbidiagonalizeZbidiagonal_decompositionrandomr[   randintr   r   r   Z	applyfuncr^   r_   )%rd   r   Z	real_testZtest_valuesrowcol_valuer   ZN1ZN2ZN3ZM1ZM2ZM3ZM0ZN0ZN4ZM4ZLM0ZLM1ZLM2ZLM3ZLN0ZLN1ZLN2ZLN3ZLN4ZLM4Zcomplex_testsizerH   compr&   re   rf   diffr5   r5   r6   test_bidiagonalize   s    "r   c                     s  t ddg d tt fdd   \} }| s:J |t t dgdtggksXJ t ddg d   \} }tdd | D sJ td	d |  D sJ  jd
d\}}||ksJ t g dg dg dg dg   \} }t| |  |  sJ d S )Nr#   r   r$   r   r   c                      s    j ddS )NTZ
reals_onlyrw   r5   rv   r5   r6   rQ     r@   z"test_diagonalize.<locals>.<lambda>r   )r         ?r   r   c                 s   s   | ]}t |tV  qd S r1   r`   r   r<   r3   r5   r5   r6   rL     r@   z#test_diagonalize.<locals>.<genexpr>c                 s   s   | ]}t |tV  qd S r1   r   r   r5   r5   r6   rL     r@   Tr   r   r   r   r   )r   r   r   Mb`?)r   r   r   r   )r   r   r   r   )	r   r   r   rx   Zis_diagonalr   allvaluesr   )rz   r{   r   ZD2r5   rv   r6   test_diagonalize  s&    r   c                  C   s   t d\} }}tdd| |||g}| s.J | s:J tddg d rRJ tddg d}| snJ |jddr~J d S )Nza b cr#   )r   r   r   r   r   Tr   )r   r   Zis_symmetricru   )r&   re   rf   rh   r5   r5   r6   test_is_diagonalizable  s    r   c                     s  t ddg d tt fdd t ddg d   \} } |ksJJ t ddg d   \} } |ksrJ t g d	g d
g dg dg}| \} }t| | |   |ksJ t dddg t dgt dgfksJ t dddgjddt dgks
J t g dg dg dg dg dg tt fdd t dddtd  gddtd  dgg   \} }tdd | D sJ tdd |D sJ d S )Nr   r#   )rN   r   rN   ro   r   
   c                      s      S r1   jordan_formr5   rv   r5   r6   rQ     r@   z"test_jordan_form.<locals>.<lambda>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   )rI   r#   r   r   )r   r   r#   r(   )r   r   rI   r#   r   F)Zcalc_transformr   r   r   r   r   c                      s      S r1   r   r5   rv   r5   r6   rQ     r@   g      ?g      ?g      ?g      ?c                 s   s    | ]}t |tp|d kV  qdS r   Nr   rp   r5   r5   r6   rL     r@   z#test_jordan_form.<locals>.<genexpr>c                 s   s    | ]}t |tp|d kV  qdS r   r   rp   r5   r5   r6   rL     r@   )	r   r   r   r   r   invr   r
   r   )rz   JAr5   rv   r6   test_jordan_form  s4    *&&r   c                  C   sD  t ddd} tddt gddgg}| ddgks8J td}| |d< d	|d
< | }t|d	dt| hksrJ tt| t| gt|  t| gg}dd | D }|t	j
t	j
gksJ tddgddgddgddgg}| ttdd tdtd gksJ |j ttdd tdtd ddgks@J d S )NrV   TrG   r   r   r#   r   )r   r   r)   )r#   r#   c                 S   s   g | ]}|  qS r5   )Ztrigsimp)r<   svr5   r5   r6   r?     r@   z(test_singular_values.<locals>.<listcomp>r(      r.   )r   r   r   Zsingular_valuesr   r   r   r   r   r   rW   r
   T)rV   r   valsr5   r5   r6   test_singular_values  s.    &
"r   c                   C   s*   t g dg dg dgi kdu s&J d S )Nr"   r   r   F)r   r5   r5   r5   r6   test___eq__  s    r   c                  C   s2  t g dg dg dg} | jdks(J | jdks6J | jdksDJ | jdksRJ | jdks`J t ddgddgg} | jdksJ | jdksJ | jdksJ | jdksJ | jdksJ t g dg dg d	g} | jdksJ | jdksJ | jdksJ | jdksJ | jdksJ t d
dgddgg} | jdksBJ | jdksRJ | jdksbJ | jdksrJ | jdksJ t ddgddgg} | jdksJ | jdksJ | jdksJ | jdksJ | jdksJ t d
dt gt dgg} | jdksJ | jdks J | jdks0J | jdks@J | jdksPJ tddd}tddd}t |ddgd|dgdd|gg} | jdksJ | jdksJ | jdksJ | jdksJ | jdksJ t |ddgd|dgdd|gg} | jdksJ | jdksJ | jdks(J | jdks8J | jdksHJ t |dgd|gg} | jdkslJ | jdks|J | jdksJ | jdksJ | jdksJ t g dg dg dg dg} | jdksJ | jdksJ | jdksJ t g dg dg dg} | jr"J | jr.J d S )N)r#   r$   r   )r$   r#   r$   )r   r$   r#   TFr)   r(   )r#   r$   r$   )r$   r$   r#   r   r#   r   r,   r&   rk   re   )negativer   )ga~2^?=6 0z?u?1ڿ"ş})r   gEߡ?֯mA?)Ewc?)r   r   g?}uq?)r   r   r   g!pb?r   r   r   )r   r   r#   )r   r#   r   )r   Zis_positive_definiteis_positive_semidefiniteZis_negative_definiteZis_negative_semidefiniteZis_indefiniter   r   )rh   r&   re   r5   r5   r6   test_definite  s      
r   c                  C   sl  ddl m}  tg dg dg dg}| |dks6J tg ddddt gddt dgg}| |dkslJ tg d	g dg d
g}| |dksJ tddgddgg}| |dksJ tg dg dg dg}| |dksJ tg dg dg dg}| |dksJ tg dg dg dg}| |dks<J tg dg dg dg}| |dkshJ d S )Nr   )"_is_positive_semidefinite_choleskyr   Tr)   r   Fr   )r   r   r$   r   )r(   r%   )r%   r   r-   )r   r-      )r-   rN   r   )rN   r#   r   )r   r   r*   )r(   r%   r#   )r%   r   r$   )r#   r$   r)   )r   r#   r$   )r#   r)   r   )r$   r   r-   )Zsympy.matrices.eigenr   r   r   )r   rh   r5   r5   r6   #test_positive_semidefinite_cholesky^  s"    &r   c                  C   s6   t g dg dg dg dg dg} |  s2J d S )N)r)   rN   r#   )r%   r   r   r#   r   )r%   r   r   r%   r   )r+   r   r   r-   r%   )r(   r   r   irI   )r   rX   )r   r5   r5   r6   test_issue_20582u  s    	r   c                  C   s   t d} tg dg dg dg dg}t | |   }|tg ddddd	td
  ddtd
  gg dg dgtdt |  dddgddt |  ddgdd| dt d td
t d   dgddd| td
 t d dt d   ggfksJ d S )Nt)r   r   r   r   )r   r   r#   r   )r   r#   r#   r   )r   r   r   r(   r   r   rI   r$      r(   r   )r   r   r   r   )r   r   r   r   rN   r#   r   )r   r   r   r   r
   )r   Hr   r5   r5   r6   test_issue_19210  s      "&(r   c               
   C   s0  t d jdd} |  }|d ddtdtd gdgdgggfksLJ |d ddtdtd gdgdgggfks|J |d t dtdgdgdgggfksJ t d jdd} |  }|d ddtdgdgdgdgggfksJ |d ddtdgdgdgdggtdgdgdgdgggfks2J |d t dtdgdgdgdgggfksbJ t d	 jdd} |  }|d ddtdtd	 gdgdgdgdgggfksJ |d ddttdd td	d  gdgdgdgdggttdd td	d  gdgdgdgdgggfks,J d S )
Nr   T)complexr   r$   r   r#   r(   r)   )r   Zas_explicitexpandrX   r   r
   r   r   )r   rX   r5   r5   r6   test_issue_20275  sP    



.$..r   c                  C   s<   t ddd} tg dd| dgdd| gg}|jd u s8J d S )Nre   T)Znonzeror   r   )r   r   r   )re   rh   r5   r5   r6   test_issue_20752  s    r   N):Zsympy.core.evalfr   Zsympy.core.numbersr   r   r   Zsympy.core.symbolr   r   Z$sympy.functions.elementary.complexesr   Z&sympy.functions.elementary.exponentialr	   Z(sympy.functions.elementary.miscellaneousr
   Z(sympy.functions.elementary.trigonometricr   r   Zsympy.matricesr   r   Zsympy.core.singletonr   Zsympy.testing.pytestr   r   Zsympy.matrices.matricesr   r   Z"sympy.matrices.expressions.fourierr   Zsympy.simplify.simplifyr   Zsympy.matrices.immutabler   r   Zsympy.testing.matricesr   ri   rl   rs   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r5   r5   r5   r6   <module>   sN   ~

	


 
0a0