a
    {þd6  ã                   @   s  d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	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 G dd„ deeeƒ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 d!„ Z d"d#„ Z!d$d%„ Z"d&S )'é    )ÚI)Úsymbols)Ú_MinimalMatrixÚ_CastableMatrix)ÚMatrixReductions)Úraises)ÚMatrixÚzeros)ÚSymbol)ÚRational)Úsqrt)Úsimplify)Úxc                   @   s   e Zd ZdS )ÚReductionsOnlyMatrixN)Ú__name__Ú
__module__Ú__qualname__© r   r   úm/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/sympy/matrices/tests/test_reductions.pyr      s   r   c                 C   s   t | | dd„ ƒS )Nc                 S   s   t | |kƒS ©N)Úint©ÚiÚjr   r   r   Ú<lambda>   ó    z eye_Reductions.<locals>.<lambda>©r   ©Únr   r   r   Úeye_Reductions   s    r   c                 C   s   t | | dd„ ƒS )Nc                 S   s   dS )Nr   r   r   r   r   r   r      r   z"zeros_Reductions.<locals>.<lambda>r   r   r   r   r   Úzeros_Reductions   s    r    c                     sZ  t dƒ‰ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fd	d„ƒ tt‡ fd
d„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ ˆ  ddd¡tg d¢g d¢g d¢gƒks J ‚ˆ  ddd¡tg d¢g d¢g d¢gƒksNJ ‚ˆ jddddtg d¢g d¢g d¢gƒks~J ‚ˆ jddddtg d¢g d¢g d¢gƒks®J ‚ˆ  ddd¡tg d¢g d¢g d¢gƒksÜJ ‚ˆ jddddtg d¢g d¢g d¢gƒksJ ‚ˆ jddddtg d¢g d¢g d¢gƒks<J ‚ˆ  dddd¡tg d¢g d¢g d¢gƒkslJ ‚ˆ jddddd tg d¢g d¢g d¢gƒksžJ ‚ˆ jddddd!tg d¢g d¢g d¢gƒksÐJ ‚td"ddgd# ƒ} |  ddd¡td"ddgd# ƒksJ ‚|  ddd¡td"ddgd# ƒks.J ‚|  dddd¡td"ddgd# ƒksVJ ‚d S )$Né   c                      s
   ˆ   d¡S ©NÚabc©Úelementary_row_opr   ©Úer   r   r      r   ztest_row_op.<locals>.<lambda>c                      s   ˆ   ¡ S r   r$   r   r&   r   r   r      r   c                      s   ˆ j ddddS )Nún->kné   ©ÚrowÚkr$   r   r&   r   r   r      r   c                      s   ˆ j ddddS )Nr(   éûÿÿÿr)   r*   r$   r   r&   r   r   r      r   c                      s   ˆ j ddddS )Nún<->mé   r)   ©Úrow1Úrow2r$   r   r&   r   r   r      r   c                      s   ˆ j ddddS )Nr.   r)   r/   r0   r$   r   r&   r   r   r       r   c                      s   ˆ j ddddS )Nr.   r-   r/   r0   r$   r   r&   r   r   r   !   r   c                      s   ˆ j ddddS )Nr.   r/   r-   r0   r$   r   r&   r   r   r   "   r   c                      s   ˆ j dddddS ©Nún->n+kmr/   r)   ©r1   r2   r,   r$   r   r&   r   r   r   #   r   c                      s   ˆ j dddddS )Nr4   r)   r/   r5   r$   r   r&   r   r   r   $   r   c                      s   ˆ j dddddS )Nr4   r-   r/   r)   r5   r$   r   r&   r   r   r   %   r   c                      s   ˆ j dddddS )Nr4   r/   r-   r)   r5   r$   r   r&   r   r   r   &   r   c                      s   ˆ j dddddS r3   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*   )r1   r,   r.   r0   )r+   r2   r4   )r/   r)   r   )r+   r,   r2   )r1   r,   r2   é   é   )r   r   Ú
