a
    {þds~  ã                   @   s„  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mZmZmZ d dlmZmZmZ d dlmZmZmZmZmZmZ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!d"„ Z+d#d$„ Z,d%d&„ Z-d'd(„ Z.d)d*„ Z/d+d,„ Z0d-d.„ Z1d/d0„ Z2d1d2„ Z3d3d4„ Z4d5d6„ Z5d7d8„ Z6d9d:„ Z7d;d<„ Z8d=d>„ Z9d?d@„ Z:dAdB„ Z;dCdD„ Z<dEdF„ Z=dGdH„ Z>dIdJ„ Z?dKdL„ Z@dMdN„ ZAdOdP„ ZBdQdR„ ZCdSdT„ ZDdUdV„ ZEdWdX„ ZFdYdZ„ ZGd[d\„ ZHd]d^„ ZId_d`„ ZJdadb„ ZKdcdd„ ZLdedf„ ZMdgdh„ ZNdidj„ ZOdkdl„ ZPdmdn„ ZQdodp„ ZRdqdr„ ZSdsdt„ ZTdudv„ ZUdwdx„ ZVdydz„ ZWd{d|„ ZXd}d~„ ZYdd€„ ZZdS )‚é    )Úraises)ÚIntegerÚRational)ÚS)Úsqrt)ÚMatrix)ÚFFÚZZÚQQÚEXRAW)ÚDomainMatrixÚDomainScalarÚDM)ÚDMBadInputErrorÚDMDomainErrorÚDMShapeErrorÚDMFormatErrorÚDMNotAFieldÚDMNonSquareMatrixErrorÚDMNonInvertibleMatrixError)ÚDDM)ÚSDMc                  C   sl   t tdƒtdƒgtdƒtdƒggdtƒ} tddgddggtƒ}|j| ksLJ ‚|jdksZJ ‚|jtkshJ ‚d S ©Né   é   é   é   ©r   r   )r   r	   r   ÚrepÚshapeÚdomain)ÚddmÚA© r#   úu/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/sympy/polys/matrices/tests/test_domainmatrix.pyÚtest_DM   s
    (r%   c                     s|  t dƒt dƒgt dƒt dƒgg‰t dƒt dƒdœt dƒt dƒdœdœ} tˆdt ƒ‰ t| dt ƒ‰tˆdt ƒ}|jˆ ksxJ ‚|jdks†J ‚|jt ks”J ‚t| dt ƒ}|jˆks®J ‚|jdks¼J ‚|jt ksÊJ ‚tt‡ fdd„ƒ tt‡fd	d„ƒ ttd
d„ ƒ dˆfdˆ ffD ]J\}}tˆdt |d}|j|ks4J ‚t| dt |d}|j|ksJ ‚qtt	‡fdd„ƒ tt
dd„ ƒ d S )Nr   r   r   r   ©r   r   r   c                      s   t ˆ dtƒS ©Nr   ©r   r	   r#   )r!   r#   r$   Ú<lambda>+   ó    z(test_DomainMatrix_init.<locals>.<lambda>c                      s   t ˆ dtƒS r'   r(   r#   )Úsdmr#   r$   r)   ,   r*   c                   S   s   t tdggƒdtƒS )Nr   ©r   r   )r   r   r	   r#   r#   r#   r$   r)   -   r*   ÚsparseÚdense©Úfmtc                      s   t ˆ dtddS )Nr   Úinvalidr/   r(   r#   )Úlolr#   r$   r)   5   r*   c                   S   s   t tdƒtdƒggdtƒS )Nr   r   r   r(   r#   r#   r#   r$   r)   7   r*   )r	   r   r   r   r   r   r    r   Ú	TypeErrorÚ
ValueErrorr   )Zdodr"   r0   r   r#   )r!   r2   r+   r$   Útest_DomainMatrix_init   s,     &r5   c                     sè   t tdƒtdƒgtdƒtdƒggdtƒ} t | ¡‰ ˆ j| ks@J ‚ˆ jdksNJ ‚ˆ jtks\J ‚ttdƒtdƒdœtdƒtdƒdœdœdtƒ}t |¡‰ ˆ j|ks¢J ‚ˆ jdks°J ‚ˆ jtks¾J ‚ttdƒggdtƒ‰ tt	‡ fdd	„ƒ d S )
Nr   r   r   r   r   r&   r,   c                      s
   t  ˆ ¡S ©N)r   Úfrom_repr#   ©r"   r#   r$   r)   H   r*   z,test_DomainMatrix_from_rep.<locals>.<lambda>)
r   r	   r   r7   r   r   r    r   r   r3   )r!   r+   r#   r8   r$   Útest_DomainMatrix_from_rep:   s    (
.
r9   c                  C   sX  t tdƒtdƒgtdƒtdƒggdtƒ} t ddgddggt¡}|j| ksNJ ‚|jdks\J ‚|jtksjJ ‚tdƒ}t |dƒ|dƒg|dƒ|dƒggd|ƒ} t ddgddgg|¡}|j| ksÀJ ‚|jdksÎJ ‚|j|ksÜJ ‚t tddƒtddƒgtddƒtddƒggdtƒ} t dd	gd
dggt¡}|j| ks4J ‚|jdksDJ ‚|jtksTJ ‚d S )Nr   r   r   r   r   é   é   ©r   r   ©r   r   ©r   r   )r;   r   )	r   r	   r   Ú	from_listr   r   r    r   r
   )r!   r"   Údomr#   r#   r$   Útest_DomainMatrix_from_listK   s     ((0rA   c                  C   s<  t tdƒtdƒgtdƒtdƒggdtƒ} t ddddgddgg¡}|j| ksPJ ‚|jdks^J ‚|jtkslJ ‚t t	dƒ¡}t | 
dt	dƒ ¡| 
dt	dƒ ¡g| 
dt	dƒ ¡| 
dt	dƒ ¡ggd|ƒ} tjdddt	dƒ dt	dƒ gdt	dƒ dt	dƒ ggdd}|j| ksJ ‚|jdks(J ‚|j|ks8J ‚d S )Nr   r   r   r   r   T©Ú	extension)r   r	   r   Zfrom_list_sympyr   r   r    r
   Úalgebraic_fieldr   Úconvert)r!   r"   ÚKr#   r#   r$   Ú!test_DomainMatrix_from_list_sympy`   s(    (""ÿü2þrG   c                     sª   t dtddƒidtddƒidœdtƒ} dtddƒidtddƒidœ}t dd|¡}|j| ks`J ‚|jdksnJ ‚|jtks|J ‚tj‰ tt	‡ fdd„ƒ tt	‡ fd	d„ƒ d S )
