o
    GZŽhI4  ã                   @   sÐ   d dl mZ d dlmZ d dlmZ d dlmZ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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)Úraises)ÚMatrixÚzerosÚeye)ÚSymbol)ÚRational)Úsqrt)Úsimplify)Úxc                     sP  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sJ ‚ˆ  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¡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s1J ‚ˆ jddddd tg d¢g d¢g d¢gƒksJJ ‚ˆ jddddd!tg d¢g d¢g d¢gƒkscJ ‚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s¦J ‚d S )$Né   c                      ó
   ˆ   d¡S ©NÚabc©Úelementary_row_op© ©Úer   úS/var/www/auris/lib/python3.10/site-packages/sympy/matrices/tests/test_reductions.pyÚ<lambda>   ó   
 ztest_row_op.<locals>.<lambda>c                      ó   ˆ   ¡ S ©Nr   r   r   r   r   r      ó    c                      ó   ˆ j ddddS )Nún->kné   ©ÚrowÚkr   r   r   r   r   r      ó    c                      ó   ˆ j ddddS )Nr   éûÿÿÿr   r   r   r   r   r   r   r      r"   c                      r#   )Nún<->mé   r   ©Úrow1Úrow2r   r   r   r   r   r      r"   c                      r#   )Nr%   r   r&   r'   r   r   r   r   r   r      r"   c                      r#   )Nr%   r$   r&   r'   r   r   r   r   r   r      r"   c                      r#   )Nr%   r&   r$   r'   r   r   r   r   r   r      r"   c                      ó   ˆ j dddddS ©Nún->n+kmr&   r   ©r(   r)   r!   r   r   r   r   r   r      ó    c                      ó   ˆ j dddddS )Nr,   r   r&   r-   r   r   r   r   r   r      r.   c                      ó   ˆ j dddddS )Nr,   r$   r&   r   r-   r   r   r   r   r   r      r.   c                      r0   )Nr,   r&   r$   r   r-   r   r   r   r   r   r      r.   c                      ó   ˆ j dddddS 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)   é   é   )r   r   Ú
ValueErrorr   r   ©Úar   r   r   Útest_row_op   ó8   ,,..,00022&&,r<   c                     sP  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sJ ‚ˆ  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¡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s1J ‚ˆ jddddd tg d¢g d¢g d¢gƒksJJ ‚ˆ jddddd!tg d¢g d¢g d¢gƒkscJ ‚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s¦J ‚d S )$Nr   c                      r   r   ©Úelementary_col_opr   r   r   r   r   4   r   ztest_col_op.<locals>.<lambda>c                      r   r   r>   r   r   r   r   r   5   r   c                      r   )Nr   r   ©Úcolr!   r>   r   r   r   r   r   6   r"   c                      r#   )Nr   r$   r   r@   r>   r   r   r   r   r   7   r"   c                      r#   )Nr%   r&   r   ©Úcol1Úcol2r>   r   r   r   r   r   8   r"   c                      r#   )Nr%   r   r&   rB   r>   r   r   r   r   r   9   r"   c                      r#   )Nr%   r$   r&   rB   r>   r   r   r   r   r   :   r"   c                      r#   )Nr%   r&   r$   rB   r>   r   r   r   r   r   ;   r"   c                      r*   ©Nr,   r&   r   ©rC   rD   r!   r>   r   r   r   r   r   <   r.   c                      r/   )Nr,   r   r&   rF   r>   r   r   r   r   r   =   r.   c                      r0   )Nr,   r$   r&   r   rF   r>   r   r   r   r   r   >   r.   c                      r0   )Nr,   r&   r$   r   rF   r>   r   r   r   r   r   ?   r.   c                      r1   rE   r>   r   r   r   r   r   @   r.   r   r   r   r2   r3   r4   r&   r5   r6   r@   )rC   r!   r%   rB   )rA   rD   r,   )r   r&   r   )rA   r!   rD   )rC   r!   rD   r7   r8   )r   r   r9   r?   r   r:   r   r   r   Útest_col_op1   r=   rG   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s*J ‚tddg d¢ƒ}|jr7J ‚tdƒ}tdd|ddgƒ}|jsIJ ‚tdd||dgƒ}|jrWJ ‚tddg d¢ƒ}|jrdJ ‚d S )	Nr   r   r7   )r   r7   r&   r   r   r8   )r   r   r8   r   r7   r&   r   r&   ©	r   r   r   r&   r7   r   r   r   r   )r   r   Ú
is_echelonr   r   )ZzroÚidentr;   r   r   r   r   Útest_is_echelonU   s"   