ValueErrorr%   r   r   ©Úar   r&   r   Útest_row_op   s8    ..00.00022&&r@   c                     sZ  t dƒ‰ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fd	d„ƒ tt‡ fd
d„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ ˆ  ddd¡tg d¢g d¢g d¢gƒks J ‚ˆ  ddd¡tg d¢g d¢g d¢gƒksNJ ‚ˆ jddddtg d¢g d¢g d¢gƒks~J ‚ˆ jddddtg d¢g d¢g d¢gƒks®J ‚ˆ  ddd¡tg d¢g d¢g d¢gƒksÜJ ‚ˆ jddddtg d¢g d¢g d¢gƒksJ ‚ˆ jddddtg d¢g d¢g d¢gƒks<J ‚ˆ  dddd¡tg d¢g d¢g d¢gƒkslJ ‚ˆ jddddd tg d¢g d¢g d¢gƒksžJ ‚ˆ jddddd!tg d¢g d¢g d¢gƒksÐJ ‚td"ddgd# ƒ} |  ddd¡td"ddgd# ƒksJ ‚|  ddd¡td"ddgd# ƒks.J ‚|  dddd¡td"ddgd# ƒksVJ ‚d S )$Nr!   c                      s
   ˆ   d¡S r"   ©Úelementary_col_opr   r&   r   r   r   ?   r   ztest_col_op.<locals>.<lambda>c                      s   ˆ   ¡ S r   rA   r   r&   r   r   r   @   r   c                      s   ˆ j ddddS )Nr(   r)   ©Úcolr,   rA   r   r&   r   r   r   A   r   c                      s   ˆ j ddddS )Nr(   r-   r)   rC   rA   r   r&   r   r   r   B   r   c                      s   ˆ j ddddS )Nr.   r/   r)   ©Úcol1Úcol2rA   r   r&   r   r   r   C   r   c                      s   ˆ j ddddS )Nr.   r)   r/   rE   rA   r   r&   r   r   r   D   r   c                      s   ˆ j ddddS )Nr.   r-   r/   rE   rA   r   r&   r   r   r   E   r   c                      s   ˆ j ddddS )Nr.   r/   r-   rE   rA   r   r&   r   r   r   F   r   c                      s   ˆ j dddddS ©Nr4   r/   r)   ©rF   rG   r,   rA   r   r&   r   r   r   G   r   c                      s   ˆ j dddddS )Nr4   r)   r/   rI   rA   r   r&   r   r   r   H   r   c                      s   ˆ j dddddS )Nr4   r-   r/   r)   rI   rA   r   r&   r   r   r   I   r   c                      s   ˆ j dddddS )Nr4   r/   r-   r)   rI   rA   r   r&   r   r   r   J   r   c                      s   ˆ j dddddS rH   rA   r   r&   r   r   r   K   r   r(   r   r)   r6   r7   r8   r/   r9   r:   rC   )rF   r,   r.   rE   )rD   rG   r4   )r)   r/   r   )rD   r,   rG   )rF   r,   rG   r;   r<   )r   r   r=   rB   r   r   r>   r   r&   r   Útest_col_op<   s8    ..00.00022&&rJ   c                  C   sÌ   t dƒ} tdƒ}| jsJ ‚|js$J ‚tddg ƒ}|js:J ‚tddg d¢ƒ}|jsTJ ‚tddg d¢ƒ}|jrnJ ‚tdƒ}tdd|ddgƒ}|js’J ‚tdd||dgƒ}|jr®J ‚tddg d¢ƒ}|jrÈJ ‚d S )	Nr!   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   Ú