Nr   r   r   r   r&   r   c                      s   ˆ ddddt ddƒiiƒS )Nr   r   r   r   ©r   r#   ©Úfdsr#   r$   r)      r*   z3test_DomainMatrix_from_dict_sympy.<locals>.<lambda>c                      s   ˆ ddddt ddƒiiƒS )Nr   r   r   r   rH   r#   rI   r#   r$   r)   €   r*   )
r   r
   r   r   Zfrom_dict_sympyr   r   r    r   r   )r+   Z
sympy_dictr"   r#   rI   r$   Ú!test_DomainMatrix_from_dict_sympyv   s    &rK   c                  C   sÞ  t tdƒtdƒdœtdƒtdƒdœdœdtƒ} t tddgddggƒ¡}|j| ksVJ ‚|jdksdJ ‚|jtksrJ ‚t 	t
dƒ¡}t | dt
dƒ ¡| dt
dƒ ¡dœ| dt
dƒ ¡| dt
dƒ ¡dœdœd|ƒ} tjtdt
dƒ dt
dƒ gdt
dƒ dt
dƒ ggƒdd}|j| ks$J ‚|jdks4J ‚|j|ksDJ ‚tjttddƒtddƒgtd	dƒtd	dƒggƒd
d}ttddƒtddƒgtd	dƒtd	dƒggdtƒ}|j|ksºJ ‚|jdksÊJ ‚|jtksÚJ ‚d S )Nr   r   r&   r   r   r   TrB   r   r.   r/   )r   r	   r   Úfrom_Matrixr   r   r   r    r
   rD   r   rE   r   )r+   r"   rF   r!   r#   r#   r$   Útest_DomainMatrix_from_Matrixƒ   s2    .$$ÿü2þ60rM   c                  C   s˜   t tdƒtdƒgtdƒtdƒggdtƒ} | | ks4J ‚t tdƒtdƒgtdƒtdƒggdtƒ}| |kshJ ‚tdƒtdƒgtdƒtdƒgg}| |ks”J ‚d S r   r(   ©r"   ÚBÚCr#   r#   r$   Útest_DomainMatrix_eq    s    (( rQ   c                  C   sÆ   t tdƒtdƒgtdƒtdƒggdtƒ} t tdƒtdƒgtdƒtdƒggdtƒ}t tdƒtdƒgtdƒtdƒggdtƒ}t tdƒggdtƒ}|  |¡du sžJ ‚|  |¡du s°J ‚|  |¡du sÂJ ‚d S )	Nr   r   r   r   r   r,   TF)r   r	   r
   Zunify_eq)r"   ZB1ZB2ZB3r#   r#   r$   Útest_DomainMatrix_unify_eq©   s    (((rR   c                  C   s”   t  g d¢¡\} }|tdƒtdƒtdƒtdƒgks6J ‚| tksBJ ‚t  dddtddƒg¡\} }|tdƒtdƒtdƒtddƒgks„J ‚| tksJ ‚d S )N)r   r   r   r   r   r   r   r   )r   Z
get_domainr	   r   r
   )rF   Úitemsr#   r#   r$   Útest_DomainMatrix_get_domain³   s    $&rT   c                  C   s„   t tdƒtdƒgtdƒtdƒggdtƒ} |  t¡}|t tdƒtdƒgtdƒtdƒggdtƒksbJ ‚|  d ¡}|| kr||| us€J ‚d S r   )r   r	   Ú
convert_tor
   )r"   ÚAqZAcopyr#   r#   r$   Útest_DomainMatrix_convert_to½   s
    (
0
rW   c                  C   sB   t tdƒtdƒgtdƒtdƒggdtƒ} |  ¡ |  t¡ks>J ‚d S r   )r   r	   Zto_sympyrU   r   r8   r#   r#   r$   Útest_DomainMatrix_to_sympyÅ   s    (rX   c                  C   sd   t tdƒtdƒgtdƒtdƒggdtƒ} |  ¡ }|t tdƒtdƒgtdƒtdƒggdtƒks`J ‚d S r   )r   r	   Zto_fieldr
   )r"   rV   r#   r#   r$   Útest_DomainMatrix_to_fieldÊ   s    (rY   c                  C   sT   t tdƒtdƒgtdƒtdƒggdtƒ} |  ¡ }|jdddœdddœdœksPJ ‚d S )Nr   r   r   r   r   r&   )r   r	   Ú	to_sparser   )r"   ZA_sparser#   r#   r$   Útest_DomainMatrix_to_sparseÐ   s    (r[   c                  C   sL   t dddœdddœdœdtƒ} |  ¡ }|jtddgddggdtƒksHJ ‚d S )Nr   r   r&   r   r   r   )r   r	   Úto_denser   r   )r"   ZA_denser#   r#   r$   Útest_DomainMatrix_to_denseÖ   s    r]   c                     sö  t tdƒtdƒgtdƒtdƒggdtƒ} t tdƒtdƒgtdƒtdƒggdtƒ}|  | ¡| | fksfJ ‚|  |¡||fks|J ‚| | ¡||fks’J ‚| |¡||fks¨J ‚t dtdƒidtdƒidœdtƒ‰t tdƒtdƒgtdƒtdƒggdtƒ‰ ˆ ˆ¡ˆˆfks