rK   c                     sÄ  t dƒ‰ tdƒ} ˆ  ¡ ˆ ksJ ‚|  ¡ | ksJ ‚tddg ƒ‰ ˆ  ¡ ˆ ks&J ‚tdddgƒ‰ ˆ  ¡ ˆ ks5J ‚‡fdd„}tddg d¢ƒ‰ tdgdgdggƒg}‡ fd	d
„tˆ jƒD ƒ}ˆ  ¡ ‰ˆjscJ ‚|ˆ ||ƒ 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sZJ ‚|ˆ ||ƒ d S )Nr   r   r&   r   c                    sb   |D ]}t dd„ ˆ | D ƒƒsJ ‚q|D ]}t dd„ |D ƒƒs.t dd„ ˆ | ¡  D ƒƒr.J ‚qd S )Nc                 s   ó    | ]}|j V  qd S r   ©Úis_zero©Ú.0Útr   r   r   Ú	<genexpr>†   ó   € zCtest_echelon_form.<locals>.verify_row_null_space.<locals>.<genexpr>c                 s   rL   r   rM   rO   r   r   r   rR   ˆ   rS   c                 s   rL   r   rM   rO   r   r   r   rR   ‰   rS   )ÚallZ	transpose)ÚmatÚrowsÚnullsÚv)Ú	a_echelonr   r   Úverify_row_null_space„   s   €þz0test_echelon_form.<locals>.verify_row_null_space©	r&   r7   r   é   r   r8   é   é   é	   éþÿÿÿc                    ó   g | ]
}ˆ |d d …f ‘qS r   r   ©rP   Úir:   r   r   Ú
<listcomp>   ó    z%test_echelon_form.<locals>.<listcomp>)	r&   r7   r   r\   r   r8   r]   r^   r^   c                    ra   r   r   rb   r:   r   r   rd   ˜   re   )	r7   r&   r   r   r   r   r7   r&   r   éÿÿÿÿr7   éýÿÿÿc                    ra   r   r   rb   r:   r   r   rd   ¦   re   )	r7   r&   r   r   r   r   r&   r&   r   c                    ra   r   r   rb   r:   r   r   rd   ±   re   )	r   r   r   r   r7   r7   r   r&   r&   c                    ra   r   r   rb   r:   r   r   rd   ¿   re   )r7   r7   r   r   r   r   c                    ra   r   r   rb   r:   r   r   rd   É   re   )r   r   Zechelon_formr   ÚrangerV   rI   r	   )r   rZ   rW   rV   r   )r;   rY   r   Útest_echelon_formp   sš   ý