is_echelonr   r
   )ZzroÚidentr?   r   r   r   r   Útest_is_echelon`   s"    






rN   c                     sÊ  t dƒ‰ tdƒ} ˆ  ¡ ˆ ks J ‚|  ¡ | ks0J ‚tddg ƒ‰ ˆ  ¡ ˆ ksLJ ‚tdddgƒ‰ ˆ  ¡ ˆ ksjJ ‚‡fdd„}tddg d¢ƒ‰ tdgdgdggƒg}‡ fd	d
„tˆ jƒD ƒ}ˆ  ¡ ‰ˆjsÆJ ‚|ˆ ||ƒ tddg d¢ƒ‰ g }‡ fdd
„tˆ jƒD ƒ}ˆ  ¡ ‰ˆjsJ ‚|ˆ ||ƒ tddg d¢ƒ‰ ttddƒgdgdggƒttddƒgdgdggƒg}‡ fdd
„tˆ jƒD ƒ}ˆ  ¡ ‰ˆjsŽJ ‚|ˆ ||ƒ tddg d¢ƒ‰ tdgdgdggƒg}‡ fdd
„tˆ jƒD ƒ}ˆ  ¡ ‰ˆjsìJ ‚|ˆ ||ƒ tddg d¢ƒ‰ tdgdgdggƒtdgdgdggƒg}‡ fdd
„tˆ jƒD ƒ}ˆ  ¡ ‰ˆjs\J ‚|ˆ ||ƒ tddg d¢ƒ‰ tdgdgdggƒg}‡ fdd
„tˆ jƒD ƒ}ˆ  ¡ ‰ˆjsºJ ‚|ˆ ||ƒ d S )Nr!   r   r/   r)   c                    sb   |D ]}t dd„ ˆ | D ƒƒsJ ‚q|D ]4}t dd„ |D ƒƒs(t dd„ ˆ | ¡  D ƒƒr(J ‚q(d S )Nc                 s   s   | ]}|j V  qd S r   ©Úis_zero©Ú.0Útr   r   r   Ú	<genexpr>‘   r   zCtest_echelon_form.<locals>.verify_row_null_space.<locals>.<genexpr>c                 s   s   | ]}|j V  qd S r   rO   rQ   r   r   r   rT   “   r   c                 s   s   | ]}|j V  qd S r   rO   rQ   r   r   r   rT   ”   r   )ÚallZ	transpose)ÚmatÚrowsÚnullsÚv)Ú	a_echelonr   r   Úverify_row_null_space   s
    z0test_echelon_form.<locals>.verify_row_null_space©	r/   r;   r!   é   r)   r<   é   é   é	   éþÿÿÿc                    s   g | ]}ˆ |d d …f ‘qS r   r   ©rR   r   r>   r   r   Ú
<listcomp>›   r   z%test_echelon_form.<locals>.<listcomp>)	r/   r;   r!   r]   r)   r<   r^   r_   r_   c                    s   g | ]}ˆ |d d …f ‘qS r   r   rb   r>   r   r   rc   £   r   )	r;   r/   r!   r   r   r   r;   r/   r!   éÿÿÿÿr;   éýÿÿÿc                    s   g | ]}ˆ |d d …f ‘qS r   r   rb   r>   r   r   rc   ±   r   )	r;   r/   r!   r   r   r   r/   r/   r!   c                    s   g | ]}ˆ |d d …f ‘qS r   r   rb   r>   r   r   rc   ¼   r   )	r   r!   r!   r   r;   r;   r   r/   r/   c                    s   g | ]}ˆ |d d …f ‘qS r   r   rb   r>   r   r   rc   Ê   r   )r;   r;   r!   r!   r!   r   c                    s   g | ]}ˆ |d d …f ‘qS r   r   rb   r>   r   r   rc   Ô   r   )	r    r   Zechelon_formr   r   ÚrangerW   rL   r   )r'   r[   rX   rW   r   )r?   rZ   r   Útest_echelon_form{   sš    ý

ý
ýüýýýüýrg   c               
   C   sR  t ddg ƒ} | jdd| ks J ‚t dddgƒ} t dddgƒ}| jdd|jdd  kr`| ksfn J ‚t ddg d¢ƒ}|jddtdgdgdggƒksšJ ‚t ddg d¢ƒ}|jddtg d¢gƒksÈJ ‚t ddg d¢ƒ}|jddtg d	¢g d
¢g d¢gƒksJ ‚t ddg d¢ƒ}t ddg d¢ƒ}t ddg d¢ƒ}t ddg d¢ƒ}|jdd|jdd  kr”|jdd  kr”|jdd  kr”|ksšn J ‚tdƒ} tdƒ}| jdd| ksÀJ ‚|jdd|ksÖJ ‚t g d¢g d¢g d¢g d¢gƒ}| ¡ \}}|tg d¢g d¢g d¢g d¢gƒks,J ‚|dks:J ‚t tddƒtddƒddgg d¢g d¢g d¢gƒ}|jddtdddtddƒgdddtd dƒgdddtd!dƒgg d"¢gƒksºJ ‚td#ƒ}t dd|ddt|ƒ|dgƒ}t|jddddt|ƒ| d  |tddƒ  |  dddt|ƒ| d  gƒD ]\}	}
t	|	|
 ƒj