J ‚ˆ  ˆ ¡ˆ ˆ fks"J ‚ˆjˆ dd	\}}|jtddgddggdtƒksXJ ‚|jtddgddggdtƒks|J ‚ˆjˆ d
d	\}}|jtddiddidœdtƒks´J ‚|jtdddœdddœdœdtƒksÞJ ‚tt‡ ‡fdd„ƒ d S )Nr   r   r   r   r   r   r&   r.   r/   r-   c                      s   ˆj ˆ ddS )Nr1   r/   )Úunifyr#   ©ÚAdÚAsr#   r$   r)   ò   r*   z)test_DomainMatrix_unify.<locals>.<lambda>)	r   r	   r
   r^   r   r   r   r   r4   )ÚAzrV   ZBsZBdr#   r_   r$   Útest_DomainMatrix_unifyÜ   s"    (("($$&*rc   c                  C   sL   t tdƒtdƒgtdƒtdƒggdtƒ} |  ¡ tddgddggƒksHJ ‚d S r   )r   r	   Z	to_Matrixr   r8   r#   r#   r$   Útest_DomainMatrix_to_Matrixõ   s    (rd   c                  C   sX   t tdƒtdƒgtdƒtdƒggdtƒ} |  ¡ tdƒtdƒgtdƒtdƒggksTJ ‚d S r   )r   r	   Zto_listr8   r#   r#   r$   Útest_DomainMatrix_to_listú   s    (re   c                  C   sT   t tdƒtdƒgtdƒtdƒggdtƒ} |  ¡ tdƒtdƒtdƒtdƒgksPJ ‚d S r   )r   r	   Zto_list_flatr8   r#   r#   r$   Útest_DomainMatrix_to_list_flatÿ   s    (rf   c                  C   sV   t tdƒtdƒgtdƒtdƒggdtƒ} |  ¡ tdƒtdƒtdƒtdƒdœksRJ ‚d S )Nr   r   r   r   r   )©r   r   r&   ©r   r   r,   )r   r	   Zto_dokr8   r#   r#   r$   Útest_DomainMatrix_to_dok  s    (ri   c                  C   s<   t tdƒtdƒgtdƒtdƒggdtƒ} t| ƒdks8J ‚d S )Nr   r   r   r   r   z*DomainMatrix([[1, 2], [3, 4]], (2, 2), ZZ))r   r	   Úreprr8   r#   r#   r$   Útest_DomainMatrix_repr	  s    (rk   c                  C   sd   t tdƒtdƒgtdƒtdƒggdtƒ} t tdƒtdƒgtdƒtdƒggdtƒ}|  ¡ |ks`J ‚d S r   )r   r	   Z	transpose)r"   ÚATr#   r#   r$   Útest_DomainMatrix_transpose  s    ((rm   c                  C   sT   t tdƒtdƒgtdƒtdƒggdtƒ} |  ¡ tdƒtdƒtdƒtdƒgksPJ ‚d S r   )r   r	   Zflatr8   r#   r#   r$   Útest_DomainMatrix_flat  s    (rn   c                  C   sH   t tdƒggdtƒ} t tdƒggdtƒ}| jdu s6J ‚|jdu sDJ ‚d S )Nr   r,   r   FT)r   r	   Zis_zero_matrix©r"   rO   r#   r#   r$   Ú test_DomainMatrix_is_zero_matrix  s    rp   c                  C   sp   t tdƒtdƒgtdƒtdƒggdtƒ} t tdƒtdƒgtdƒtdƒggdtƒ}| jdu s^J ‚|jdu slJ ‚d S )	Nr   r   r   r   r   r   TF)r   r	   Zis_upperro   r#   r#   r$   Útest_DomainMatrix_is_upper   s    ((rq   c                  C   sp   t tdƒtdƒgtdƒtdƒggdtƒ} t tdƒtdƒgtdƒtdƒggdtƒ}| jdu s^J ‚|jdu slJ ‚d S )	Nr   r   r   r   r   r   TF)r   r	   Zis_lowerro   r#   r#   r$   Útest_DomainMatrix_is_lower'  s    ((rr   c                  C   s~   t tdƒtdƒgtdƒtdƒggdtƒ} t tdƒtdƒgtdƒtdƒgtdƒtdƒggdtƒ}| jd	u slJ ‚|jd
u szJ ‚d S )Nr   r   r   r   r   r;   é   ©r   r   TF)r   r	   Z	is_squarero   r#   r#   r$   Útest_DomainMatrix_is_square.  s    (6ru   c                  C   sJ   t tdƒtdƒgtdƒtdƒgtdƒtdƒggdtƒ} |  ¡ dksFJ ‚d S )Nr   r   r   r   rs   é   rt   )r   r
   Zrankr8   r#   r#   r$   Útest_DomainMatrix_rank5  s    6rw   c                     s(  t tdƒtdƒgtdƒtdƒggdtƒ‰ t tdƒtdƒgtdƒtdƒggdtƒ} ˆ ˆ  ˆ  ˆ ¡  krn| kstn J ‚t tdƒtdƒgtdƒtdƒggdtƒ‰ ddgddgg‰tt‡ ‡fdd	„ƒ tt‡ ‡fd
d	„ƒ t tdƒtdƒgtdƒtdƒggdtƒ‰t tdƒtdƒggdtƒ‰tt‡‡fdd	„ƒ tt‡‡fdd	„ƒ tt‡‡fdd	„ƒ tt‡‡fdd	„ƒ t tdƒtdƒgtdƒtdƒggdtƒ‰t tdƒtdƒgtdƒtdƒggdtƒ‰t tdƒtdƒgtdƒtdƒggdtƒ}ˆˆ |ksðJ ‚ˆˆ |ksJ ‚tt‡‡fdd	„ƒ tt‡‡fdd	„ƒ t dtdƒidtdƒidœdtƒ‰t tdƒtdƒgtdƒtdƒggdtƒ‰ˆˆ }ˆˆ }|t ddgddggdtƒks¦J ‚|jt	ddgddggdtƒksÊJ ‚|t ddgddggdtƒksìJ ‚|jt	ddgddggdtƒksJ ‚tt
‡‡fdd	„ƒ d S )Nr   r   r   r   r   rs   rv   c                      s   ˆ ˆ S r6   r#   r#   ©r"   ÚLr#   r$   r)   A  r*   z'test_DomainMatrix_add.<locals>.<lambda>c                      s   ˆˆ  S r6   r#   r#   rx   r#   r$   r)   B  r*   r<   c                      s   ˆ ˆ S r6   r#   r#   ©ÚA1ÚA2r#   r$   r)   F  r*   c                      s   ˆˆ  S r6   r#   r#   rz   r#   r$   r)   G  r*   c                      s
   ˆ   ˆ¡S r6   ©Úaddr#   rz   r#   r$   r)   H  r*   c                      s
   ˆ  ˆ ¡S r6   r}   r#   rz   r#   r$   r)   I  r*   c                      s
   ˆ  ˆ ¡S r6   r}   r#   ©rV   rb   r#   r$   r)   P  r*   c                      s
   ˆ   ˆ¡S r6   r}   r#   r   r#   r$   r)   Q  r*   r   r&   r;   c                      s
   ˆ  ˆ ¡S r6   r}   r#   r_   r#   r$   r)   \  r*   )r   r	   r~   r   r3   r   r
   r   r   r   r   )rO   ZAsumÚAsdÚAdsr#   )r"   r{   r|   r`   rV   ra   rb   ry   r$   Útest_DomainMatrix_add:  s:    (($((((("("$"$r‚   c                     sò  t tdƒtdƒgtdƒtdƒggdtƒ‰ t tdƒtdƒgtdƒtdƒggdtƒ} ˆ ˆ  ˆ  ˆ ¡  krn| kstn J ‚t tdƒtdƒgtdƒtdƒggdtƒ‰ ddgddgg‰tt‡ ‡fdd„ƒ tt‡ ‡fd	d„ƒ t tdƒtdƒgtdƒtdƒggdtƒ‰t tdƒtdƒggd
