a
    {þd%  ã                   @   sä   d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZ d dlmZmZ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d„ Z$dd„ Z%d S )!é    )Úraises)ÚZZÚQQ)ÚDDM)Úddm_transposeÚddm_iaddÚddm_isubÚddm_inegÚddm_imatmulÚddm_imulÚ	ddm_irrefÚddm_idetÚddm_iinvÚddm_iluÚddm_ilu_splitÚddm_ilu_solveÚddm_berk)ÚDMShapeErrorÚDMNonInvertibleMatrixErrorÚDMNonSquareMatrixErrorc                  C   s0   ddgddgg} t | ƒddgddggks,J ‚d S )Né   é   é   é   )r   ©Úa© r   ún/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/sympy/polys/matrices/tests/test_dense.pyÚtest_ddm_transpose   s    r   c                  C   sF   ddgddgg} ddgddgg}t | |ƒ | ddgd	d
ggksBJ ‚d S )Nr   r   r   r   é   é   é   é   é
   é   )r   ©r   Úbr   r   r   Útest_ddm_iadd   s    
r'   c                  C   sF   ddgddgg} ddgddgg}t | |ƒ | d	d	gd	d	ggksBJ ‚d S )
Nr   r   r   r   r   r    r!   r"   éüÿÿÿ)r   r%   r   r   r   Útest_ddm_isub   s    
r)   c                  C   s4   ddgddgg} t | ƒ | ddgddggks0J ‚d S )	Nr   r   r   r   éÿÿÿÿéþÿÿÿéýÿÿÿr(   )r	   r   r   r   r   Útest_ddm_ineg!   s    r-   c                  C   sh   ddgddgg} t | dƒ | ddgddggks2J ‚ddgddgg} t | dƒ | ddgddggksdJ ‚d S )Nr   r   r   r   r    r"   r   )r   r   r   r   r   Útest_ddm_matmul'   s    

r.   c                  C   sÚ   g d¢g d¢g} ddgddgddgg}d	d	gd	d	gg}t || |ƒ |d
dgddggksZJ ‚g d¢g d¢g d¢g}t ||| ƒ |g d¢g d¢g d¢gksšJ ‚dgdgdgg}d	gd	gg}t || |ƒ |dgdggksÖJ ‚d S )N)r   r   r   )r   r   r    r   r   r   r   r   r    r   é   é   é1   é@   )r   r   r   )é	   r$   é   )é   é   é!   )é   é(   é3   é   é    )r
   )r   r&   Zc1Úc2Úb3Úc3r   r   r   Útest_ddm_imatmul1   s    r@   c                  C   s  g } g }g }t | ƒ|ksJ ‚| |ks(J ‚tdƒtdƒgtdƒtdƒgg} tdƒtdƒgtdƒtdƒgg}ddg}t | ƒ|ks€J ‚| |ksŒJ ‚tdƒtdƒtdƒgtdƒtdƒtdƒgg} tdƒtdƒtdƒgtdƒtdƒtdƒgg}ddg}t | ƒ|ksüJ ‚| |ks