ý
ýü
ý
ýýüýri   c               
   C   sH  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r1| ks4J ‚ J ‚t ddg d¢ƒ}|jddt dgdgdggƒksNJ ‚t ddg d¢ƒ}|jddt g d¢gƒkseJ ‚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ÊJ ‚ 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sXJ ‚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&   r7   r   r[   )r&   r   rf   ©r   r&   r7   )r   r   r   )	r&   r7   r   r&   r7   r   r&   r7   r   )	r&   r7   r   r   r   r   r   r   r   rH   )	r   r   r   r   r   r   r&   r7   r   )r   r   r&   r7   r7   r$   r   )rf   r   r7   r7   r&   iùÿÿÿr   )r   r   r`   rg   rg   r^   r$   )rf   r   r   rf   r`   r&   r   )r&   r$   r   r   r&   r&   rf   )r   r   r&   r   r   rf   r&   )r   r   r   r&   r&   r`   r&   )r   r   r   r   r   r   r   )r   r7   r   é   r7   )r\   r   r8   r]   )r^   r_   é
   é   )é   é   é   é   i´ÿÿÿé   r$   éî   ©r   r   r   r   r   )
r   Úrrefr   r   r	   r   r
   Úzipr   rN   )r   r;   ÚbÚcÚdÚzrU   Zpivot_offsetsr   rc   Újr   r   r   Ú	test_rrefÏ   s„   ,$ý

ÿ
þ
ýýüüýü(ÿÿýr}   c                  C   s¢   t dƒ\} }}}tddgddgddgddggƒ}t| |||gƒ}| |¡tddgddgddgddggƒtd| | gd| d |d  g| g|ggƒfksOJ ‚d S )Nza b c dr   r&   r7   r   r\   r`   )r   r   Zrref_rhs)r;   rx   ry   rz   ÚAÚBr   r   r   Útest_rref_rhs  s     
üüür€   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sQJ ‚|d	d d …f t g d¢gƒksbJ ‚tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ d S )N)r   r\   rf   r&   )r_   ro   rg   r   )r   r7   r&   r   )r7   r   r   r`   )r   r   r   r$   )r^   rr   r   r8   r%   r7   r   r'   r,   r   éüÿÿÿr-   r   r   )r   r   r   rq   )é   é   r   ro   c                      r#   )Nr%   r7   r8   r'   r   r   ©ÚCr   r   r   0  r"   z"test_issue_17827.<locals>.<lambda>c                      r#   )Nr   r]   r7   r   r   r   r„   r   r   r   1  r"   c                      r0   )Nr,   rf   r   r7   r-   r   r   r„   r   r   r   2  r.   )r   r   r   r9   )Ú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s'J ‚tdƒ}| ¡ dks3J ‚d S )Nr&   r7   r   rm   r   )r   r   Úrankrh   r   )ÚmÚnÚpr   r   r   Ú	test_rank4  s   rŽ   c                  C   s¸   t dƒ\} }}}}}}}}}	}
}t| || |
 ||
 dg||||
 ||
 dg||||
 ||
 dg||||
 ||
 dg||	d| | ||
  d|	 | |	|
  dggƒ}| ¡ dksZJ ‚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&   r7   r\   )r   r   rŠ   )ÚaxZayÚbxZbyZcxÚcyZdxZdyÚexZeyÚt0Út1ÚMr   r   r   Útest_issue_11434<  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spJ ‚||ksvJ ‚d S )Nz
nu, lambdarg   r&   r   r   r`   r7   rf   ru   rk   )r   r   rv   r   r   Úshape)ÚnuZlambr~   Zexpected_reducedZexpected_pivotsZreducedrj   r   r   r   Útest_rank_regression_from_soF  s   ýýr™   c                  C   sn   t g d¢g d¢g d¢g d¢gƒ} | t  d¡t  }| ¡ dks!J ‚|d  ¡ dks+J ‚|d  ¡ dks5J ‚d S )N)r&   r&   r&   r   )r`   rf   r   rf   )r   r   rf   rf   )r   r   r7   r&   r\   r   r7   )r   r   r   rŠ   )r~   r   r   r   r   Útest_issue_15872Z  s
    rš   N)Zsympy.core.numbersr   Zsympy.core.symbolr   Zsympy.testing.pytestr   Zsympy.matricesr   r   r   r   r	   Z(sympy.functions.elementary.miscellaneousr
   Zsympy.simplify.simplifyr   Z	sympy.abcr   r<   rG   rK   ri   r}   r€   r‰   rŽ   r–   r™   rš   r   r   r   r   Ú<module>   s(    $$_A