tƒ‰tt‡‡fdd„ƒ tt‡‡fdd„ƒ tt‡‡fdd„ƒ tt‡‡fdd„ƒ t tdƒtdƒgtdƒtdƒggdtƒ‰t tdƒtdƒgtdƒtdƒggdtƒ‰t tdƒtdƒgtdƒtdƒggdtƒ}ˆˆ |ksðJ ‚ˆˆ |ksJ ‚tt‡‡fdd„ƒ tt‡‡fdd„ƒ t dtdƒidtdƒidœdtƒ}t tdƒtdƒgtdƒtdƒggdtƒ}|| }|| }|t ddgddggdtƒks¦J ‚|jt	ddgddggdtƒksÊJ ‚|| ksÚJ ‚|j|j ksîJ ‚d S )Nr   r   r   r   r   r   c                      s   ˆ ˆ S r6   r#   r#   rx   r#   r$   r)   f  r*   z'test_DomainMatrix_sub.<locals>.<lambda>c                      s   ˆˆ  S r6   r#   r#   rx   r#   r$   r)   g  r*   r<   c                      s   ˆ ˆ S r6   r#   r#   rz   r#   r$   r)   k  r*   c                      s   ˆˆ  S r6   r#   r#   rz   r#   r$   r)   l  r*   c                      s
   ˆ   ˆ¡S r6   ©Úsubr#   rz   r#   r$   r)   m  r*   c                      s
   ˆ  ˆ ¡S r6   rƒ   r#   rz   r#   r$   r)   n  r*   c                      s
   ˆ  ˆ ¡S r6   rƒ   r#   r   r#   r$   r)   u  r*   c                      s
   ˆ   ˆ¡S r6   rƒ   r#   r   r#   r$   r)   v  r*   r&   éÿÿÿÿéüÿÿÿ)
r   r	   r„   r   r3   r   r
   r   r   r   )rO   ZAdiffra   r`   r€   r   r#   )r"   r{   r|   rV   rb   ry   r$   Útest_DomainMatrix_sub_  s8    (($((((("("$r‡   c                  C   st   t tdƒtdƒgtdƒtdƒggdtƒ} t tdƒtdƒgtdƒtd	ƒggdtƒ}|  |  ¡   krj|kspn J ‚d S )
Nr   r   r   r   r   r…   éþÿÿÿéýÿÿÿr†   )r   r	   Úneg)r"   ZAnegr#   r#   r$   Útest_DomainMatrix_negƒ  s    ((r‹   c                     sŠ  t tdƒtdƒgtdƒtdƒggdtƒ‰ t tdƒtdƒgtdƒtd	ƒggdtƒ} ˆ ˆ  ˆ  ˆ ¡  krn| kstn J ‚t tdƒtdƒgtdƒtdƒggdtƒ‰ ddgddgg‰tt‡ ‡fd
d„ƒ tt‡ ‡fdd„ƒ t tdƒtdƒgtdƒtdƒggdtƒ‰t tdƒtdƒgtdƒtdƒggdtƒ‰t tdƒtdƒgtdƒtd	ƒggdtƒ}ˆˆ |ks^J ‚ˆˆ |kspJ ‚tt‡‡fdd„ƒ tt‡‡fdd„ƒ t tdƒtdƒgtdƒtdƒggdtƒ‰ t tdƒtdƒgtdƒtdƒggdtƒ}tdƒ}ˆ | |ˆ    kr"ˆ  |¡  kr"|ks(n J ‚t tdƒtdƒgtdƒtdƒggdtƒ‰ t  dt¡}tdƒ}ˆ | |ˆ    kršˆ  |¡ 	¡   krš|ks n J ‚t dtdƒidtdƒidœdtƒ}t tdƒtdƒgtdƒtdƒggdtƒ}|| }|| }|t ddgddggdtƒksJ ‚|j
tddgddggdtƒks@J ‚|t ddgddggdtƒksbJ ‚|j
tddgddggdtƒks†J ‚d S )Nr   r   r   r   r   r:   é
   é   é   c                      s   ˆ ˆ S r6   r#   r#   rx   r#   r$   r)     r*   z'test_DomainMatrix_mul.<locals>.<lambda>c                      s   ˆˆ  S r6   r#   r#   rx   r#   r$   r)   ‘  r*   c                      s
   ˆ  ˆ ¡S r6   ©Úmatmulr#   r   r#   r$   r)   ˜  r*   c                      s
   ˆ   ˆ¡S r6   r   r#   r   r#   r$   r)   ™  r*   rs   rv   r   r&   )r   r	   r   r   r3   r
   r   ÚmulÚzerosrZ   r   r   )r|   ZAprodZAAÚxra   r`   r€   r   r#   )r"   rV   rb   ry   r$   Útest_DomainMatrix_mul‰  s<    (($((((((8(<"("$"r”   c                  C   s    t tdƒtdƒgtdƒtdƒggdtƒ} t tdƒtdƒgtdƒtdƒggdtƒ}t tdƒtdƒgtdƒtdƒggdtƒ}|  |¡|ksŠJ ‚| | ¡|ksœJ ‚d S )Nr   r   r   r   r   rv   )r   r	   Zmul_elementwiserN   r#   r#   r$   Ú!test_DomainMatrix_mul_elementwise°  s
    (((r•   c                     sp  t  dt¡} t tdƒtdƒgtdƒtdƒggdtƒ‰ t tdƒtdƒgtdƒtd	ƒggdtƒ}t td
ƒtdƒgtdƒtdƒggdtƒ}ˆ d ˆ  d¡  kr¢| ks¨n J ‚ˆ d ˆ  d¡  krÆˆ ksÌn J ‚ˆ d ˆ  d¡  krê|ksðn J ‚ˆ d ˆ  d¡  kr|ksn J ‚tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ t  dt¡‰ tt‡ fdd„ƒ d S )Nr   r   r   r   r   r:   rŒ   r   rŽ   é%   é6   éQ   év   r   c                      s   ˆ t ddƒ S ©Nr   r   rH   r#   r8   r#   r$   r)   Â  r*   z'test_DomainMatrix_pow.<locals>.<lambda>c                      s   ˆ d S ©Nr…   r#   r#   r8   r#   r$   r)   Ã  r*   c                      s
   ˆ   d¡S r›   )Úpowr#   r8   r#   r$   r)   Ä  r*   ©r   r   c                      s   ˆ d S )Nr   r#   r#   r8   r#   r$   r)   Ç  r*   )	r   Úeyer	   rœ   r   r3   ÚNotImplementedErrorr’   r   )rž   r|   ZA3r#   r8   r$   Útest_DomainMatrix_pow¸  s    ((($$$(r    c                  C   sŒ   t tdƒtdƒtdƒgtdƒtdƒtdƒgtdƒtdƒtdƒggdtƒ} |  ¡ }| j}|j}| |||fD ]}|  ¡ dgddggkshJ ‚qhd S )Nr   r   r   r   r   ©r   r   )r   r	   rZ   r   Zscc)r`   ra   ZAddmZAsdmr"   r#   r#   r$   Útest_DomainMatrix_sccÊ  s    þþr¢   c                     s  t g dtƒ} |  ¡ | dfks J ‚t tdƒggdtƒ} |  ¡ | dfksHJ ‚t tdƒggdtƒ} |  ¡ | dfkspJ ‚t tdƒtdƒgtdƒtd	ƒggd