J ‚tdƒtdƒtdƒgtdƒtdƒtdƒgg} tdƒtdƒtdƒgtdƒtdƒtdƒgg}ddg}t | ƒ|ks|J ‚| |ksŠJ ‚tdƒtdƒgtdƒtdƒgtdƒtdƒgg} tdƒtdƒgtdƒtdƒgtdƒtdƒgg}ddg}t | ƒ|ks J ‚| |ksJ ‚tdƒtdƒtdƒgtdƒtdƒtdƒgg} tdƒtdƒtdƒgtdƒtdƒtdƒgg}ddg}t | ƒ|ks€J ‚| |ksŽJ ‚tdƒtdƒgtdƒtdƒgtdƒtdƒgg} tdƒtdƒgtdƒtdƒgtdƒtdƒgg}ddg}t | ƒ|ksJ ‚| |ksJ ‚d S )Nr   r   r   r   r   r*   )r   r   )ÚAZArZpivotsr   r   r   Útest_ddm_irrefC   sF      ,,,,..,,..rB   c                  C   sf  g } t | tƒtdƒksJ ‚tdƒgg} t | tƒtdƒks<J ‚tdƒtdƒgtdƒtdƒgg} t | tƒtdƒksrJ ‚tdƒtdƒtdƒgtdƒtdƒtdƒgtdƒtdƒtdƒgg} t | tƒtdƒksÈJ ‚tdƒtdƒtdƒgtdƒtdƒtdƒgtdƒtdƒtdƒgg} t | tƒtdƒks J ‚tddƒtddƒgtddƒtddƒgg} t | tƒtdd	ƒksbJ ‚d S )
Nr   r   r   r   r+   r   r*   r   é   )r   r   r   ©rA   r   r   r   Útest_ddm_idetv   s     @@(rE   c                     s\  g ‰ g ‰t ˆˆ tƒ ˆˆ ks J ‚g ‰ g ‰tt‡ ‡fdd„ƒ tdƒtdƒgg‰ tdƒtdƒgg‰tt‡ ‡fdd„ƒ tddƒtddƒgtddƒtddƒgg‰ tdƒtdƒgtdƒtdƒgg‰td	dƒtddƒgtddƒtd
dƒgg} t ˆˆ tƒ ˆ| ksüJ ‚tddƒtddƒgtddƒtddƒgg‰ tdƒtdƒgtdƒtdƒgg‰tt‡ ‡fdd„ƒ d S )Nc                      s   t ˆˆ tƒS ©N)r   r   r   ©rA   ZAinvr   r   Ú<lambda>’   ó    ztest_ddm_inv.<locals>.<lambda>r   r   r   c                      s   t ˆˆ tƒS rF   ©r   r   r   rG   r   r   rH   –   rI   r   r   r+   r*   c                      s   t ˆˆ tƒS rF   rJ   r   rG   r   r   rH       rI   )r   r   r   Ú
ValueErrorr   r   )ZAinv_expectedr   rG   r   Útest_ddm_invŠ   s$    ( (( rL   c                  C   sd  g } g }t | ƒ}| |ksJ ‚|g ks(J ‚g g} g g}t | ƒ}| |ksHJ ‚|g ksTJ ‚tdƒtdƒgtdƒtdƒgg} tdƒtdƒgtdƒtdƒgg}t | ƒ}| |ks¨J ‚|g ks´J ‚tdƒtdƒgtdƒtdƒgg} tdƒtdƒgtdƒtdƒgg}t | ƒ}| |ks
J ‚|dgksJ ‚tdƒtdƒtdƒgtdƒtdƒtd	ƒgtd
ƒtdƒtdƒgg} tdƒtdƒtdƒgtdƒtdƒtdƒgtd
ƒtdƒtdƒgg}t | ƒ}| |ks°J ‚|g ks¾J ‚tdƒtdƒtdƒgtdƒtdƒtdƒgtdƒtdƒtdƒgg} tdƒtdƒtdƒgtdƒtdƒtdƒgtdƒtdƒtdƒgg}t | ƒ}| |ksTJ ‚|dgksdJ ‚tdƒtdƒtdƒgtdƒtdƒtd	ƒgg} tdƒtdƒtdƒgtdƒtdƒtdƒgg}t | ƒ}| |ksÒJ ‚|g ksàJ ‚tdƒtdƒgtdƒtdƒgtdƒtd	ƒgg} tdƒtdƒgtdƒtdƒgtdƒtdƒgg}t | ƒ}| |ksRJ ‚|g ks`J ‚d S )Nr   r   r   r   r+   r   ©r   r   r   r    r!   r"   r3   r,   éúÿÿÿr*   )r   r   )r   r   )rA   ZAluÚswapsr   r   r   Útest_ddm_ilu£   sP        @@@@,,..rP   c                  C   s.  g } g }g }g }t || tƒ}| |ks(J ‚||ks4J ‚|g ks@J ‚g g} tdƒgg}g g}tdƒgg}t || tƒ}| |ks|J ‚||ksˆJ ‚|g ks”J ‚tdƒtdƒgtdƒtdƒgg} tdƒtdƒgtdƒtdƒgg}tdƒtdƒgtdƒtdƒgg}tdƒtdƒgtdƒtdƒgg}t || tƒ}| |ks.J ‚||ks<J ‚|g ksJJ ‚tdƒtdƒtdƒgtdƒtdƒtdƒgg} tdƒtdƒgtdƒtdƒgg}tdƒtdƒtdƒgtdƒtd	ƒtd
ƒgg}tdƒtdƒgtdƒtdƒgg}t || tƒ}| |ksüJ ‚||ks
J ‚|g ksJ ‚tdƒtdƒgtdƒtdƒgtdƒtdƒgg} tdƒtdƒtdƒgtdƒtdƒtdƒgtdƒtdƒtdƒgg}tdƒtdƒgtdƒtdƒgtdƒtdƒgg}tdƒtdƒtdƒgtdƒtdƒtdƒgtdƒtdƒtdƒgg}t || tƒ}| |ksJ ‚||ksJ ‚|g ks*J ‚d S )Nr   r   r   r   r   r+   r   r    r,   rN   )r   r   )ÚUÚLZUexpZLexprO   r   r   r   Útest_ddm_ilu_splitÕ   sP        , , .@.@rS   c                     s   t dƒt dƒgt dƒt dƒgg‰t dƒt dƒgt dƒt dƒgg‰ g ‰tt dƒgt dƒggdt ƒ‰tt dƒgt dƒggdt ƒ‰tt dƒgt ddƒggdt ƒ} tˆˆ ˆˆˆƒ ˆ| ks¶J ‚t dƒt dƒgt dƒt dƒgg‰t dƒt dƒgt dƒt dƒgg‰ dg‰tt dƒgt dƒggdt ƒ‰tt dƒgt dƒggdt ƒ‰tt dƒgt ddƒggdt ƒ} tˆˆ ˆˆˆƒ ˆ| kspJ ‚t dƒt dƒgt dƒt dƒgt dƒt dƒgg‰t dƒt dƒt dƒgt dƒt dƒt dƒgt d	ƒt dƒt dƒgg‰ g ‰tt dƒgt dƒgt dƒggd
t ƒ‰tt dƒgt dƒggdt ƒ‰tt dƒgt ddƒggdt ƒ} tˆˆ ˆˆˆƒ ˆ| ks^J ‚tt dƒgt dƒgt dƒggd
t ƒ‰tt‡ ‡‡‡‡fdd„ƒ t dƒt dƒgt dƒt dƒgg‰t dƒt dƒgt dƒt dƒgg‰ g ‰tt dƒgt dƒggdt ƒ‰tt‡ ‡‡‡‡fdd„ƒ t dƒt dƒgg‰t dƒgg‰ g ‰tt dƒggdt ƒ‰tt‡ ‡‡‡‡fdd„ƒ tt dƒgt dƒgt dƒggd
t ƒ‰tt‡ ‡‡‡‡fdd„ƒ t dƒgg‰t dƒgg‰ g ‰t dƒgg‰g ‰tt‡ ‡‡‡‡fdd„ƒ g ‰g ‰ g ‰g ‰g ‰tˆˆ ˆˆˆƒ ˆg ksJ ‚d S )Nr   r   r   r+   r   )r   r   r   rM   r   )r   r   c                      s   t ˆˆ ˆˆˆƒS rF   ©r   r   ©rR   rQ   r&   rO   Úxr   r   rH   (  rI   z$test_ddm_ilu_solve.<locals>.<lambda>c                      s   t ˆˆ ˆˆˆƒS rF   rT   r   rU   r   r   rH   0  rI   )r   r   c                      s   t ˆˆ ˆˆˆƒS rF   rT   r   rU   r   r   rH   8  rI   c                      s   t ˆˆ ˆˆˆƒS rF   rT   r   )rR   rQ   r>   rO   rV   r   r   rH   <  rI   c                      s   t ˆˆ ˆˆˆƒS rF   rT   r   rU   r   r   rH   D  rI   )r   r   r   r   r   ÚNotImplementedErrorr   )Zxexpr   )rR   rQ   r&   r>   rO   rV   r   Útest_ddm_ilu_solve  sf        .@$$  $rX   c                     sÄ   g ‰ t ˆ tƒtdƒggksJ ‚tdƒtdƒtdƒgtdƒtdƒtdƒgtdƒtdƒtd	ƒgg‰ tdƒgtd
ƒgtdƒgtdƒgg} t ˆ tƒ| ks”J ‚ttdƒtdƒggdtƒ‰ tt‡ fdd„ƒ d S )Nr   r   r   r   r   r    r!   r"   r3   iñÿÿÿiîÿÿÿr   )r   r   c                      s
   t ˆ tƒS rF   )r   r   r   rD   r   r   rH   Y  rI   z#test_ddm_charpoly.<locals>.<lambda>)r   r   r   r   r   )ZAvecr   rD   r   Útest_ddm_charpolyP  s    @$rY   N)&Zsympy.testing.pytestr   Zsympy.polysr   r   Zsympy.polys.matrices.ddmr   Zsympy.polys.matrices.denser   r   r   r	   r
   r   r   r   r   r   r   r   r   Zsympy.polys.matrices.exceptionsr   r   r   r   r'   r)   r-   r.   r@   rB   rE   rL   rP   rS   rX   rY   r   r   r   r   Ú<module>   s"   <
32/L