s.J ‚q.d S )$Nr   F)Úpivotsr/   r)   r!   )r/   r;   r!   r\   )r/   r   rd   ©r   r/   r;   )r   r   r   )	r/   r;   r!   r/   r;   r!   r/   r;   r!   )	r/   r;   r!   r   r   r   r   r   r   rK   )	r   r   r   r   r   r   r/   r;   r!   )r   r   r/   r;   r;   r-   r!   )rd   r)   r;   r;   r/   iùÿÿÿr)   )r   r   ra   re   re   r_   r-   )rd   r)   r   rd   ra   r/   r   )r/   r-   r   r   r/   r/   rd   )r   r   r/   r   r   rd   r/   )r   r   r   r/   r/   ra   r/   )r   r   r   r   r   r   r   )r   r;   r!   é   r;   )r]   r)   r<   r^   )r_   r`   é
   é   )é   é   é   é   i´ÿÿÿé   r-   éî   ©r   r   r   r   r   )r   Úrrefr   r   r    r   r
   r   Úzipr   rP   )r'   r?   ÚbÚcÚdÚzrV   Zpivot_offsetsr   r   r   r   r   r   Ú	test_rrefÚ   s‚    *$ý

ÿ

þ

ý
ýüüýü(ÿÿrz   c                     sþ   t g d¢g d¢g d¢g d¢g d¢g d¢gƒ‰ ˆ jddd	d
} ˆ jdd	ddd}ˆ jdd	dd}| d	d d …f t g d¢gƒks€J ‚|d	d d …f t g d¢gƒks¢J ‚|d	d d …f t g d¢gƒksÄJ ‚tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ d S )N)r!   r]   rd   r/   )r`   rm   re   r!   )r   r;   r/   r!   )r;   r!   r   ra   )r   r!   r!   r-   )r_   rp   r   r<   r.   r;   r)   r0   r4   r!   éüÿÿÿr5   r(   r*   )r   r!   r   ro   )é   é   r   rm   c                      s   ˆ j ddddS )Nr.   r;   r<   r0   r$   r   ©ÚCr   r   r   +  r   z"test_issue_17827.<locals>.<lambda>c                      s   ˆ j ddddS )Nr(   r^   r;   r*   r$   r   r~   r   r   r   ,  r   c                      s   ˆ j dddddS )Nr4   rd   r)   r;   r5   r$   r   r~   r   r   r   -  r   )r   r%   r   r=   )ÚDÚEÚFr   r~   r   Útest_issue_17827  s"    ú	"""rƒ   c                  C   sj   t ddgtddt  ggƒ} |  ¡ dks,J ‚t ddtddƒƒ}| ¡ dksNJ ‚tdƒ}| ¡ dksfJ ‚d S )Nr/   r;   r!   rk   r   )r   r   Úrankrf   r	   )Úmr   Úpr   r   r   Ú	test_rank/  s    r‡   c                  C   s¸   t dƒ\} }}}}}}}}}	}
}t| || |
 ||
 dg||||
 ||
 dg||||
 ||
 dg||||
 ||
 dg||	d| | ||
  d|	 | |	|
  dggƒ}| ¡ dks´J ‚d S )Nz/a_x a_y b_x b_y c_x c_y d_x d_y e_x e_y t_0 t_1r   r/   r;   r]   )r   r   r„   )ÚaxZayÚbxZbyZcxÚcyZdxZdyÚexZeyÚt0Út1ÚMr   r   r   Útest_issue_114347  s    ÿ,ür   c               	   C   sð   t dƒ\} }td|  dddgd|  d|  d ddgdd|  d|  | d dgdd| | dggƒ}tdddd| d | |    gdddd| | |    gdddd| |   gg d	¢gƒ}d
}| ¡ \}}t|| ƒt|jŽ ksàJ ‚||ksìJ ‚d S )Nz
nu, lambdare   r/   r   r!   ra   r;   rd   rs   ri   )r   r   rt   r   r	   Úshape)ÚnuZlambÚAZexpected_reducedZexpected_pivotsZreducedrh   r   r   r   Útest_rank_regression_from_soA  s    ýýr“   c                  C   sn   t g d¢g d¢g d¢g d¢gƒ} | t  d¡t  }| ¡ dksBJ ‚|d  ¡ dksVJ ‚|d  ¡ dksjJ ‚d S )N)r/   r/   r/   r   )ra   rd   r   rd   )r   r   rd   rd   )r   r   r;   r/   r]   r!   r;   )r   Zeyer   r„   )r’   ÚBr   r   r   Útest_issue_15872U  s
     r•   N)#Zsympy.core.numbersr   Zsympy.core.symbolr   Zsympy.matrices.commonr   r   Zsympy.matrices.matricesr   Zsympy.testing.pytestr   Zsympy.matricesr   r	   r
   r   Z(sympy.functions.elementary.miscellaneousr   Zsympy.simplify.simplifyr   Z	sympy.abcr   r   r   r    r@   rJ   rN   rg   rz   rƒ   r‡   r   r“   r•   r   r   r   r   Ú<module>   s.   $$_@