tƒ} |  ¡ \}}|t tdƒtdƒgtdƒtdƒggd
tƒksÔJ ‚|dksàJ ‚t tdƒtdƒgtdƒtd	ƒggd
tƒ} |  ¡ \}}|t tdƒtdƒgtdƒtdƒggd
tƒksFJ ‚|dksTJ ‚t tdƒtdƒgtdƒtd	ƒggd
tƒ} |  ¡ \}}|t tdƒtdƒgtdƒtdƒggd
tƒksºJ ‚|dksÈJ ‚t tdƒtdƒgtdƒtd	ƒggd
tƒ‰ tt‡ fdd„ƒ d S )Nr&   r#   r   r,   )r   r   r   r   r   r   )r   c                      s   ˆ   ¡ S r6   )Úrrefr#   ©rb   r#   r$   r)   ï  r*   z(test_DomainMatrix_rref.<locals>.<lambda>)r   r
   r£   r	   r   r   )r"   ZArZpivotsr#   r¤   r$   Útest_DomainMatrix_rrefÕ  s(    (0(2(2(r¥   c                     s.  t tdƒtdƒtdƒgtdƒtdƒtdƒggdtƒ} t tdƒtdƒgtdƒtdƒggdtƒ}|  ¡ |kslJ ‚t tdƒtdƒtdƒgtdƒtdƒtdƒggdtƒ‰ tt‡ fdd	„ƒ t tdƒtdƒtdƒgtdƒtdƒtdƒggdtd
d} t tdƒtdƒdœtdƒtdƒdœdœdtƒ}|  ¡ |ks*J ‚d S )Nr   r…   r   rˆ   r   ©r   r   r   c                      s   ˆ   ¡ S r6   )Úcolumnspacer#   r¤   r#   r$   r)   ø  r*   z/test_DomainMatrix_columnspace.<locals>.<lambda>r-   r/   r&   )r   r
   r§   r	   r   r   )r"   ZAcolr#   r¤   r$   Útest_DomainMatrix_columnspaceò  s    4(48.r¨   c                     sÖ   t tdƒtdƒtdƒgtdƒtdƒtdƒggdtƒ} |  ¡ | ksDJ ‚t tdƒtdƒtdƒgtdƒtdƒtdƒggdtƒ‰ tt‡ fdd„ƒ t tdƒtdƒtdƒgtdƒtdƒtdƒggdtd	d
} |  ¡ | ksÒJ ‚d S )Nr   r…   r   rˆ   r   r¦   c                      s   ˆ   ¡ S r6   )Úrowspacer#   r¤   r#   r$   r)     r*   z,test_DomainMatrix_rowspace.<locals>.<lambda>r-   r/   )r   r
   r©   r	   r   r   r8   r#   r¤   r$   Útest_DomainMatrix_rowspaceÿ  s    448rª   c                     s   t tdƒtdƒgtdƒtdƒggdtƒ} t tdƒtdƒggdtƒ}|  ¡ |ksRJ ‚t tdƒtdƒgtdƒtdƒggdtƒ‰ tt‡ fdd„ƒ d S )Nr   r   r…   r<   c                      s   ˆ   ¡ S r6   )Ú	nullspacer#   r¤   r#   r$   r)     r*   z-test_DomainMatrix_nullspace.<locals>.<lambda>)r   r
   r«   r	   r   r   )r"   ZAnullr#   r¤   r$   Útest_DomainMatrix_nullspace
  s
    ((r¬   c                     sê   t tdƒtdƒgtdƒtdƒggdtƒ‰ t tdƒgtdƒggdtƒ} t ddggdtƒ}t ddggdtƒ}ˆ  | ¡||fks~J ‚t tdƒgtdƒgtdƒggd	tƒ‰tt‡ ‡fd
d„ƒ t tdƒgtdƒggdtƒ‰tt‡ ‡fdd„ƒ d S )Nr   r   r   r   r   r   r<   rˆ   r=   c                      s
   ˆ   ˆ¡S r6   ©Ú_solver#   )r"   Úb3r#   r$   r)     r*   z)test_DomainMatrix_solve.<locals>.<lambda>c                      s
   ˆ   ˆ¡S r6   r­   r#   )r"   Úbzr#   r$   r)     r*   )r   r
   r®   r   r   r	   r   )ÚbZ
particularr«   r#   )r"   r¯   r°   r$   Útest_DomainMatrix_solve  s    ($r²   c                     s$  t g dtƒ} |  ¡ | ksJ ‚t tdƒtdƒgtdƒtdƒggdtƒ} t tdƒtdƒgtddƒtddƒggdtƒ}|  ¡ |ks€J ‚t tdƒtdƒgtdƒtdƒggdtƒ‰tt‡fd	d
„ƒ t tdƒtdƒggdtƒ‰tt‡fdd
„ƒ t tdƒtdƒgtdƒtdƒggdtƒ‰ tt‡ fdd
„ƒ d S )Nrg   r   r   r   r   r   rˆ   r…   c                      s   ˆ   ¡ S r6   ©Úinvr#   r¤   r#   r$   r)   +  r*   z'test_DomainMatrix_inv.<locals>.<lambda>r<   c                      s   ˆ   ¡ S r6   r³   r#   ©ÚAnsr#   r$   r)   .  r*   rs   c                      s   ˆ   ¡ S r6   r³   r#   )ÚAninvr#   r$   r)   1  r*   )r   r
   r´   r	   r   r   r   r   )r"   ZAinvr#   )r·   r¶   rb   r$   Útest_DomainMatrix_inv"  s    (,((r¸   c                     s   t g dtƒ} |  ¡ dksJ ‚t dggdtƒ} |  ¡ dks<J ‚t tdƒtdƒgtdƒtdƒggdtƒ} |  ¡ tdƒksxJ ‚t tdƒtdƒtdƒgtdƒtdƒtdƒgtdƒtdƒtd	ƒggd
tƒ} |  ¡ tdƒksÔJ ‚t tdƒtdƒtdƒgtdƒtdƒtdƒgtdƒtdƒtd	ƒggd
tƒ} |  ¡ tdƒks2J ‚t tdƒtdƒggdtƒ‰ tt‡ fdd„ƒ t tdƒtdƒgtdƒtdƒggdtƒ} |  ¡ tdƒksœJ ‚d S )Nrg   r   r,   r   r   r   r   rˆ   r;   r¡   r…   r   r<   c                      s   ˆ   ¡ S r6   )Údetr#   rµ   r#   r$   r)   E  r*   z'test_DomainMatrix_det.<locals>.<lambda>)r   r	   r¹   r
   r   r   r8   r#   rµ   r$   Útest_DomainMatrix_det4  s    (HH(rº   c                     sÖ  t g dtƒ‰ ˆ  ¡ ˆ ˆ g fks"J ‚t tdƒtdƒgtdƒtdƒggdtƒ‰ t tdƒtdƒgtdƒtdƒggdtƒ} t tdƒtdƒgtdƒtdƒggdtƒ}g }ˆ  ¡ | ||fks´J ‚t tdƒtdƒgtdƒtdƒggdtƒ‰ t tdƒtdƒgtdƒtdƒggdtƒ} t tdƒtdƒgtdƒtdƒggdtƒ}d	g}ˆ  ¡ | ||fksJJ ‚t tdƒtdƒgtdƒtdƒggdtƒ‰ t tdƒtdƒgtdƒtdƒggdtƒ} t tdƒtdƒgtdƒtdƒggdtƒ}g }ˆ  ¡ | ||fksÞJ ‚t tdƒtdƒgtdƒtdƒggdtƒ‰ t tdƒtdƒgtdƒtdƒggdtƒ} t tdƒtdƒgtdƒtdƒggdtƒ}g }ˆ  ¡ | ||fksrJ ‚t tdƒtdƒtdƒgtdƒtd
ƒtdƒggdtƒ‰ t tdƒtdƒgtdƒtdƒggdtƒ} t tdƒtdƒtdƒgtdƒtdƒtdƒggdtƒ}g }ˆ  ¡ | ||fksJ ‚t tdƒtdƒgtdƒtdƒgtd
ƒtdƒggdtƒ‰ t tdƒtdƒtdƒgtdƒtdƒtdƒgtd
ƒtdƒtdƒggdtƒ} t tdƒtdƒgtdƒtdƒgtdƒtdƒggdtƒ}g }ˆ  ¡ | ||fksîJ ‚g d¢g d¢g d¢g d¢g‰ g d¢g d¢g d¢g d¢g} g d¢g d¢g d¢g d¢g}dd„ }t |ˆ tƒdtƒ‰ t || tƒdtƒ} t ||tƒdtƒ}ˆ  ¡ | |g fks˜J ‚t tdƒtdƒgtdƒtdƒggdtƒ‰ tt‡ fdd„ƒ d S )Nrg   r   r   r   r   r   r   rˆ   r&   r;   rs   r¦   r‰   iúÿÿÿrt   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   c                    s   ‡ fdd„| D ƒS )Nc                    s   g | ]}‡ fd d„|D ƒ‘qS )c                    s   g | ]}ˆ |ƒ‘qS r#   r#   )Ú.0Úe©r@   r#   r$   Ú
<listcomp>y  r*   zEtest_DomainMatrix_lu.<locals>.<lambda>.<locals>.<listcomp>.<listcomp>r#   )r»   Úrowr½   r#   r$   r¾   y  r*   z:test_DomainMatrix_lu.<locals>.<lambda>.<locals>.<listcomp>r#   )Úrowsr@   r#   r½   r$   r)   y  r*   z&test_DomainMatrix_lu.<locals>.<lambda>)r   r   c                      s   ˆ   ¡ S r6   )Úlur#   r8   r#   r$   r)   €  r*   )r   r
   rÁ   r	   r   r   )ry   ÚUZswapsZto_domr#   r8   r$   Útest_DomainMatrix_luK  s`    ((((((((((((4(46ýý6(rÃ   c                     sV  t g dtƒ ‰  ‰} ˆ  ˆ¡| ks&J ‚t tdƒtdƒgtdƒ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ƒ} ˆ  ˆ¡| ksšJ ‚t tdƒtdƒgtdƒ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ƒ} ˆ  ˆ¡| ksJ ‚t tdƒtdƒgtdƒtdƒggdtƒ‰ t tdƒgtdƒggdtƒ‰tt‡ ‡fd	d
„ƒ t tdƒtdƒgtdƒtdƒgtdƒtdƒggdtƒ‰ t tdƒgtdƒgtdƒggdtƒ‰t tdƒgtddƒggdtƒ} ˆ  ˆ¡| ksôJ ‚t tdƒtdƒgtdƒtdƒgtdƒtdƒggdtƒ‰ t tdƒgtdƒgtdƒggdtƒ‰tt‡ ‡fdd
„ƒ t tdƒtdƒggdtƒ‰ t tdƒggdtƒ‰tt‡ ‡fdd
„ƒ t tdƒtdƒgtdƒtdƒggdtƒ‰ t tdƒgtdƒggdtƒ‰tt‡ ‡fdd
„ƒ t tdƒtdƒgtdƒtdƒggdtƒ‰ t tdƒtdƒggdtƒ‰tt‡ ‡fdd
„ƒ d S )Nrg   r   r   r   r   r   r   r   c                      s
   ˆ   ˆ¡S r6   ©Úlu_solver#   ©r"   r±   r#   r$   r)   —  r*   z,test_DomainMatrix_lu_solve.<locals>.<lambda>r;   rs   rt   r=   c                      s
   ˆ   ˆ¡S r6   rÄ   r#   rÆ   r#   r$   r)   ¢  r*   r<   r,   c                      s
   ˆ   ˆ¡S r6   rÄ   r#   rÆ   r#   r$   r)   §  r*   c                      s
   ˆ   ˆ¡S r6   rÄ   r#   rÆ   r#   r$   r)   ¬  r*   c                      s
   ˆ   ˆ¡S r6   rÄ   r#   rÆ   r#   r$   r)   ±  r*   )	r   r
   rÅ   r   r   rŸ   r	   r   r   ©r“   r#   rÆ   r$   Útest_DomainMatrix_lu_solveƒ  s:    (((6$6$((rÈ   c                     s:  t g dtƒ} |  ¡ tdƒgks"J ‚t dggdtƒ} |  ¡ tdƒtdƒgksNJ ‚t tdƒtdƒgtdƒtdƒggdtƒ} |  ¡ tdƒtd	ƒtd
ƒgks˜J ‚t tdƒtdƒtdƒgtdƒtdƒtdƒgtdƒtdƒtdƒggdtƒ} |  ¡ tdƒtdƒtdƒtdƒgks
J ‚t tdƒtdƒggdtƒ‰ tt‡ fdd„ƒ d S )Nrg   r   r,   r…   r   r   r   r   éûÿÿÿrˆ   r;   rs   r:   rv   é	   r¡   iñÿÿÿiîÿÿÿr   r<   c                      s   ˆ   ¡ S r6   )Úcharpolyr#   rµ   r#   r$   r)   Â  r*   z,test_DomainMatrix_charpoly.<locals>.<lambda>)r   r	   rË   r
   r   r   r8   r#   rµ   r$   Útest_DomainMatrix_charpoly´  s    ("H*rÌ   c                  C   sB   t  dt¡} | jt dt¡ks"J ‚| jdks0J ‚| jtks>J ‚d S )Nr   r¡   )r   rž   r
   r   r   r   r    r8   r#   r#   r$   Útest_DomainMatrix_eyeÅ  s    rÍ   c                  C   sB   t  dt¡} | jt dt¡ks"J ‚| jdks0J ‚| jtks>J ‚d S )Nr<   )r   r’   r
   r   r   r   r    r8   r#   r#   r$   Útest_DomainMatrix_zerosÌ  s    rÎ   c                  C   sB   t  dt¡} | jt dt¡ks"J ‚| jdks0J ‚| jtks>J ‚d S )Nr¦   )r   Zonesr
   r   r   r   r    r8   r#   r#   r$   Útest_DomainMatrix_onesÓ  s    rÏ   c                  C   sŠ   t dtdƒidtdƒidœdtƒ} t  tdƒtdƒgt¡| ksBJ ‚t dtdƒidtdƒidœdtƒ} t  tdƒtdƒgtd¡| ks†J ‚d S )Nr   r   r   r   r&   r   )r   r   )r   r	   Zdiagr8   r#   r#   r$   Útest_DomainMatrix_diagÚ  s    " "rÐ   c               	   C   s>  t tdƒtdƒgtdƒtdƒggdtƒ} t tdƒtdƒgtdƒtd	ƒggdtƒ}t td
ƒtdƒgtdƒtdƒggdtƒ}t tdƒtdƒtdƒtdƒgtdƒtdƒtdƒtd	ƒggdtƒ}t tdƒtdƒtdƒtdƒtd
ƒtdƒgtdƒtdƒtdƒtd	ƒtdƒtdƒggdtƒ}|  |¡|ks$J ‚|  ||¡|ks:J ‚d S )Nr   r   r   r   r   r;   rs   r:   rv   rÊ   rŒ   é   é   ©r   r   )r   rs   )r   r	   Zhstack©r"   rO   rP   ZABÚABCr#   r#   r$   Útest_DomainMatrix_hstackâ  s"    (((þþ&&þþrÖ   c               	   C   sJ  t tdƒtdƒgtdƒtdƒggdtƒ} t tdƒtdƒgtdƒtd	ƒggdtƒ}t td
ƒtdƒgtdƒtdƒggdtƒ}t tdƒtdƒgtdƒtdƒgtdƒtdƒgtdƒtd	ƒggdtƒ}t tdƒtdƒgtdƒtdƒgtdƒtdƒgtdƒtd	ƒgtd
ƒtdƒgtdƒtdƒggdtƒ}|  |¡|ks0J ‚|  ||¡|ksFJ ‚d S )Nr   r   r   r   r   r;   rs   r:   rv   rÊ   rŒ   rÑ   rÒ   )r   r   )rs   r   )r   r	   ZvstackrÔ   r#   r#   r$   Útest_DomainMatrix_vstackñ  s.    (((üüúúr×   c                  C   sN   t tdƒtdƒggdtƒ} t tdƒtdƒggdtƒ}|  dd„ ¡|ksJJ ‚d S )Nr   r   r<   r   c                 S   s   d|  S )Nr   r#   rÇ   r#   r#   r$   r)   	  r*   z-test_DomainMatrix_applyfunc.<locals>.<lambda>)r   r	   Z	applyfuncro   r#   r#   r$   Útest_DomainMatrix_applyfunc  s    rØ   c                     s4  t tdƒtdƒgtdƒtdƒggdtƒ‰ ttdƒtdƒ tƒ} ˆ |  t tddƒtdƒgtddƒtdƒggdtƒksvJ ‚ˆ d t tdƒtdƒgtdƒtdƒggdtƒksªJ ‚dˆ  t tdƒtdƒgtdƒtdƒggdtƒksÞJ ‚ˆ ttd	ƒtƒ t i dtƒksJ ‚ˆ ttdƒtƒ ˆ ksJ ‚tt‡ fd
d„ƒ d S )Nr   r   r   r   r   rÊ   rs   rv   r   c                      s   ˆ d S ©Ng      ø?r#   r#   r8   r#   r$   r)     r*   z-test_DomainMatrix_scalarmul.<locals>.<lambda>)r   r	   r   r
   r   r3   )Úlamdar#   r8   r$   Útest_DomainMatrix_scalarmul  s    (844$rÛ   c                     sl  t  tddgddggƒ¡‰ ttdƒtdƒ tƒ} ˆ |  t tddƒtddƒdœtdƒtddƒdœdœdtƒkspJ ‚ttdƒtƒ}ˆ | t tdƒtdƒdœtdƒtdƒdœdœdtƒks¸J ‚ˆ d t tdƒtdƒdœtdƒtdƒdœdœdtƒksòJ ‚ˆ d t tddƒtdƒdœtddƒtdƒdœdœdtƒks2J ‚tt‡ fdd	„ƒ tt‡ fd
d	„ƒ tt‡ fdd	„ƒ d S )Nr   r   r   r   r&   rv   r   c                      s   ˆ d S ©Nr   r#   r#   r8   r#   r$   r)   "  r*   z+test_DomainMatrix_truediv.<locals>.<lambda>c                      s   ˆ d S rÙ   r#   r#   r8   r#   r$   r)   #  r*   c                      s   ˆ t tdƒtƒ S rÜ   )r   r	   r#   r8   r#   r$   r)   $  r*   )	r   rL   r   r   r
   r	   r   ÚZeroDivisionErrorr3   )rÚ   r±   r#   r8   r$   Útest_DomainMatrix_truediv  s    @::@rÞ   c                      s$  t tdƒtdƒtdƒgtdƒtdƒtdƒgtdƒtdƒtd	ƒggd
tƒ‰ ˆ dd …d d…f t tdƒgtdƒggdtƒks|J ‚ˆ dd d…f t tdƒggdtƒks¤J ‚ˆ d d…d d…f t tdƒggdtƒksÐJ ‚ˆ d d…dd…f t tdƒtdƒgtdƒtdƒggdtƒksJ ‚ˆ d d …df t tdƒgtdƒgtd	ƒggdtƒksLJ ‚ˆ dd d …f t tdƒtdƒtd	ƒggdtƒks‚J ‚ˆ d d d…d d …f t tdƒtdƒtd	ƒgtdƒtdƒtdƒgtdƒtdƒtdƒggd
tƒksæJ ‚tt‡ fdd„ƒ tt‡ fdd„ƒ ˆ d ttdƒtƒks&J ‚ˆ d ttdƒtƒksBJ ‚ˆ d ttdƒtƒks^J ‚ˆ d ttdƒtƒkszJ ‚tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ t ddtdƒiidtƒ‰ ˆ d ttdƒtƒksäJ ‚ˆ d ttdƒtƒks J ‚t dddiidtƒ‰ ˆ dd …df t dddiidtƒks>J ‚tt‡ fd d„ƒ t dtdƒidtdƒid!œdtƒ‰ ˆ d d…d d…f t i dtƒks˜J ‚ˆ dd …dd …f t ddiddid"œd
tƒksÌJ ‚ˆ dd …dd …f t dddiidtƒksúJ ‚ˆ dd …dd …f t i d#tƒks J ‚d S )$Nr   r   r   r   r;   rs   r:   rv   rÊ   r¡   rˆ   r   r,   r…   r   r   r=   )r   r   c                      s   ˆ dd d…f S )Nr   rˆ   r#   r#   ©ÚdMr#   r$   r)   8  r*   z+test_DomainMatrix_getitem.<locals>.<lambda>c                      s   ˆ d d…df S )Nrˆ   r   r#   r#   rß   r#   r$   r)   9  r*   r<   )rˆ   r   )r   rˆ   )r…   r‰   c                      s   ˆ d S )Nr¡   r#   r#   rß   r#   r$   r)   @  r*   c                      s   ˆ d S )Nr>   r#   r#   rß   r#   r$   r)   A  r*   c                      s   ˆ d S )N)r…   r†   r#   r#   rß   r#   r$   r)   B  r*   )rŒ   rŒ   ©r;   r;   rg   c                      s   ˆ d S )N©r   r   r#   r#   rß   r#   r$   r)   J  r*   rÓ   )r   r   râ   )r   r	   r   Ú
IndexErrorr   r#   r#   rß   r$   Útest_DomainMatrix_getitem'  sP    ýý4(,B:6ýý*"&4.rä   c                  C   sb   t dtdƒidtdƒidœdtƒ} |  dd¡}|tju s<J ‚|  dd¡}|dkrZt|tƒs^J ‚d S )Nr   r   r   rÓ   rá   r   )r   r	   Zgetitem_sympyr   ZZeroÚ
isinstancer   )rà   Zval1Zval2r#   r#   r$   Útest_DomainMatrix_getitem_sympyS  s
    "ræ   c                     s†  t tdƒtdƒtdƒgtdƒtdƒtdƒgtdƒtdƒtd	ƒggd
tƒ} t tdƒtdƒgtdƒtd	ƒggdtƒ}|  ddgddg¡|ksŒJ ‚|  ¡  ddgddg¡| ¡ ks°J ‚|  ddgddg¡|ksÌJ ‚|  ¡  ddgddg¡| ¡ ksðJ ‚t tdƒtdƒtdƒgtdƒtdƒtdƒgtdƒtdƒtdƒggd
tƒ}|  g d¢g d¢¡|ksVJ ‚|  ¡  g d¢g d¢¡| ¡ ks|J ‚g g dfdgg dfg dgdfg}|D ]P\‰‰ }|  ˆˆ ¡t  |t¡ ¡ ksÌJ ‚|  ¡  ˆˆ ¡t  |t¡ks J ‚q t tdƒtdƒgtdƒtdƒggdtƒ‰dgdgfdgdgfdgdgfdgdgfg}|D ]6\‰‰ tt‡ ‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ qJd S )Nr   r   r   r   r;   rs   r:   rv   rÊ   r¡   r   r   r…   )r   r   r   rg   rh   r&   r‰   c                      s   ˆ  ˆˆ ¡S r6   )Úextractr#   ©Úcolsrà   rÀ   r#   r$   r)   {  r*   z+test_DomainMatrix_extract.<locals>.<lambda>c                      s   ˆ  ¡  ˆˆ ¡S r6   )rZ   rç   r#   rè   r#   r$   r)   |  r*   )r   r	   rç   rZ   r’   r\   r   rã   )ZdM1ZdM2ZdM3ÚemptyÚsizeZbad_indicesr#   rè   r$   Útest_DomainMatrix_extract[  sL    ýýþþ$$ýý&

ý"&(,rì   c                      sŒ   t dtdƒidtdƒidœdtƒ‰ tdƒˆ d< ˆ t dtdƒidtdƒidœdtƒksXJ ‚‡ fdd„‰tt‡fd	d
„ƒ tt‡fdd
„ƒ d S )Nr   r   r   rÓ   rá   r   c                    s   |ˆ | |f< d S r6   r#   )ÚiÚjÚvalrß   r#   r$   Úsetitemƒ  s    z*test_DomainMatrix_setitem.<locals>.setitemc                      s   ˆ ddt ddƒƒS )Nr   r   )r
   r#   ©rð   r#   r$   r)   …  r*   z+test_DomainMatrix_setitem.<locals>.<lambda>c                      s   ˆ t ddƒdtdƒƒS rš   )Úslicer	   r#   rñ   r#   r$   r)   †  r*   )r   r	   r   r3   rŸ   r#   r#   )rà   rð   r$   Útest_DomainMatrix_setitem  s    "*ró   c                  C   s†   dd l } tdtdƒidtdƒidœdtƒ}|  |  |¡¡|ksBJ ‚ttdƒtdƒgtdƒtdƒggdtƒ}|  |  |¡¡|ks‚J ‚d S )	Nr   r   r   r   rÓ   rá   r   r   )Úpickler   r	   ÚloadsÚdumps)rô   rà   r#   r#   r$   Útest_DomainMatrix_pickling‰  s
    "(r÷   N)[Zsympy.testing.pytestr   Zsympy.core.numbersr   r   Zsympy.core.singletonr   Zsympy.functionsr   Zsympy.matrices.denser   Zsympy.polys.domainsr   r	   r
   r   Z!sympy.polys.matrices.domainmatrixr   r   r   Zsympy.polys.matrices.exceptionsr   r   r   r   r   r   r   Zsympy.polys.matrices.ddmr   Zsympy.polys.matrices.sdmr   r%   r5   r9   rA   rG   rK   rM   rQ   rR   rT   rW   rX   rY   r[   r]   rc   rd   re   rf   ri   rk   rm   rn   rp   rq   rr   ru   rw   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$   Ú<module>   sˆ   $	

%$'	81,$
