Ë
    7^(hDŸ  ã                   ó’  — 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mZ d dlmZmZmZmZ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!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/ d dl0m1Z1 d dl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> d dl?m@Z@ d dlAmBZB d dlCmDZE d dlFmGZGmHZHmIZI d„ ZJ e«       5   G d„ de)e*e+«      ZKddd«       d„ ZLd„ ZM e«       5   G d„ de)e*e,«      ZNddd«       d„ ZOd „ ZP e«       5   G d!„ d"e)e*e-«      ZQddd«       d#„ ZRd$„ ZS e«       5   G d%„ d&e)e*e.«      ZTddd«       d'„ ZUd(„ ZV e«       5   G d)„ d*e)e*e/«      ZWddd«        e«       5   G d+„ d,e)e*e1«      ZXddd«       d-„ ZYd.„ ZZd/„ Z[d0„ Z\d1„ Z]d2„ Z^d3„ Z_d4„ Z`d5„ Zad6„ Zbd7„ Zcd8„ Zdd9„ Zed:„ Zfd;„ Zgd<„ Zhd=„ Zid>„ Zjd?„ Zkd@„ ZldA„ ZmdB„ ZndC„ ZodD„ ZpdE„ ZqdF„ ZrdG„ ZsdH„ ZtdI„ ZudJ„ ZvdK„ ZwdL„ ZxdM„ ZydN„ ZzdO„ Z{dP„ Z|dQ„ Z}dR„ Z~dS„ ZdT„ Z€dU„ Z�dV„ Z‚dW„ ZƒdX„ Z„dY„ Z…dZ„ Z†d[„ Z‡d\„ Zˆd]„ Z‰d^„ ZŠd_„ Z‹d`„ ZŒda„ Z�db„ ZŽdc„ Z�dd„ Z�de„ Z‘df„ Z’dg„ Z“dh„ Z”di„ Z•dj„ Z–dk„ Z—dl„ Z˜dm„ Z™dn„ Zšdo„ Z›dp„ Zœdq„ Z�edr„ «       Zžds„ ZŸdt„ Z du„ Z¡dv„ Z¢dw„ Z£dx„ Z¤dy„ Z¥dz„ Z¦d{„ Z§y# 1 sw Y   �Œ¦xY w# 1 sw Y   �Œ�xY w# 1 sw Y   �ŒzxY w# 1 sw Y   �ŒdxY w# 1 sw Y   �ŒNxY w# 1 sw Y   �Œ>xY w)|é    )ÚraisesÚXFAILÚwarns_deprecated_sympy)ÚQ)ÚExpr)ÚAdd)ÚFunction)Ú
NumberKindÚUndefinedKind)ÚIÚIntegerÚooÚpiÚRational)ÚS)ÚSymbolÚsymbols)ÚAbs)Úexp)Úsqrt)ÚcosÚsin)Ú
ShapeErrorÚNonSquareMatrixError)Ú
MatrixKind)Ú_MinimalMatrixÚ_CastableMatrixÚMatrixShapingÚMatrixPropertiesÚMatrixOperationsÚMatrixArithmeticÚMatrixSpecial)ÚMatrixCalculus)ÚMatrixÚdiagÚeyeÚmatrix_multiply_elementwiseÚonesÚzerosÚSparseMatrixÚbandedÚMutableDenseMatrixÚMutableSparseMatrixÚImmutableDenseMatrixÚImmutableSparseMatrix)ÚPoly)Úflatten)ÚImmutableDenseNDimArray)ÚxÚyÚzc                  óª  — ddl m} m}m}m}m}m}m} ddlm	}m
}m}	m}
m}m} ddlm}m}m}m} | |||||||||	|
||f}||||f}|D �cg c]  } |ddgddgg«      ‘Œ }}d	}|D ]Q  }|D ]&  }t)        «       5  t+        ||«      d
u sJ ‚	 d d d «       Œ( t)        «       5  t+        ||«      du sJ ‚	 d d d «       ŒS y c c}w # 1 sw Y   Œ^xY w# 1 sw Y   ŒoxY w)Nr   )ÚMatrixRequiredr   r"   r   r    r!   ÚMatrixCommon)ÚMatrixDeterminantÚMatrixReductionsÚMatrixSubspacesÚMatrixEigenr#   ÚMatrixDeprecated)r$   ÚImmutableMatrixr*   r/   é   é   é   é   © TF)Úsympy.matrices.commonr7   r   r"   r   r    r!   r8   Úsympy.matrices.matricesr9   r:   r;   r<   r#   r=   Úsympyr$   r>   r*   r/   r   Ú
isinstance)r7   r   r"   r   r    r!   r8   r9   r:   r;   r<   r#   r=   r$   r>   r*   r/   Ú
all_mixinsÚall_matricesÚMÚMsÚtÚmixins                          úd/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/matrices/tests/test_commonmatrix.pyÚ!test_matrix_deprecated_isinstancerO   '   s%  € ÷
÷ ñ ÷÷ ÷ó ð 	ØØØØØØØØØØØØð€Jð  	ØØØð	€Lð (4Ö	4 !‰!ˆa�ˆV�a˜�VÐÕ
Ð	4€BÐ	4Ø
€Aàò 1ˆØò 	4ˆAÜ'Ó)ñ 4Ü! ! UÓ+¨tÑ3Ð3Ñ3÷4ð 4ð	4ô $Ó%ñ 	1Ü˜a Ó'¨5Ñ0Ð0Ñ0÷	1ð 	1ñ	1ùò 
5÷
4ð 4ú÷	1ð 	1ús   ÁB8Á5B=ÂC	Â=CÃ	C	c                   ó   — e Zd Zy)ÚShapingOnlyMatrixN©Ú__name__Ú
__module__Ú__qualname__rC   ó    rN   rQ   rQ   i   ó   „ ØrV   rQ   Nc                 ó   — t        | | d„ «      S )Nc                 ó   — t        | |k(  «      S ©N©Úint©ÚiÚjs     rN   ú<lambda>zeye_Shaping.<locals>.<lambda>n   s   € ´°A¸±F³€ rV   ©rQ   ©Úns    rN   Úeye_Shapingrd   m   s   € Ü˜Q Ñ#;Ó<Ð<rV   c                 ó   — t        | | d„ «      S )Nc                  ó   — y©Nr   rC   r]   s     rN   r`   zzeros_Shaping.<locals>.<lambda>r   ó   � rV   ra   rb   s    rN   Úzeros_Shapingri   q   s   € Ü˜Q ¡>Ó2Ð2rV   c                   ó   — e Zd Zy)ÚPropertiesOnlyMatrixNrR   rC   rV   rN   rk   rk   v   rW   rV   rk   c                 ó   — t        | | d„ «      S )Nc                 ó   — t        | |k(  «      S rZ   r[   r]   s     rN   r`   z eye_Properties.<locals>.<lambda>{   ó   € ´3°q¸A±v³;€ rV   ©rk   rb   s    rN   Úeye_Propertiesrp   z   ó   € Ü  1Ñ&>Ó?Ð?rV   c                 ó   — t        | | d„ «      S )Nc                  ó   — yrg   rC   r]   s     rN   r`   z"zeros_Properties.<locals>.<lambda>   rh   rV   ro   rb   s    rN   Úzeros_Propertiesrt   ~   ó   € Ü  1¡nÓ5Ð5rV   c                   ó   — e Zd Zy)ÚOperationsOnlyMatrixNrR   rC   rV   rN   rw   rw   ƒ   rW   rV   rw   c                 ó   — t        | | d„ «      S )Nc                 ó   — t        | |k(  «      S rZ   r[   r]   s     rN   r`   z eye_Operations.<locals>.<lambda>ˆ   rn   rV   ©rw   rb   s    rN   Úeye_Operationsr{   ‡   rq   rV   c                 ó   — t        | | d„ «      S )Nc                  ó   — yrg   rC   r]   s     rN   r`   z"zeros_Operations.<locals>.<lambda>Œ   rh   rV   rz   rb   s    rN   Úzeros_Operationsr~   ‹   ru   rV   c                   ó   — e Zd Zy)ÚArithmeticOnlyMatrixNrR   rC   rV   rN   r€   r€   �   rW   rV   r€   c                 ó   — t        | | d„ «      S )Nc                 ó   — t        | |k(  «      S rZ   r[   r]   s     rN   r`   z eye_Arithmetic.<locals>.<lambda>•   rn   rV   ©r€   rb   s    rN   Úeye_Arithmeticr„   ”   rq   rV   c                 ó   — t        | | d„ «      S )Nc                  ó   — yrg   rC   r]   s     rN   r`   z"zeros_Arithmetic.<locals>.<lambda>™   rh   rV   rƒ   rb   s    rN   Úzeros_Arithmeticr‡   ˜   ru   rV   c                   ó   — e Zd Zy)ÚSpecialOnlyMatrixNrR   rC   rV   rN   r‰   r‰   �   rW   rV   r‰   c                   ó   — e Zd Zy)ÚCalculusOnlyMatrixNrR   rC   rV   rN   r‹   r‹   ¢   rW   rV   r‹   c                  óh  — t        ddg d¢«      } | j                  dk(  sJ ‚| j                  dk(  sJ ‚| d   dk(  sJ ‚| d   dk(  sJ ‚t        | «      g d¢k(  sJ ‚t        | dd d …f   «      g d¢k(  sJ ‚t        | d d …df   «      ddgk(  sJ ‚t        | d d …d d …f   «      t        | «      k(  sJ ‚| d d …d d …f   | k(  sJ ‚t        | «      | k(  sJ ‚t        g d¢g d¢g«      | k(  sJ ‚t        g d¢g d¢f«      | k(  sJ ‚t        ddg«      | k(  sJ ‚t        d	«      | k(  sJ ‚t        ddgdd
gddgg«      | k(  rJ ‚y )Nr@   rA   )r?   r@   rA   rB   é   é   ©r?   r?   r�   r?   ©rB   r�   rŽ   ©r?   r@   rA   )r‘   r�   rB   rŽ   )r   ÚrowsÚcolsÚlist©r3   s    rN   Útest__MinimalMatrixr–   ¦   sf  € Ü�q˜!Ò/Ó0€AØ�6‰6�QŠ;Ðˆ;Ø�6‰6�QŠ;Ðˆ;ØˆQ‰4�1Š9Ðˆ9ØˆT‰7�aŠ<Ðˆ<Ü�‹7Ò(Ò(Ð(Ð(Ü��!’Q�$‘‹=šIÒ%Ð%Ð%Ü�’!�Q�$‘‹=˜Q ˜FÒ"Ð"Ð"Ü�’!’Q�$‘‹=œD ›GÒ#Ð#Ð#ØŠQ’ˆT‰7�aŠ<Ðˆ<Ü˜!Ó Ò!Ð!Ð!Üš9¢iÐ0Ó1°QÒ6Ð6Ð6Üš9¢iÐ0Ó1°QÒ6Ð6Ð6Ü˜9 iÐ0Ó1°QÒ6Ð6Ð6ÜÐ0Ó1°QÒ6Ð6Ð6Ü  A ¨¨A¨°°A°Ð7Ó8¸AÒ=Ð>Ð>Ð=rV   c                  óŠ  — t        ddgddgg«      j                  t        t        «      k(  sJ ‚t        ddgddgg«      j                  t        t        «      k(  sJ ‚t        ddg «      j                  t        t        «      k(  sJ ‚t        t        gg«      j                  t        t        «      k(  sJ ‚t        dt        dgg«      gg«      j                  t        t
        «      k(  sJ ‚t        dgg«      j                  t        t        «      k(  sJ ‚t        dt        dgg«      gg«      j                  t        t
        «      k(  sJ ‚y )Nr?   r@   rA   rB   r   )r$   Úkindr   r
   r3   r   r*   rC   rV   rN   Ú	test_kindr™   ¹   s  € Ü�A�q�6˜A˜q˜6Ð"Ó#×(Ñ(¬J´zÓ,BÒBÐBÐBÜ�A�q�6˜A˜q˜6Ð"Ó#×(Ñ(¬J´zÓ,BÒBÐBÐBÜ�!�Q˜Ó× Ñ ¤J¬zÓ$:Ò:Ð:Ð:Ü”A�3�%‹=×Ñ¤¬JÓ!7Ò7Ð7Ð7Ü�A”v ˜s˜e“}Ð%Ð&Ó'×,Ñ,´
¼=Ó0IÒIÐIÐIÜ˜!˜˜Ó×#Ñ#¤z´*Ó'=Ò=Ð=Ð=Ü˜!œV a S E›]Ð+Ð,Ó-×2Ñ2´jÄÓ6OÒOÐOÑOrV   c                  óž   — t        ddg d¢«      } | j                  «       }|j                  dk(  sJ ‚t        d«      D ]  }||   |dz   k(  rŒJ ‚ y )Nr@   )r?   rA   r@   rB   r?   rB   )rQ   Úvecr“   Úrange)ÚmÚm_vecr^   s      rN   Útest_vecrŸ   Ä   sT   € Ü˜!˜Q¢Ó-€AØ�E‰E‹G€EØ�:‰:˜Š?Ðˆ?Ü�1‹Xò !ˆØ�Q‰x˜1˜q™5Ó Ð Ð ñ!rV   c                  ó^  — t        d«      \  } }}}t        | |g||gg«      }t        | |g||gg«      }t        | |g||gg«      }t	        | |g||gg«      }|j                  «       |j                  «       cxk(  r3|j                  «       cxk(  r|j                  «       cxk(  r| |||dœk(  sJ ‚ J ‚y )Nza:d)©r   r   ©r   r?   ©r?   r   r�   )r   r,   r.   r-   r/   Útodok)ÚaÚbÚcÚdÚm1Úm2Úm3Úm4s           rN   Ú
test_todokr­   Ì   sÄ   € Ü˜“�J€A€qˆ!ˆQÜ	˜a ˜V a¨ VÐ,Ó	-€BÜ	  1˜v¨¨1 vÐ.Ó	/€BÜ	˜q !˜f q¨! fÐ-Ó	.€BÜ	  A ¨¨A¨Ð/Ó	0€BØ�8‰8‹:˜Ÿ™›ô 5 r§x¡x£zô 5°R·X±X³Zô 5Ø˜A q°!Ñ4ò5ð 5ñ 5ð 5ñ 5rV   c                  ó  — t         j                  t         j                  t        t        z  t         j
                  gt        t        t        t        dz  gt        t         j                   t        t        z  dgg} t         j                  t         j                  t        t        z  t         j
                  t        t        t        t        dz  t        t         j                   t        t        z  dg}t        dd|«      }|j                  «       | k(  sJ ‚y )Nr@   rA   rB   )	r   ÚOneÚHalfr3   r4   ÚZeror5   rQ   Útolist)ÚlstÚflat_lstr�   s      rN   Útest_tolistrµ   Ö   s¤   € Ü�E‰E”1—6‘6œ1œQ™3¤§¡Ð'¬!¬Q´´1°a±4¨¼1¼q¿u¹u¸fÄaÌÁcÈ1Ð:MÐ
N€CÜ—‘”q—v‘vœq¤™s¤A§F¡F¬A¬q´!´Q¸±T¼1¼q¿u¹u¸fÄaÌÁcÈ1ÐM€HÜ˜!˜Q Ó)€AØ�8‰8‹:˜ÒÐÑrV   c                  óò   — t        ddt        j                  dgdt        j                  gt        dgg«      } dt        j                  idt        j                  idt        idœ}| j                  «       |k(  sJ ‚y )NrA   r@   r   r?   ©r   r?   r@   )rQ   r   r¯   r°   r3   Útodod)r�   Údicts     rN   Ú
test_tododrº   Ü   s_   € Ü˜!˜Q¤!§%¡%¨ ¨a´·±¨[¼1¸a¸&Ð AÓB€AØ”1—5‘5ˆz˜q¤!§&¡&˜k¨q´!¨fÑ5€DØ�7‰7‹9˜ÒÐÑrV   c                  ó°  ‡ — t        ddg d¢«      Š t        t        ˆ fd„«       t        t        ˆ fd„«       t        t        ˆ fd„«       t        t        ˆ fd„«       ‰ j                  d«      ‰ j                  d«      cxk(  rt	        g d	¢g d
¢g«      k(  sJ ‚ J ‚‰ j                  d«      ‰ j                  d«      cxk(  rt	        ddgddgddgg«      k(  sJ ‚ J ‚‰ j                  d«      ‰ j                  d«      cxk(  rt	        g d	¢g d¢g«      k(  sJ ‚ J ‚‰ j                  d«      ‰ j                  d«      cxk(  rt	        ddgddgddgg«      k(  sJ ‚ J ‚y )NrA   ©	r?   r@   rA   rB   r�   rŽ   é   é   é	   c                  ó&   •— ‰ j                  d«      S ©Nr�   ©Úrow_del©Úes   €rN   r`   z"test_row_col_del.<locals>.<lambda>ã   ó   ø€ ˜qŸy™y¨›|€ rV   c                  ó&   •— ‰ j                  d«      S ©NéûÿÿÿrÂ   rÄ   s   €rN   r`   z"test_row_col_del.<locals>.<lambda>ä   ó   ø€ ˜qŸy™y¨›}€ rV   c                  ó&   •— ‰ j                  d«      S rÁ   ©Úcol_delrÄ   s   €rN   r`   z"test_row_col_del.<locals>.<lambda>å   rÆ   rV   c                  ó&   •— ‰ j                  d«      S rÈ   rÌ   rÄ   s   €rN   r`   z"test_row_col_del.<locals>.<lambda>æ   rÊ   rV   r@   éÿÿÿÿr‘   r�   r?   rB   r�   r½   r¾   éþÿÿÿ©r½   r¾   r¿   rŽ   r¿   )rQ   r   Ú
IndexErrorrÃ   r$   rÍ   rÄ   s   @rN   Útest_row_col_delrÓ   á   s&  ø€ Ü˜!˜QÒ ;Ó<€AÜ
Œ:Ó+Ô,Ü
Œ:Ó,Ô-Ü
Œ:Ó+Ô,Ü
Œ:Ó,Ô-à�9‰9�Q‹<˜1Ÿ9™9 R›=ÔJ¬F²IºyÐ3IÓ,JÒJÐJÑJÐJÐJØ�9‰9�Q‹<˜1Ÿ9™9 R›=ÔL¬F°Q¸°F¸QÀ¸FÀQÈÀFÐ3KÓ,LÒLÐLÑLÐLÐLà�9‰9�Q‹<˜1Ÿ9™9 R›=ÔJ¬F²IºyÐ3IÓ,JÒJÐJÑJÐJÐJØ�9‰9�Q‹<˜1Ÿ9™9 R›=ÔL¬F°Q¸°F¸QÀ¸FÀQÈÀFÐ3KÓ,LÒLÐLÑLÐLÑLrV   c                  ó:  — t        ddgddgg«      } t        dt        gt        dgg«      }t        dt        dgt        dt        gt        t        t        gg«      }| j	                  «       | gk(  sJ ‚|j	                  «       |gk(  sJ ‚|j	                  «       |gk(  sJ ‚y ©Nr?   r@   rA   )r$   r3   r4   r5   Úget_diag_blocks)r¥   r¦   r§   s      rN   Útest_get_diag_blocks1r×   ï   sž   € Ü��A�˜˜A˜ÐÓ €AÜ�”A�œ˜A˜ÐÓ €AÜ�”A�q�	œA˜q¤!˜9¤q¬!¬Q iÐ0Ó1€AØ×ÑÓ 1 #Ò%Ð%Ð%Ø×ÑÓ 1 #Ò%Ð%Ð%Ø×ÑÓ 1 #Ò%Ð%Ñ%rV   c                  óì  — t        ddgddgg«      } t        dt        gt        dgg«      }t        dt        dgt        dt        gt        t        t        gg«      }t	        | ||«      t	        | ||«      t	        | ||«      t	        |||«      f\  }}}}t        |j                  |j                  |«      }t        |j                  |j                  |«      }t        |j                  |j                  |«      }t        |j                  |j                  |«      }|j                  «       | ||gk(  sJ ‚|j                  «       | ||gk(  sJ ‚|j                  «       | ||gk(  sJ ‚|j                  «       |||gk(  sJ ‚y rÕ   )	r$   r3   r4   r5   r%   rQ   r’   r“   rÖ   )r¥   r¦   r§   ÚAÚBÚCÚDs          rN   Útest_get_diag_blocks2rÝ   ø   sU  € Ü��A�˜˜A˜ÐÓ €AÜ�”A�œ˜A˜ÐÓ €AÜ�”A�q�	œA˜q¤!˜9¤q¬!¬Q iÐ0Ó1€AÜ�a˜˜A“¤ Q¨¨1£¬t°A°q¸!«}¼dÀ1ÀaÈ»mÐK�J€A€qˆ!ˆQÜ˜!Ÿ&™& !§&¡&¨!Ó,€AÜ˜!Ÿ&™& !§&¡&¨!Ó,€AÜ˜!Ÿ&™& !§&¡&¨!Ó,€AÜ˜!Ÿ&™& !§&¡&¨!Ó,€Aà×ÑÓ 1 a¨ )Ò+Ð+Ð+Ø×ÑÓ 1 a¨ )Ò+Ð+Ð+Ø×ÑÓ 1 a¨ )Ò+Ð+Ð+Ø×ÑÓ 1 a¨ )Ò+Ð+Ñ+rV   c                  óD   — t        ddddg«      } | j                  dk(  sJ ‚y )Nr?   r@   r   ©r?   r@   )rQ   Úshape©r�   s    rN   Ú
test_shaperâ     s&   € Ü˜!˜Q  A Ó'€AØ�7‰7�fÒÐÑrV   c                  óú   — t        d«      } | j                  dd«      t        ddd«      k(  sJ ‚t        ddd„ «      }|j                  dd«      t        d«      k(  sJ ‚|j                  dd	«      t        d
«      k(  sJ ‚y )NrA   r?   r¿   )	r?   r   r   r   r?   r   r   r   r?   rB   c                 ó   — | |z   S rZ   rC   r]   s     rN   r`   ztest_reshape.<locals>.<lambda>  s
   € ¨a°!©e€ rV   )r·   ©rA   r?   r@   )rA   rB   r@   ©rA   rB   r�   r@   rŽ   ))r   r?   r@   rA   r?   r@   )rA   rB   r@   rA   rB   r�   )rd   Úreshaper$   rQ   ©Úm0r©   s     rN   Útest_reshaperê     sˆ   € Ü	�Q‹€BØ�:‰:�a˜Óœv a¨Ð,GÓHÒHÐHÐHÜ	˜1˜aÑ!3Ó	4€BØ�:‰:Ø	ˆ1óÜÐDÓEòFð Fð Fà�:‰:�a˜ÓœvÐ&NÓOÒOÐOÑOrV   c                  ó®   — t        ddg d¢«      } | j                  d«      t        ddg d¢«      k(  sJ ‚| j                  d«      t        ddg d¢«      k(  sJ ‚y )NrA   r¼   r   r?   r‘   )r?   rB   r½   )rQ   Úrowr$   Úcolrá   s    rN   Útest_row_colrî     sO   € Ü˜!˜QÒ ;Ó<€AØ�5‰5�‹8”v˜a ¢IÓ.Ò.Ð.Ð.Ø�5‰5�‹8”v˜a ¢IÓ.Ò.Ð.Ñ.rV   c                  ó|   — t        d«      j                  t        g d¢«      «      t        g d¢g d¢g d¢g«      k(  sJ ‚y )NrA   ©r½   r½   r½   )r?   r   r   r½   )r   r?   r   r½   )r   r   r?   r½   )rd   Úrow_joinr$   rC   rV   rN   Útest_row_joinrò     s=   € Ü�q‹>×"Ñ"¤6ª)Ó#4Ó5Ü’<ÚÚð!ó "ò"ð "ñ "rV   c                  ó„   — t        d«      j                  t        g d¢g«      «      t        g d¢g d¢g d¢g d¢g«      k(  sJ ‚y )NrA   rð   ©r?   r   r   )r   r?   r   )r   r   r?   )rd   Úcol_joinr$   rC   rV   rN   Útest_col_joinrö   #  sB   € Ü�q‹>×"Ñ"¤6ª9¨+Ó#6Ó7Ü’9ÚÚÚðó òð ñ rV   c                  óú   — t        g d¢g«      } t        dd«      D ]^  }g d¢}|j                  |d«       t        t	        d«      j                  || «      j                  d«      j                  «       «      |k(  rŒ^J ‚ y )N©rB   rB   rB   éüÿÿÿr�   rô   rB   rA   r   )r$   rœ   Úinsertr1   rd   Ú
row_insertrí   r²   )Úr4r^   Úls      rN   Útest_row_insertrþ   +  so   € Ü	’�Ó	€BÜ�2�q‹\ò NˆÚˆØ	�‰��AŒÜ”{ 1“~×0Ñ0°°BÓ7×;Ñ;¸AÓ>×EÑEÓGÓHÈAÓMÐMÐMñNrV   c                  ó¤  — t        g d¢«      } t        dd«      D ]^  }g d¢}|j                  |d«       t        t	        d«      j                  || «      j                  d«      j                  «       «      |k(  rŒ^J ‚ t        d«      j                  dt        d	d	gd	d	gd	d	gd	d	gd	d	gd	d	gg«      «      t        g d
¢g d¢g d¢g d¢g d¢g d¢g«      k(  sJ ‚y )Nrø   rù   r�   ©r   r   r   rB   rA   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   r@   r@   r   r   r?   )	r$   rœ   rú   r1   ri   Ú
col_insertrì   r²   rd   )Úc4r^   rý   s      rN   Útest_col_insertr  3  sâ   € Ü	’	Ó	€BÜ�2�q‹\ò PˆÚˆØ	�‰��AŒÜ”} QÓ'×2Ñ2°1°bÓ9×=Ñ=¸aÓ@×GÑGÓIÓJÈaÓOÐOÐOðPô
 �q‹>×$Ñ$ Q¬°°A°¸¸A¸ÀÀAÀÈÈAÈÐQRÐTUÐPVÐYZÐ\]ÐX^Ð/_Ó(`ÓaÜÒ+Ú+Ú+Ú+Ú+Ú+ð-ó .ò.ð .ñ .rV   c                  ó`  ‡ — t        ddd„ «      Š ‰ j                  g d¢ddg«      t        ddg d¢«      k(  sJ ‚‰ j                  ddgg d	¢«      t        ddg d
¢«      k(  sJ ‚‰ j                  t        d«      t        d«      «      ‰ k(  sJ ‚t	        t
        ˆ fd„«       t	        t
        ˆ fd„«       y )NrB   rA   c                 ó   — | dz  |z   S ©NrA   rC   r]   s     rN   r`   ztest_extract.<locals>.<lambda>D  ó   € ¨Q¨q©S°1©W€ rV   )r   r?   rA   r   r?   r@   )r   r?   rA   rB   r¿   é
   ©r   r   r@   )r   r   r@   r¿   r¿   é   c                  ó,   •— ‰ j                  dgdg«      S )NrB   r   ©Úextractrá   s   €rN   r`   ztest_extract.<locals>.<lambda>H  ó   ø€ ˜qŸy™y¨!¨¨q¨cÓ2€ rV   c                  ó,   •— ‰ j                  dgdg«      S )Nr   rA   r  rá   s   €rN   r`   ztest_extract.<locals>.<lambda>I  r  rV   )rQ   r  r$   rœ   r   rÒ   rá   s   @rN   Útest_extractr  C  s—   ø€ Ü˜!˜QÑ 4Ó5€AØ�9‰9’Y  A Ó'¬6°!°QÒ8KÓ+LÒLÐLÐLØ�9‰9�a˜�VšYÓ'¬6°!°QÒ8KÓ+LÒLÐLÐLØ�9‰9”U˜1“Xœu Q›xÓ(¨AÒ-Ð-Ð-Ü
Œ:Ó2Ô3Ü
Œ:Ó2Õ3rV   c                  óŒ  ‡‡— t        ddd„ «      Št        ddd„ «      Š‰‰j                  ‰«      k(  sJ ‚‰j                  ‰‰‰«      t         j                  ‰‰‰«      cxk(  rt        g d¢g d¢g d¢g d¢g«      k(  sJ ‚ J ‚t        t        ˆˆfd	„«       t        j                  «       t        «       k(  sJ ‚t        j
                  d
d
«      } t        j
                  d
d«      }t        j
                  d
d«      }t        j
                  d
d«      }t         j                  | |||«      Š‰j                  d
k(  r‰j                  dk(  sJ ‚y )NrB   rA   c                 ó   — | dz  |z   S r  rC   r]   s     rN   r`   ztest_hstack.<locals>.<lambda>M  r  rV   c                 ó   — | dz  |z   S r  rC   r]   s     rN   r`   ztest_hstack.<locals>.<lambda>N  ó   € ¨a°©c°A©g€ rV   )	r   r?   r@   r   r?   r@   r   r?   r@   )	rA   rB   r�   rA   rB   r�   rA   rB   r�   )	rŽ   r½   r¾   rŽ   r½   r¾   rŽ   r½   r¾   )	r¿   r  r
  r¿   r  r
  r¿   r  r
  c                  ó(   •— ‰ j                  ‰ ‰«      S rZ   )Úhstack©r�   rª   s   €€rN   r`   ztest_hstack.<locals>.<lambda>U  ó   ø€ ˜qŸx™x¨¨2›€ rV   r   r?   r@   rŽ   )rQ   r  r$   r   r   r)   r’   r“   )ÚM1ÚM2ÚM3ÚM4r�   rª   s       @@rN   Útest_hstackr  L  s)  ù€ Ü˜!˜QÑ 4Ó5€AÜ	˜1˜aÑ!5Ó	6€BØ�—‘˜“ÒÐÐØ�8‰8�A�q˜!ÓÔ 1× 8Ñ 8¸¸A¸qÓ Aô 4ÄVÚ1Ú1Ú1Ú1ð	M3ó F4ò 4ð 4ñ 4ð 4ð 4ô
 Œ:Ô.Ô/Ü�=‰=‹?œf›hÒ&Ð&Ð&ô 
�‰�a˜Ó	€BÜ	�‰�a˜Ó	€BÜ	�‰�a˜Ó	€BÜ	�‰�a˜Ó	€BÜ× Ñ   R¨¨RÓ0€AØ�6‰6�QŠ;˜1Ÿ6™6 Qš;Ð&Ð&˜;rV   c                  óœ  ‡ ‡— t        ddd„ «      Š t        ddd„ «      Š‰ ‰ j                  ‰ «      k(  sJ ‚‰ j                  ‰ ‰ ‰ «      t         j                  ‰ ‰ ‰ «      cxk(  r3t        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g«      k(  sJ ‚ J ‚t        t        ˆ ˆfd	„«       t        j                  «       t        «       k(  sJ ‚y )
NrB   rA   c                 ó   — | dz  |z   S r  rC   r]   s     rN   r`   ztest_vstack.<locals>.<lambda>b  r  rV   c                 ó   — | dz  |z   S r  rC   r]   s     rN   r`   ztest_vstack.<locals>.<lambda>c  r  rV   r·   ræ   )rŽ   r½   r¾   )r¿   r  r
  c                  ó(   •— ‰ j                  ‰ ‰«      S rZ   )Úvstackr  s   €€rN   r`   ztest_vstack.<locals>.<lambda>r  r  rV   )rQ   r"  r$   r   r   r  s   @@rN   Útest_vstackr#  a  sÌ   ù€ Ü˜!˜QÑ 4Ó5€AÜ	˜1˜aÑ!5Ó	6€BØ�—‘˜“ÒÐÐØ�8‰8�A�q˜!ÓÔ 1× 8Ñ 8¸¸A¸qÓ Aô .ÄVÚ +Ú +Ú +Ú +Ú +Ú +Ú +Ú +Ú +Ú +Ú +Ú +ðM-ó F.ò .ð .ñ .ð .ð .ô Œ:Ô.Ô/Ü�=‰=‹?œf›hÒ&Ð&Ñ&rV   c            
      ó  — t        ddddt        ddt        z  z
  g«      } | j                  «       t        j                  t        d«      t        j
                  t        hk(  sJ ‚| j                  t        «      t        hk(  sJ ‚y ©Nr@   r?   )rk   r3   Úatomsr   r¯   ÚNegativeOner   rá   s    rN   Ú
test_atomsr(  w  sb   € Ü˜Q  A q¬!¨Q°´1±©WÐ#5Ó6€AØ�7‰7‹9œŸ™¤ !£¤a§m¡m´QÐ7Ò7Ð7Ð7Ø�7‰7”6‹?œq˜cÒ!Ð!Ñ!rV   c                  óR   — t        t        gdgg«      j                  t        hk(  sJ ‚y rg   )rk   r3   Úfree_symbolsrC   rV   rN   Útest_free_symbolsr+  }  s%   € Ü¤!  q c 
Ó+×8Ñ8¼Q¸CÒ?Ð?Ñ?rV   c                  ó  — t        t        t        fdf«      } | j                  t        «      sJ ‚| j                  t        «      rJ ‚| j                  t
        «      sJ ‚t        dt        fdf«      } | j                  t        «      rJ ‚y )N)r@   rA   r@   )rk   r3   r4   Úhasr5   r   ©rÙ   s    rN   Útest_hasr/  �  si   € Üœq¤!˜f fÐ-Ó.€AØ�5‰5”Œ8€Oˆ8Ø�u‰u”QŒxÐˆ<Ø�5‰5”Œ=Ðˆ=ä˜q¤!˜f fÐ-Ó.€AØ�u‰u”QŒxÐˆ<ˆxrV   c                  ó¬  — t        d«      } t        ddddg«      j                  «       du sJ ‚t        ddd| dz  d| z  z   dz   t        | dz   dz   d| t        z  t         |  t        z  dg	«      }|j                  «       du sJ ‚|j                  d¬«      du sJ ‚|j                  d	„ ¬«      du sJ ‚t        dd|D � cg c]  }  | j                  «       ‘Œ c} «      }|j                  d¬«      du sJ ‚t        ddt
        j                  gt        |«      dd  z   D � cg c]  }  | j                  «       ‘Œ c} «      }|j                  «       du sJ ‚y c c} w c c} w )
Nr3   r@   r?   FrA   r   T©Úsimplifyc                 ó   — | S rZ   rC   r•   s    rN   r`   z(test_is_anti_symmetric.<locals>.<lambda>‘  s   € °!€ rV   )r   rk   Úis_anti_symmetricr4   Úexpandr   r¯   r”   )r3   r�   s     rN   Útest_is_anti_symmetricr6  ‹  s]  € Ü�‹€AÜ  1 q¨! fÓ-×?Ñ?ÓAÀUÑJÐJÐJÜ˜Q  A q¨!¡t¨a°©c¡z°A¡~´q¸AÀ¹EÀA¹:¸+ÀqÈ!ÌAÉ#ÔPQÈrÐTUÐSUÔVWÑSWÐYZÐ#[Ó\€AØ×ÑÓ  DÑ(Ð(Ð(Ø×Ñ¨ÐÓ.°%Ñ7Ð7Ð7Ø×Ñ©ÐÓ4¸Ñ=Ð=Ð=ä˜Q ¸Ö#:°1 H A§H¡H¥JÒ#:Ó;€AØ×Ñ¨ÐÓ.°$Ñ6Ð6Ð6Ü˜Q ¼¿¹¸Ä$ÀqÃ'È!È"À+Ñ8MÖ#N°1 H A§H¡H¥JÒ#NÓO€AØ×ÑÓ  EÑ)Ð)Ñ)ùò $;ùâ#Ns   Â:EÄEc                  ó€  — t        ddg d¢«      } | j                  «       rJ ‚| j                  «       sJ ‚| j                  d¬«      sJ ‚t        ddg d¢«      } | j                  «       sJ ‚t        ddt        ddd«      «      } | j                  «       sJ ‚| j                  «       sJ ‚t        ddg d¢«      } | t        ddd«      k(  sJ ‚t        ddt	        dd«      «      } | j                  «       rJ ‚| j                  «       sJ ‚t        d	«      } | j                  «       sJ ‚t        d
«      } | j                  «       sJ ‚t        dddt        dz  dt        z  z   dz   t        t        dz   dz  ddt        ddg	«      } | j                  «       sJ ‚| j                  d¬«      rJ ‚| j                  «       j                  d¬«      sJ ‚y )Nr@   ©r   r?   r?   r   Fr1  ©r?   r   r   r?   rA   r?   )	r?   r   r   r   r@   r   r   r   rA   ))r�   r   ©r   rŽ   r¡   ))r�   r   r   )r   rŽ   r   r   )	rk   Úis_diagonalÚis_symmetricr%   r)   r$   r3   r4   r5  rá   s    rN   Útest_diagonal_symmetricalr=  ™  s–  € Ü˜Q ¢<Ó0€AØ�}‰}ŒÐÐØ�>‰>ÔÐÐØ�>‰> 5ˆ>Ô)Ð)Ð)ä˜Q ¢<Ó0€AØ�=‰=Œ?Ðˆ?ä˜Q ¤4¨¨1¨a£=Ó1€AØ�=‰=Œ?Ðˆ?Ø�>‰>ÔÐÐä˜Q Ò#>Ó?€AØ”�Q˜˜1“ÒÐÐä˜Q ¤5¨¨A£;Ó/€AØ�~‰~ÔÐÐØ�=‰=Œ?Ðˆ?äÐ5Ó6€AØ�=‰=Œ?Ðˆ?äÐ3Ó4€AØ�=‰=Œ?Ðˆ?äˆq�!�aœ˜A™ ¤!¡™ a™¬¬Q°©U°Q©J¸¸1¼aÀÀAÐFÓG€AØ�>‰>ÔÐÐØ�~‰~ uˆ~Ô-Ð-Ð-Ø�8‰8‹:×"Ñ"¨EÐ"Ô2Ð2Ñ2rV   c                  ób  — t        dt        gt         dgg«      } | j                  sJ ‚t        dt        z  t        gt         dgg«      } | j                  du sJ ‚t        t        t        gt         dgg«      } | j                  �J ‚t        t        dgt         dgg«      } | j                  du sJ ‚y )Nr?   r@   F)rk   r   Úis_hermitianr3   ©r¥   s    rN   Útest_is_hermitianrA  ¹  sª   € Ü˜q¤!˜f¬ r¨1 gÐ.Ó/€AØ�>Š>Ðˆ>Ü˜q¤™s¤A˜h¬!¨¨Q¨Ð0Ó1€AØ�>‰>˜UÑ"Ð"Ð"Üœq¤!˜f¬ r¨1 gÐ.Ó/€AØ�>‰>Ð!Ð!Ð!Üœq !˜f¬ r¨1 gÐ.Ó/€AØ�>‰>˜UÑ"Ð"Ñ"rV   c                  óæ   — t        d«      j                  sJ ‚t        t        d«      «      j                  rJ ‚t        t	        d«      «      j                  rJ ‚t        g d¢g«      j                  rJ ‚y )NrA   rô   )rp   Úis_Identityrk   r)   r(   rC   rV   rN   Útest_is_IdentityrD  Ä  s_   € Ü˜!Ó×(Ò(Ð(Ð(Ü#¤E¨!£HÓ-×9Ò9Ð9Ð9Ü#¤D¨£GÓ,×8Ò8Ð8Ð8ä#¢Y KÓ0×<Ò<Ð<Ð<Ð<rV   c                  ó<  — t        t        t        gt        t        gg«      } | j                  «       du sJ ‚t        g d¢g d¢g«      } | j                  «       du sJ ‚t        g d¢ddt        dgg«      } | j                  «       du sJ ‚t        dt        d	gg«      } | j                  «       du sJ ‚t        g d
¢g«      } | j                  «       du sJ ‚t        dgt        gd	gg«      } | j                  «       du sJ ‚t        dgdgd	gg«      } | j                  «       du sJ ‚y )NT©r?   r@   rA   rB   ©r�   rŽ   r½   r¾   Fr�   rŽ   r¾   r?   rA   r‘   r@   )rk   r3   Úis_symbolicr@  s    rN   Útest_is_symbolicrI  Ì  s  € Üœq¤!˜f¤q¬! fÐ-Ó.€AØ�=‰=‹?˜dÑ"Ð"Ð"ÜšlªLÐ9Ó:€AØ�=‰=‹?˜eÑ#Ð#Ð#Üšl¨Q°´1°a¨LÐ9Ó:€AØ�=‰=‹?˜dÑ"Ð"Ð"Ü˜q¤! Q˜i˜[Ó)€AØ�=‰=‹?˜dÑ"Ð"Ð"Üši˜[Ó)€AØ�=‰=‹?˜eÑ#Ð#Ð#Ü˜q˜c¤A 3¨¨˜_Ó-€AØ�=‰=‹?˜dÑ"Ð"Ð"Ü˜q˜c A 3¨¨˜_Ó-€AØ�=‰=‹?˜eÑ#Ð#Ñ#rV   c                  ó‚   — t        g d¢g«      } | j                  du sJ ‚t        dgdgdgg«      } | j                  du sJ ‚y )Nr‘   Tr?   r@   rA   F)rk   Úis_upperr@  s    rN   Útest_is_upperrL  Ý  sH   € Üši˜[Ó)€AØ�:‰:˜ÑÐÐÜ˜q˜c A 3¨¨˜_Ó-€AØ�:‰:˜ÑÐÑrV   c                  ó‚   — t        g d¢g«      } | j                  du sJ ‚t        dgdgdgg«      } | j                  du sJ ‚y )Nr‘   Fr?   r@   rA   T)rk   Úis_lowerr@  s    rN   Útest_is_lowerrO  ä  sH   € Üši˜[Ó)€AØ�:‰:˜ÑÐÐÜ˜q˜c A 3¨¨˜_Ó-€AØ�:‰:˜ÑÐÑrV   c                  ó|   — t        dgdgg«      } t        ddgddgg«      }| j                  rJ ‚|j                  sJ ‚y ©Nr?   r@   )rk   Ú	is_squarer  s     rN   Útest_is_squarerS  ë  sC   € Ü˜q˜c A 3˜ZÓ(€AÜ	  1˜v¨¨1 vÐ.Ó	/€BØ�{Š{Ðˆ?Ø�<Š<Ð‰<rV   c                  óˆ   — t        ddg d¢«      } | j                  «       sJ ‚t        ddg d¢«      } | j                  «       rJ ‚y )Nr@   r8  )r   r?   r   r?   )rk   r<  rá   s    rN   Útest_is_symmetricrU  ò  sA   € Ü˜Q ¢<Ó0€AØ�>‰>ÔÐÐÜ˜Q ¢<Ó0€AØ�~‰~ÔÐÐÐrV   c                  ó$  — t        g d¢g d¢g d¢g«      } | j                  sJ ‚t        ddg d¢«      } | j                  sJ ‚t        ddg d¢«      } | j                  du sJ ‚| j                  du sJ ‚t        g d¢g d¢g d¢g«      } | j                  rJ ‚y )	N)rA   rB   r?   )r@   rB   r�   r·   rA   )	rA   r@   r   rB   rB   r?   r?   r�   r@   )	rA   r@   rÏ   rB   rB   r?   r?   r�   r@   Frå   )rk   Úis_upper_hessenbergÚis_lower_hessenbergr.  s    rN   Útest_is_hessenbergrY  ù  sš   € Üšiª²IÐ>Ó?€AØ× Ò Ð Ð Ü˜Q Ò#>Ó?€AØ× Ò Ð Ð Ü˜Q Ò#?Ó@€AØ× Ñ  EÑ)Ð)Ð)Ø× Ñ  EÑ)Ð)Ð)äšiª²IÐ>Ó?€AØ×$Ò$Ð$Ð$Ð$rV   c                  óÜ  — t        ddg «      j                  sJ ‚t        ddgddgg«      j                  sJ ‚t        t        dd«      «      j                  sJ ‚t        t        d«      «      j                  rJ ‚t        t        dgddgg«      j                  d k(  sJ ‚t        t        dgddgg«      j                  dk(  sJ ‚t        dd¬«      } t        | dgddgg«      j                  dk(  sJ ‚y )	Nr   rA   rB   r?   Fr¥   T)Únonzero)rk   Úis_zero_matrixr)   r&   r3   r   r@  s    rN   Útest_is_zeror]    së   € Ü  1 bÓ)×8Ò8Ð8Ð8Ü ! Q ¨!¨Q¨Ð 0Ó1×@Ò@Ð@Ð@Ü¤ a¨£Ó,×;Ò;Ð;Ð;Ü#¤C¨£FÓ+×:Ò:Ð:Ð:Ü¤! Q ¨!¨Q¨Ð 0Ó1×@Ñ@ÀDÒHÐHÐHÜ¤! Q ¨!¨Q¨Ð 0Ó1×@Ñ@ÀEÒIÐIÐIÜˆs˜DÔ!€AÜ ! Q ¨!¨Q¨Ð 0Ó1×@Ñ@ÀEÒIÐIÑIrV   c            
      óÖ   — t        t        ddg d¢«      j                  «       «      h d£k(  sJ ‚t        dd¬«      } t        t        dd| dddg«      j                  «       «      | dhk(  sJ ‚y )	Nr@   )r   r?   r@   rA   >   r?   r@   rA   r3   T©Úrealr   r?   )Úsetrk   Úvaluesr   r•   s    rN   Útest_valuesrc    sx   € ÜÔ# A qª,ó 
ß
‰&‹(óÚ ò!ð !ð !äˆs˜Ô€AÜÔ# A q¨1¨a°°A¨,ó 
ß
‰&‹(óØ˜1�vòð ñ rV   c                  óò   — t        t        d«      «      } | j                  d„ «      t        d«      dz  k(  sJ ‚| j                  d„ «      t        d«      k(  sJ ‚| j                  d„ «      t	        d«      k(  sJ ‚y )NrA   c                 ó   — d| z  S ©Nr@   rC   r•   s    rN   r`   z test_applyfunc.<locals>.<lambda>  s
   €  ! A¡#€ rV   r@   c                  ó   — yrg   rC   r•   s    rN   r`   z test_applyfunc.<locals>.<lambda>  rh   rV   c                  ó   — y©Nr?   rC   r•   s    rN   r`   z test_applyfunc.<locals>.<lambda>  rh   rV   )rw   r&   Ú	applyfuncr)   r(   )ré   s    rN   Útest_applyfuncrk    se   € Ü	œc !›fÓ	%€BØ�<‰<™Ó&¬#¨a«&°©(Ò2Ð2Ð2Ø�<‰<™Ó$¬¨a«Ò0Ð0Ð0Ø�<‰<™Ó$¬¨Q«Ò/Ð/Ñ/rV   c                  ó„   — dt         gddgg} t        ddgt          dgg«      }|j                  «       t        | «      k(  sJ ‚y )Nr   r?   )r   rw   Úadjointr$   )ÚdatÚanss     rN   Útest_adjointrp  !  sE   € ØŒqˆ6�A�q�6Ð
€CÜ
  A ¬!¨¨Q¨Ð0Ó
1€CØ�;‰;‹=œF 3›KÒ'Ð'Ñ'rV   c            
      ó   — t        ddg d¢«      } t        dddt        j                  z   ddt        j                  z  z   ddt        j                  z  z   ddt        j                  z  z   g«      }|j                  «       \  }}|| k(  sJ ‚|| k(  sJ ‚y )Nr@   rF  r?   rA   rB   )rw   r   ÚImaginaryUnitÚas_real_imag)r©   r«   r¥   r¦   s       rN   Útest_as_real_imagrt  '  sˆ   € Ü	˜a ¢LÓ	1€BÜ	˜a Ø	
ŒQ�_‰_Ñ	˜a !¤A§O¡OÑ"3Ñ3Ø	ˆAŒa�o‰oÑÑ˜q 1¤Q§_¡_Ñ#4Ñ4ð	6ó
7€Bð �?‰?Ó�D€A€qØ�Š7€Nˆ7Ø�Š7€N‰7rV   c                  ó¢  — t        dt        dgg d¢g«      } | j                  t        ddgt        dgddgg«      k(  sJ ‚| j                  t        dt         dgg d¢g«      k(  sJ ‚| j                  | j                  «       k(  sJ ‚| j                  | j                  j                  k(  sJ ‚| j                  t        ddgt         dgddgg«      k(  sJ ‚y )Nr   r�   ©r?   r@   r   r?   r@   )rw   r   ÚTr$   rÛ   Ú	conjugateÚH©rJ   s    rN   Útest_conjugater{  2  sí   € Ü˜q¤! Q˜iÚðó 	€Að �3‰3”&˜1˜a˜&Ü˜a˜&Ø˜a˜&ð"ó #ò #ð #ð #ð �3‰3”&˜1œq˜b !˜*Ú$ð&ó 'ò 'ð 'ð 'à�3‰3�!—+‘+“-ÒÐÐà�3‰3�!—#‘#—%‘%Š<Ðˆ<Ø�3‰3”&˜A˜q˜'Ü˜2˜q˜'Ø˜q˜'ð#ó $ò $ð $ñ $rV   c                  ó¶   — t        t        t        t        d¬«      gg«      } | d   dt        z  k7  sJ ‚| j                  «       t	        dt        z  gg«      k(  sJ ‚y )NF)Úevaluater   r@   )rw   r   r3   Údoitr$   r@  s    rN   Ú	test_doitr  D  sO   € Üœs¤1¤a°%Ô8Ð9Ð:Ó;€AØˆQ‰4�1”Q‘3Š;Ðˆ;Ø�6‰6‹8”v ¤!¡˜u˜g“Ò&Ð&Ñ&rV   c                  óð   ‡ — t        ddt        d«      dg«      Š t        ˆ fd„t        d«      D «       «      sJ ‚t        ˆ fd„t        d«      D «       «      sJ ‚t        ˆ fd„t        d«      D «       «      sJ ‚y )Nr@   r?   r�   rŽ   c              3   ól   •K  — | ]+  }‰j                  «       |   ‰|   j                  «       k(  –— Œ- y ­wrZ   ©Úevalf©Ú.0r^   r¥   s     €rN   ú	<genexpr>ztest_evalf.<locals>.<genexpr>L  s*   øè ø€ Ò>°ˆq�w‰w‹y˜‰|˜q ™tŸz™z›|Õ+Ñ>ùs   ƒ14c              3   óp   •K  — | ]-  }‰j                  d «      |   ‰|   j                  d «      k(  –— Œ/ y­w©r@   Nr‚  r„  s     €rN   r†  ztest_evalf.<locals>.<genexpr>M  s.   øè ø€ Ò@°!ˆq�w‰w�q‹z˜!‰}  !¡§
¡
¨1£Õ-Ñ@ùó   ƒ36c              3   óp   •K  — | ]-  }‰j                  d «      |   ‰|   j                  d «      k(  –— Œ/ y­wrˆ  rb   r„  s     €rN   r†  ztest_evalf.<locals>.<genexpr>N  s.   øè ø€ Ò8¨!ˆq�s‰s�1‹v�a‰y˜A˜a™DŸF™F 1›IÕ%Ñ8ùr‰  )rw   r   Úallrœ   r@  s   @rN   Ú
test_evalfrŒ  J  sa   ø€ Ü˜Q ¤D¨£G¨Q <Ó0€AÜÓ>´U¸1³XÔ>Ô>Ð>Ð>ÜÓ@´u¸Q³xÔ@Ô@Ð@Ð@ÜÓ8¬u°Q«xÔ8Ô8Ð8Ñ8rV   c            	      óˆ  — t        t        t        t        z   z  dgt        t        z   t        z  t        z  t        t        t        t        t        z   z  z   z  gg«      } | j                  «       }|t	        t        t        z  t        dz  z   dgt        t        dz  z  t        t        dz  z  z   t        t        z  t        t        dz  z  z   t        dz  z   gg«      k(  sJ ‚t        dd¬«      }t        ddt        t        |z  «      g«      j                  d¬«      t	        t        |«      t        t        |«      z  z   g«      k(  sJ ‚y )Nr@   rA   r¥   Tr_  r?   )Úcomplex)
rw   r3   r4   r5  r$   r   r   r   r   r   )ré   r©   r¥   s      rN   Útest_expandr�  Q  s  € Ü	¤¤1¤q¡5¡	¨1˜~´!´a±%¼±¼A±¼qÄ!ÄaÌÌQÉÁiÁ-Ñ?PÐ/QÐRÓ	S€Bà	�‰‹€BØ”Ü
ŒA‰#”�1‘‰*�aˆœ1œQ ™T™6¤A¤a¨¡d¡F™?¬A¬a©C´!´A°q±D±&©L¼1¸a¹4Ñ,?Ð@ÐAóCò Cð Cð Cô 	ˆs˜Ô€Aä  1¤s¬1¨Q©3£x jÓ1×8Ñ8ÀÐ8ÓFÜ”3�q“6œAœc !›f™HÑ$Ð%Ó&ò'ð 'ñ 'rV   c            	      ó(  — t        t        t        «      dz  t        t        dz  «      gt        t        dz  «      t        t        «      dz  z  t        t        dz  «      t        t        «      dz  z  gg«      } | j                  t        j                  t        «      t        j                  t        «      z  «      }|t        t        dz  t        t        «      gt        dz  t        t        «      z  t        dz  t        t        «      z  gg«      k(  sJ ‚| j                  t        j                  t        «      t        j                  t        «      z  «      }|t        t        dz  t        gt        t        dz  z  t        dz  t        z  gg«      k(  sJ ‚| j                  t        j                  t        «      t        j                  t        «      z  «      }|t        t        dz  t         gt         t        dz  z  t        dz   t        z  gg«      k(  sJ ‚y rf  )rw   r   r3   r   r4   Úrefiner   r`  r$   ÚpositiveÚnegativerè   s     rN   Útest_refiner”  ^  su  € Ü	¤¤A£¨¡	¬4´°1±«:Ð6Ü”q˜!‘t“*œS¤›V Q™YÑ&¬¬Q°©T«
´3´q³6¸1±9Ñ(<Ð=ð?ó 
@€Bà	�‰”1—6‘6œ!“9œqŸv™v¤a›yÑ(Ó	)€BØ”œ!˜Q™$¤¤A£˜¬!¨Q©$¬s´1«v©+´q¸!±t¼CÄ»F±{Ð)CÐDÓEÒEÐEÐEà	�‰”1—:‘:œa“=¤1§:¡:¬a£=Ñ0Ó	1€BØ”œ!˜Q™$¤˜¤Q¤q¨!¡t¡V¬Q°©T´!©VÐ$4Ð5Ó6Ò6Ð6Ð6à	�‰”1—:‘:œa“=¤1§:¡:¬a£=Ñ0Ó	1€BØ”œ!˜Q™$¤ ˜¤q b¬¨A©¡g´°1±¨u´Q©wÐ%7Ð8Ó9Ò9Ð9Ñ9rV   c                  ó¢   ‡‡— t        dt        ¬«      \  ŠŠt        ddˆfd„«      } t        ddˆfd„«      }|j                  ‰‰«      }|| k(  sJ ‚y )NúF, G©Úclsr@   c                 ó   •—  ‰| |z   «      S rZ   rC   )r^   r_   ÚGs     €rN   r`   ztest_replace.<locals>.<lambda>m  ó   ø€ ±°!°A±#³€ rV   c                 ó   •—  ‰| |z   «      S rZ   rC   ©r^   r_   ÚFs     €rN   r`   ztest_replace.<locals>.<lambda>n  r›  rV   ©r   r	   rw   Úreplace)ÚKrJ   ÚNrž  rš  s      @@rN   Útest_replacer£  k  sK   ù€ Ü�6œxÔ(�D€A€qÜ˜Q Ó#6Ó7€AÜ˜Q Ó#6Ó7€AØ	�	‰	�!�Q‹€AØ�Š6€M‰6rV   c                  óT  ‡— t        dt        ¬«      \  Š} t        dd | d«       ‰d«       | d«      if | d«       ‰d«       | d«      if | d«       ‰d«       | d«      if | d«       ‰d«       | d«      ifg«      }t        ddˆfd„«      }|j                  ‰| d«      }||k(  sJ ‚y )Nr–  r—  r@   r   r?   c                 ó   •—  ‰| |z   «      S rZ   rC   r�  s     €rN   r`   z"test_replace_map.<locals>.<lambda>w  r›  rV   TrŸ  )rš  r¡  rJ   r¢  rž  s       @rN   Útest_replace_mapr¦  s  sÌ   ø€ Ü�6œxÔ(�D€A€qÜ˜Q ¡Q q£T©A¨a«D±!°A³$¨<Ð$8¹1¸Q»4Á!ÀAÃ$ÉÈ!ËÀÐ:NÑQRÐSTÓQUÑXYÐZ[ÓX\ÙPQÐRSÓPTðXVð QWÙYZÐ[\ÓY]Ñ`aÐbcÓ`dÑfgÐhiÓfjÐ_kÐXlð$nó 	o€Aä˜Q Ó#6Ó7€AØ	�	‰	�!�Q˜Ó€AØ�Š6€M‰6rV   c                  óH  — t        ddgddgg«      } | | j                  d«      cxk(  r| j                  d«      k(  sJ ‚ J ‚| j                  d«      | j                  d«      cxk(  r$| j                  d«      cxk(  rt        d«      k(  sJ ‚ J ‚| j                  d«      | j                  d	«      cxk(  r$| j                  d
«      cxk(  rt        d«      k(  sJ ‚ J ‚| j                  «       | j                  d«      cxk(  r$| j                  d«      cxk(  rt        d«      k(  sJ ‚ J ‚y )Nr?   r@   rA   rB   r   rÐ   rŽ   ))rB   rA   ©r@   r?   rÏ   r½   ))r@   rB   ©r?   rA   iùÿÿÿéýÿÿÿ)©rA   r?   )rB   r@   )r$   Úrot90r.  s    rN   Ú
test_rot90r­  |  sô   € Ü��A�˜˜A˜ÐÓ €AØ�—‘˜“
Ô(˜aŸg™g a›jÒ(Ð(Ñ(Ð(Ð(Ø�7‰7�1‹:˜Ÿ™ ›ÔN¨¯©°«
ÔN´fÐ=MÓ6NÒNÐNÑNÐNÐNØ�7‰7�1‹:˜Ÿ™ ›ÔN¨¯©°«
ÔN´fÐ=MÓ6NÒNÐNÑNÐNÐNØ�7‰7‹9˜Ÿ™ ›ÔN q§w¡w¨r£{ÔN´fÐ=MÓ6NÒNÐNÑNÐNÑNrV   c                  ó†  — t        d«      } t        d«      }t        dt        z  dt        z  z   t        t        t        z  z   t        z  g |t        «      t         |t        «      z  z    |t        «      z  dd| z  t        | t        z  «      | z  z
  z  t        z  gg«      }|j                  «       t        t        t        z   t        t        z  z  dt        z   gdt        z   dddt        t        | z  «      z  z
  t        | z  z  z  gg«      k(  sJ ‚dt        z   dz  }t        |gg«      }|j                  «       t        |gg«      k(  sJ ‚|j                  t        ¬«      t        |j                  t        ¬«      gg«      k(  sJ ‚t        ddgddgg«      }d|j                  «       z  j                  «       t        dd	«      k(  sJ ‚y )
Nrc   Úfr?   r@   )Úratioé   rA   rB   é"   )r   r	   rw   r3   r4   r   r   r2  r$   r   Útracer   )rc   r¯  rJ   Úeqr�   s        rN   Útest_simplifyrµ  ƒ  s–  € Üˆs‹€AÜ�‹€Aä¨1¬Q©3°´1±©9ÄqÌ1ÌQÉ3ÁwÔRSÁmÐVÙ”Q“4œ!™Aœa›D™&‘=¡!¤A£$Ñ&¨¨Q¨q©S´3°q¼2±v³;¸q±=Ñ-@Ñ(AÄBÑ(FÐHðJó 	K€Aà�:‰:‹<œ6¤a¬!¡e¬a´!©e¡_ÈQÔQRÉUÐ#TØ$%¬¡E¨1¨q°1´S¼¸A¹³Y±;©ÄÀAÁÑ.FÑ+GÐIð#Kó Lò Lð Lð Là
Œa‰%�!‰€BÜ˜r˜d˜VÓ$€AØ�:‰:‹<œ6 B 4 &›>Ò)Ð)Ð)Ø�:‰:œBˆ:Ó¤6¨B¯K©K¼b¨KÓ,AÐ+BÐ*CÓ#DÒDÐDÐDô 	��Q�˜!˜Q˜Ð Ó!€AØˆq�w‰w‹y‰M×#Ñ#Ó%¬°!°R«Ò8Ð8Ñ8rV   c                  ó0  — t        dt        gt        dgg«      j                  t        d«      t        ddgddgg«      k(  sJ ‚t        t        dgt        t        z   dgg«      j                  t        dgt        dgg«      t        ddgddgg«      k(  sJ ‚t        t        dgt        t        z   dgg«      j                  t        dft        dfg«      t        ddgddgg«      k(  sJ ‚t        t        dgt        t        z   dgg«      j                  t        dt        di«      t        ddgddgg«      k(  sJ ‚t        t        t        z  gg«      j                  t        t        dz
  t        t        dz
  id¬	«      t        t        dz
  t        dz
  z  gg«      k(  sJ ‚y )
Nr?   rB   r�   r@   rÏ   rÐ   rª  T)Úsimultaneous)rw   r3   Úsubsr$   r4   rC   rV   rN   Ú	test_subsr¹  •  s™  € Ü !¤Q ¬!¨Q¨Ð 0Ó1×6Ñ6´q¸!Ó<ÄÈÈAÈÐQRÐTUÐPVÐGWÓ@XÒXÐXÐXÜ¤! Q ¬!¬a©%°¨Ð 4Ó5×:Ñ:¼QÀ¸GÄaÈÀWÐ;MÓNÜ�B˜�7˜R ˜GÐ$Ó%ò&ð &ð &ä¤! Q ¬!¬a©%°¨Ð 4Ó5×:Ñ:¼QÀ¸GÄaÈÀWÐ;MÓNÜ�B˜�7˜R ˜GÐ$Ó%ò&ð &ð &ä¤! Q ¬!¬a©%°¨Ð 4Ó5×:Ñ:¼A¸rÄ1Àb¸>ÓJÜ�B˜�7˜R ˜GÐ$Ó%ò&ð &ð &ä¤!¤A¡#  Ó(×-Ñ-¬q´!°a±%¼¼AÀ¹EÐ.BÐQUÐ-ÓVÜ”Q˜‘UœQ ™U‘OÐ$Ð%Ó&ò'ð 'ñ 'rV   c                  óV   — t        g d¢g d¢g d¢g«      } | j                  «       dk(  sJ ‚y )Nrô   )r   r�   r   )r   r   r¾   é   )rw   r³  rz  s    rN   Ú
test_tracer¼  ¡  s-   € ÜšiÚÚðó 	€Að �7‰7‹9˜Š?Ð‰?rV   c                  ó&  — t        dt        gt        dgg«      j                  t        di«      t        ddgddgg«      k(  sJ ‚t        t        dgt        t        z   dgg«      j                  t        dt        di«      t        ddgddgg«      k(  sJ ‚y )Nr?   rB   r�   r@   rÏ   rÐ   rª  )rw   r3   Úxreplacer$   r4   rC   rV   rN   Útest_xreplacer¿  ¨  sš   € Ü !¤Q ¬!¨Q¨Ð 0Ó1×:Ñ:¼A¸q¸6ÓBÜ�A�q�6˜A˜q˜6Ð"Ó#ò$ð $ð $ä¤! Q ¬!¬a©%°¨Ð 4Ó5×>Ñ>ÄÀ2ÄqÈ"¸~ÓNÜ�B˜�7˜R ˜GÐ$Ó%ò&ð &ñ &rV   c                  ó  ‡— t        ddg d¢«      Št        t        ˆfd„«       t        t        ˆfd„«       ‰j	                  ddgddgg«      } ‰j                  ddgddgg«      | cxk(  rt        g d	¢g d
¢g d¢g«      k(  sJ ‚ J ‚‰j                  ddgddgg«      } ‰j                  ddgddggd¬«      | cxk(  rt        g d¢g d¢g d¢g«      k(  sJ ‚ J ‚‰j                  ddgddggd¬«      } ‰j                  ddgddggdd¬«      | cxk(  rt        g d¢g d¢g d¢g«      k(  sJ ‚ J ‚‰j                  g d¢«      t        g d	¢g d
¢g d¢g«      k(  sJ ‚ddlm	} ‰j                   |g d¢«      «      t        g d	¢g d
¢g d¢g«      k(  sJ ‚y )NrA   rB   )r?   r@   rA   rB   r�   rŽ   r½   r¾   r¿   r  r
  é   c                  ó,   •— ‰ j                  ddgg«      S )Nr   r�   )Úpermuter@  s   €rN   r`   ztest_permute.<locals>.<lambda>²  s   ø€ ˜qŸy™y¨1¨a¨&¨Ó2€ rV   c                  ó8   •— ‰ j                  t        d«      «      S )Nr3   )rÃ  r   r@  s   €rN   r`   ztest_permute.<locals>.<lambda>³  s   ø€ ˜qŸy™y¬°«Ó5€ rV   r   r@   r?   rG  )r¿   r  r
  rÁ  rF  r“   )Úorientation)r@   rA   r?   rB   )rŽ   r½   r�   r¾   )r  r
  r¿   rÁ  Úbackward)Ú	direction)rÅ  rÇ  )rA   r?   r@   rB   )r½   r�   rŽ   r¾   )r
  r¿   r  rÁ  )r?   r@   r   rA   )ÚPermutation)
rw   r   rÒ   Ú
ValueErrorÚpermute_rowsrÃ  r$   Úpermute_colsÚsympy.combinatoricsrÈ  )r¦   rÈ  r¥   s     @rN   Útest_permuterÍ  ¯  sä  ø€ Ü˜Q Ò#JÓK€Aä
Œ:Ó2Ô3Ü
Œ:Ó5Ô6Ø	�‰˜˜A˜  A Ð'Ó(€AØ�9‰9�q˜!�f˜q !˜fÐ%Ó&¨!ô >¬vÚ,;Ú,;Ú,;ð7=ó 0>ò >ð >ñ >ð >ð >ð
 	
�‰˜˜A˜  A Ð'Ó(€AØ�9‰9�q˜!�f˜q !˜fÐ%°6ˆ9Ó:¸aô .Ü"Ú+Ú+Ú+ð$-ó .ò.ð .ñ .ð .ð .ð 	
�‰˜˜A˜  A Ð'°:ˆÓ>€AØ�9‰9�q˜!�f˜q !˜fÐ%°6ÀZˆ9ÓPÐTUô .Ü"Ú+Ú+Ú+ð$-ó .ò.ð .ñ .ð .ð .ð �9‰9’\Ó"¤fÚ,;Ú,;Ú,;ð.=ó '>ò >ð >ð >õ
 0Ø�9‰9‘[¢Ó.Ó/´6Ú,;Ú,;Ú,;ð;=ó 4>ò >ð >ñ >rV   c                  ó>  — t        g d¢g d¢g d¢g d¢g«      } | j                  d«      }|t        g d¢g d¢g d¢g d¢g«      k(  sJ ‚| j                  d«      }|t        g d¢g d¢g d¢g d¢g«      k(  sJ ‚| j                  «       }|t        g d¢g d¢g d¢g d¢g«      k(  sJ ‚y )N©r?   r?   r?   r?   r@   )r   r   r?   r?   )r   r   r   r?   ©r   r   r   r   rÐ   )r   r?   r?   r?   )rw   Úupper_triangular)rÙ   ÚRs     rN   Útest_upper_triangularrÓ  Ó  sÒ   € äÚÚÚÚð	ó 	€Að 	
×Ñ˜1Ó€AØÔ$Ú$Ú$Ú$Ú$ð	&ó ò ð ð ð 	
×Ñ˜2Ó€AØÔ$Ú$Ú$Ú$Ú$ð	&ó ò ð ð ð 	
×ÑÓ€AØÔ$Ú$Ú$Ú$Ú$ð	&ó ò ð ñ rV   c                  ó>  — t        g d¢g d¢g d¢g d¢g«      } | j                  «       }|t        g d¢g d¢g d¢g d¢g«      k(  sJ ‚| j                  d«      }|t        g d¢g d¢g d¢g d¢g«      k(  sJ ‚| j                  d«      }|t        g d¢g d¢g d¢g d¢g«      k(  sJ ‚y )NrÏ  )r?   r   r   r   )r?   r?   r   r   )r?   r?   r?   r   r@   rÐ   rÐ  )rw   Úlower_triangularr€   )rÙ   ÚLs     rN   Útest_lower_triangularr×  ô  sÒ   € ÜÚ$Ú$Ú$Ú$ð	ó 	€Að 	
×ÑÓ€AØÔ$Ú$Ú$Ú$Ú$ð	&&ó 'ò 'ð 'ð 'ð 	
×Ñ˜1Ó€AØÔ$Ú$Ú$Ú$Ú$ð	&ó ò ð ð ð 	
×Ñ˜2Ó€AØÔ$Ú$Ú$Ú$Ú$ð	&ó ò ð ñ rV   c                  ó¨   — t        ddgt        t        gg«      } t        | «      t        ddgt	        t        «      t	        t        «      gg«      k(  sJ ‚y )Nr?   rÐ   r@   )r€   r3   r4   Úabsr   rá   s    rN   Útest_absrÚ    sG   € Ü˜q "˜g¬¬1 vÐ.Ó/€AÜˆq‹6Ô)¨A¨q¨6´C¼³F¼CÄ»FÐ3CÐ*DÓEÒEÐEÑErV   c            	      óF  ‡ ‡— t        g d¢t        t        t        gdt        z  dt        t        z  gg«      Š ‰ ‰ z   t        g d¢dt        z  dt        z  dt        z  gdt        z  ddt        z  t        z  gg«      k(  sJ ‚t        ddddg«      Št	        t
        ˆ ˆfd„«       y )	Nr‘   r@   iÎÿÿÿ)r@   rB   rŽ   rB   iœÿÿÿr?   c                  ó   •— ‰ ‰z   S rZ   rC   ©r�   rc   s   €€rN   r`   ztest_add.<locals>.<lambda>  s   ø€ ˜q 1™u€ rV   )r€   r3   r4   r5   r   r   rÝ  s   @@rN   Útest_addrÞ    s�   ù€ Üši¬!¬Q´¨°Q´q±S¸#¼qÄ¹s°OÐDÓE€AØˆq‰5Ô(ª)°a¼±c¸1¼Q¹3ÀÄ!Á°_ÀqÌÁsÈDÐRSÔTUÑRUÔVWÑRWÐFXÐ)YÓZÒZÐZÐZÜ˜Q  A q 6Ó*€AÜ
Œ:”}Õ%rV   c                  ó>  ‡‡— t        d«      Št        d«      Št        t        ˆˆfd„«       t        t        ˆfd„«       ‰‰z  } | d   dk(  sJ ‚| d   dk(  sJ ‚| d	   d
k(  sJ ‚| d   d
k(  sJ ‚| d   dk(  sJ ‚| d   dk(  sJ ‚	 t	        d«       | d   dk(  sJ ‚| d   dk(  sJ ‚| d	   d
k(  sJ ‚| d   d
k(  sJ ‚| d   dk(  sJ ‚| d   dk(  sJ ‚‰j                  | «      }|t        ‰| «      k(  sJ ‚|d   dk(  sJ ‚|d   dk(  sJ ‚|d	   dk(  sJ ‚|d   d
k(  sJ ‚|d   dk(  sJ ‚|d   dk(  sJ ‚t        t        ˆˆfd„«       ‰t        d«      z  } t        | t         «      sJ ‚| d   t        k(  sJ ‚| d   dt        z  k(  sJ ‚| d	   dt        z  k(  sJ ‚| d   dk(  sJ ‚t        ‰z  }| |k(  sJ ‚d‰z  } t        | t         «      sJ ‚| d   dk(  sJ ‚| d   dk(  sJ ‚| d	   dk(  sJ ‚| d   dk(  sJ ‚	 t	        d«       t        | t         «      sJ ‚| d   dk(  sJ ‚| d   dk(  sJ ‚| d	   dk(  sJ ‚| d   dk(  sJ ‚t        t        dd«      «      }t        dd«       }t        |||g«      }|j                  |«      t        |g|g|gg«      k(  sJ ‚y # t
        $ r Y �ŒÃw xY w# t
        $ r Y Œqw xY w)N)rß   r«  r:  )rß   )rA   r   c                  ó   •— ‰‰ z  S rZ   rC   ©r¥   r¦   s   €€rN   r`   z%test_multiplication.<locals>.<lambda>-  s   ø€ ˜q ™s€ rV   c                  ó   •— ‰ i z  S rZ   rC   r@  s   €rN   r`   z%test_multiplication.<locals>.<lambda>.  s   ø€ ˜a ™d€ rV   r¡   r½   r¢   r@   r£   rŽ   r�   )r@   r   é   r¨  r   z	c = a @ brB   c                  ó&   •— ‰ j                  ‰«      S rZ   )Úmultiply_elementwiserá  s   €€rN   r`   z%test_multiplication.<locals>.<lambda>L  s   ø€ ˜q×5Ñ5°aÓ8€ rV   r3   rA   r�   r  é   z	c = 5 @ br?   )r€   r   r   Ú	TypeErrorÚevalÚSyntaxErrorrå  r'   r   rG   r3   r$   r(   r   )r§   ÚhÚc2rÙ   Ú_hrÚ   r¥   r¦   s         @@rN   Útest_multiplicationrí  !  sf  ù€ Üð ó 	€Aô 	ð ó 	€Aô
 Œ:”{Ô#Ü
Œ9“lÔ#à	ˆ!‰€AØˆT‰7�aŠ<Ðˆ<ØˆT‰7�aŠ<Ðˆ<ØˆT‰7�aŠ<Ðˆ<ØˆT‰7�aŠ<Ðˆ<ØˆT‰7�bŠ=Ðˆ=ØˆT‰7�aŠ<Ðˆ<ð
Üˆ[Ôð �‰w˜!Š|Ðˆ|Ø�‰w˜!Š|Ðˆ|Ø�‰w˜!Š|Ðˆ|Ø�‰w˜!Š|Ðˆ|Ø�‰w˜"Š}Ðˆ}Ø�‰w˜!Š|Ðˆ|à	×Ñ˜qÓ!€AØÔ+¨A¨qÓ1Ò1Ð1Ð1ØˆT‰7�aŠ<Ðˆ<ØˆT‰7�aŠ<Ðˆ<ØˆT‰7�bŠ=Ðˆ=ØˆT‰7�aŠ<Ðˆ<ØˆT‰7�aŠ<Ðˆ<ØˆT‰7�aŠ<Ðˆ<Ü
Œ:Ô8Ô9à	ŒF�3‹K‰€AÜ�aÔ-Ô.Ð.Ð.ØˆT‰7”aŠ<Ðˆ<ØˆT‰7�aœ‘cŠ>Ðˆ>ØˆT‰7�aœ‘cŠ>Ðˆ>ØˆT‰7�aŠ<Ðˆ<ä	
ˆQ‰€BØ�Š7€Nˆ7à	ˆA‰€AÜ�aÔ-Ô.Ð.Ð.ØˆT‰7�aŠ<Ðˆ<ØˆT‰7�cŠ>Ðˆ>ØˆT‰7�cŠ>Ðˆ>ØˆT‰7�aŠ<Ðˆ<ð	Üˆ[Ôô ˜!Ô1Ô2Ð2Ð2Ø�‰w˜!Š|Ðˆ|Ø�‰w˜#Š~Ðˆ~Ø�‰w˜#Š~Ðˆ~Ø�‰w˜!Š|Ðˆ|ô 	Œt�A�q‹zÓ€AÜ
�1�a‹.ˆ€BÜ��B˜ˆ|Ó€AØ×!Ñ! !Ó$¬Ø	ˆØ	ˆØ	ˆð0ó )ò ð ñ øôi ò ÚðûôN ò Ùðús$   ÂJ  Ç%J Ê 	JÊJÊ	JÊJc                  ó"  — t        ddgddgg«      } | j                  d«      t        k(  sJ ‚| j                  d«      t        k(  sJ ‚	 t	        d«       	 t	        d«       y # t
        $ r Y Œt        $ r Y Œ"w xY w# t
        $ r Y y t        $ r Y y w xY w)Nr?   r@   rA   rB   z2 @ aza @ 2)r$   Ú
__matmul__ÚNotImplementedÚ__rmatmul__rè  ré  rç  r@  s    rN   Útest_matmulrò  t  s›   € Ü��A�˜˜A˜ÐÓ €Aà�<‰<˜‹?œnÒ,Ð,Ð,à�=‰=˜Óœ~Ò-Ð-Ð-ðÜˆWŒðÜˆW�øô ò ÙÜò Ùðûô ò ÙÜò Ùðús0   ÁA ÁA8 Á	A5Á*A5Á4A5Á8	BÂBÂBc                  óÚ   —  G d„ dt         «      } t        ddgddgg«      } | «       }||z  t        |d|z  gd|z  d|z  gg«      k(  sJ ‚||z  t        |d|z  gd|z  d|z  gg«      k(  sJ ‚y)zd
    Test that if explicitly specified as non-matrix, mul reverts
    to scalar multiplication.
    c                   ó   — e Zd ZdZdZdZy)útest_non_matmul.<locals>.fooFr�   N)rS   rT   rU   Ú	is_MatrixÚis_MatrixLikerà   rC   rV   rN   Úfoorõ  ’  s   „ Øˆ	ØˆØ‰rV   rø  r?   r@   rA   rB   N)r   r$   )rø  rÙ   r¦   s      rN   Útest_non_matmulrù  �  sŽ   € ô
Œdô ô
 	��A�˜˜A˜ÐÓ €AÙ‹€AØˆQ‰3”&˜1˜a ™c˜( Q q¡S¨!¨A©# JÐ/Ó0Ò0Ð0Ð0ØˆQ‰3”&˜1˜a ™c˜( Q q¡S¨!¨A©# JÐ/Ó0Ò0Ð0Ñ0rV   c                  óê  — t        t        d„ «       t        ddgddgg«      } | dz  d d  dk(  sJ ‚t        g d¢g d¢g d	¢g«      } | dz  d d  d
k(  sJ ‚| dz  t        d«      k(  sJ ‚| dz  | k(  sJ ‚t        dgg«      dz  d   ddz  k(  sJ ‚t        ddgddgg«      t	        d«      z  t        ddgddgg«      k(  sJ ‚t        ddgddgg«      } | j                  dd¬«      | j                  dd¬«      k(  sJ ‚y )Nc                  ó   — t        d«      dz  S )Nrß   r@   ©r$   rC   rV   rN   r`   ztest_power.<locals>.<lambda>ž  s   € ¬°«¸Ñ):€ rV   r@   rA   rB   r�   )iü  i¡  i,*  i�7  )r@   r?   rA   )rB   r@   rB   )rŽ   rÁ  r?   )	i"  i  éû   iÀ  i¸  ip  i¾  iº  i±  r   r?   éd   r¡   r½   r  ræ  é   é   Úcayley)ÚmethodÚmultiply)r   r   r€   r&   r   r$   Úpowr.  s    rN   Ú
test_powerr  �  s-  € Ü
ÔÑ!:Ô;ä˜q !˜f q¨! fÐ-Ó.€AØˆq‰D‘!ˆ9Ð2Ò2Ð2Ð2Üšiª²JÐ?Ó@€AØˆq‰D‘!ˆ9ÐEÒEÐEÐEØˆa‰4”3�q“6Š>Ðˆ>Øˆa‰4�1Š9Ðˆ9Ü  1 # Ó'¨3Ñ.°Ñ5¸¸C¹Ò?Ð?Ð?Ü ! Q ¨!¨Q¨Ð 0Ó1´7¸1³:Ñ=ÔAUÐXYÐ[]ÐW^ÐacÐegÐ`hÐViÓAjÒjÐjÐjÜ��1��q˜�eˆ}Ó€AØ�5‰5�˜Hˆ5Ó%¨¯©¨r¸*¨Ó)EÒEÐEÑErV   c                  óL   — t        ddddg«      } |  t        ddddg«      k(  sJ ‚y )Nr?   r@   rÏ   rÐ   rƒ   rb   s    rN   Útest_negr  «  s2   € Ü˜Q  A q 6Ó*€AØˆ2Ô% a¨¨R°¨HÓ5Ò5Ð5Ñ5rV   c                  óP   — t        ddddg«      } | | z
  t        ddddg«      k(  sJ ‚y )Nr?   r@   r   rƒ   rb   s    rN   Útest_subr	  °  s4   € Ü˜Q  A q 6Ó*€AØˆq‰5Ô(¨¨A°°1¨vÓ6Ò6Ð6Ñ6rV   c            	      ó„   — t        ddddg«      } | dz  t        ddt        j                  t        d«      dz  g«      k(  sJ ‚y rQ  )r€   r   r°   rb   s    rN   Útest_divr  µ  sA   € Ü˜Q  A q 6Ó*€AØˆQ‰3Ô& q¨!¬a¯f©f´a¸³d¸1±fÐ-=Ó>Ò>Ð>Ñ>rV   c                  óB  — t        t        j                  dd«      «      g d¢k(  sJ ‚t        t        j                  d«      «      g d¢k(  sJ ‚t        t        j                  d«      «      t        k(  sJ ‚t        t        j                  dt        ¬«      «      t        k(  sJ ‚y )Nr@   r9  r—  )r”   r‰   r&   Útyper$   rC   rV   rN   Útest_eyer  º  s†   € ÜÔ!×%Ñ% a¨Ó+Ó,²Ò<Ð<Ð<ÜÔ!×%Ñ% aÓ(Ó)ª\Ò9Ð9Ð9ÜÔ!×%Ñ% aÓ(Ó)Ô->Ò>Ð>Ð>ÜÔ!×%Ñ% a¬VÐ%Ó4Ó5¼Ò?Ð?Ñ?rV   c                  ó–  — t        t        j                  dd«      «      g d¢k(  sJ ‚t        t        j                  d«      «      g d¢k(  sJ ‚t        j                  dd«      t        g d¢g d¢g«      k(  sJ ‚t	        t        j                  d«      «      t        k(  sJ ‚t	        t        j                  dt        ¬«      «      t        k(  sJ ‚y )Nr@   rÏ  rA   ©r?   r?   r?   r—  )r”   r‰   r(   r$   r  rC   rV   rN   Ú	test_onesr  Á  s«   € ÜÔ!×&Ñ& q¨!Ó,Ó-²Ò=Ð=Ð=ÜÔ!×&Ñ& qÓ)Ó*ªlÒ:Ð:Ð:Ü×!Ñ! ! QÓ'¬6²9ºiÐ2HÓ+IÒIÐIÐIÜÔ!×&Ñ& qÓ)Ó*Ô.?Ò?Ð?Ð?ÜÔ!×&Ñ& q¬fÐ&Ó5Ó6¼&Ò@Ð@Ñ@rV   c                  ó–  — t        t        j                  dd«      «      g d¢k(  sJ ‚t        t        j                  d«      «      g d¢k(  sJ ‚t        j                  dd«      t        g d¢g d¢g«      k(  sJ ‚t	        t        j                  d«      «      t        k(  sJ ‚t	        t        j                  dt        ¬«      «      t        k(  sJ ‚y )Nr@   rÐ  rA   r   r—  )r”   r‰   r)   r$   r  rC   rV   rN   Ú
test_zerosr  É  s«   € ÜÔ!×'Ñ'¨¨1Ó-Ó.²,Ò>Ð>Ð>ÜÔ!×'Ñ'¨Ó*Ó+ª|Ò;Ð;Ð;Ü×"Ñ" 1 aÓ(¬F²IºyÐ3IÓ,JÒJÐJÐJÜÔ!×'Ñ'¨Ó*Ó+Ô/@Ò@Ð@Ð@ÜÔ!×'Ñ'¨¬vÐ'Ó6Ó7¼6ÒAÐAÑArV   c                  ó	  ‡ ‡‡‡— t         j                  Št        ddgddgg«      Š t        dt        gt        dgg«      Št        dt        dgt        dt
        gt        t        t
        gg«      Š ‰‰ ‰‰«      t        g d¢g d¢dddt        ddgddt        dddgdddddt        gddddt        dgg«      k(  sJ ‚ ‰‰ ‰‰«      t        g d¢g d¢dddt        dddgddt        ddddgdddddt        dgddddt        dt
        gddddt        t        t
        gg«      k(  sJ ‚ ‰‰ ‰‰«      t        g d¢g d¢dddt        dddgddt        dt
        ddgddt        t        t
        ddgddddddt        gdddddt        dgg«      k(  sJ ‚t        t        t        t
        g«      Š t        ddgdd	gg«      Št        d
dgg«      Š ‰‰ d‰‰«      t        t        dddddgt        dddddgt
        dddddgg d¢g d¢g d¢g d¢g«      k(  sJ ‚t        t        ˆ ˆˆˆfd„«        ‰d«      t        dgg«      k(  sJ ‚ ‰dd¬«      t        ddgddgg«      k(  sJ ‚ ‰dd¬«      t        ddgddgg«      k(  sJ ‚ ‰ddd¬«      t        ddgddgddgg«      k(  sJ ‚ ‰ddgŽ t        ddgddgg«      k(  sJ ‚ ‰t        ddg«      «      t        dgdgg«      k(  sJ ‚ ‰dddgd	gd¬«       ‰dgddgd	ggd¬«      cxk(  rt        ddgddgd	dgg«      k(  sJ ‚ J ‚t         ‰d«      «      t         k(  sJ ‚t         ‰dt        ¬«      «      t        k(  sJ ‚t        j                  g d¢«      t        j                  ddd«      k(  sJ ‚t        j                  g d¢d¬«      j                  dk(  sJ ‚t        j                  g d¢g«      j                  dk(  sJ ‚t        j                  g d¢gd¬«      j                  dk(  sJ ‚t        j                  g d¢gg«      j                  dk(  sJ ‚t        j                  t        dd«      dd«      t        g d¢g d¢g«      k(  sJ ‚t        j                  t        dd«      dd«      t        ddgddgddgddgg«      k(  sJ ‚y )Nr?   r@   rA   )r?   r@   r   r   r   r   )r@   rA   r   r   r   r   r   )r?   r@   r   r   r   r   r   )r@   rA   r   r   r   r   r   rB   r�   rŽ   r½   )r   r½   r   r   r   r   )r   r   r?   r@   r   r   )r   r   rA   rB   r   r   )r   r   r   r   r�   rŽ   c                  ó   •—  ‰‰ d‰‰d¬«      S )Nr½   r�   ©r’   rC   ©r¥   r¦   r§   r%   s   €€€€rN   r`   z test_diag_make.<locals>.<lambda>þ  s   ø€ ™t A q¨!¨Q°QÔ7€ rV   r  )r“   )r’   r“   F)Úunpackr—  r‘   r«  r©  )r   r   r?   r   )r   r   r   r@   )r‰   r%   r$   r3   r4   r5   r   rÉ  r  rà   r(   r  s   @@@@rN   Útest_diag_maker  Ñ  sT  û€ Ü×!Ñ!€DÜ��A�˜˜A˜ÐÓ €AÜ�”A�œ˜A˜ÐÓ €AÜ�”A�q�	œA˜q¤!˜9¤q¬!¬Q iÐ0Ó1€AÙ��1�a‹=œFÚÚØ	
ˆAˆq”!�Q˜ÐØ	
ˆAŒq�!�Q˜ÐØ	
ˆAˆq�!�QœÐØ	
ˆAˆq�!”Q˜Ðð$ó ò ð ð ñ ��1�a‹=œFÚÚØ	
ˆAˆq”!�Q˜˜1ÐØ	
ˆAŒq�!�Q˜˜1ÐØ	
ˆAˆq�!�Qœ˜1ÐØ	
ˆAˆq�!”Q˜œ1ÐØ	
ˆAˆq�!”Qœœ1Ðð$ó ò ð ð ñ ��1�a‹=œFÚÚØ	
ˆAˆq”!�Q˜˜1ÐØ	
ˆAŒq�!”Q˜˜1ÐØ	
ˆAŒq”!”Q˜˜1ÐØ	
ˆAˆq�!�Q˜œ1ÐØ	
ˆAˆq�!�Qœ˜1Ðð$ó ò ð ð ô 	””1”aˆyÓ€AÜ��A�˜˜A˜ÐÓ €AÜ��A�ˆxÓ€Añ ��1�a˜ÓœvÜ	
ˆAˆq�!�Q˜ÐÜ	
ˆAˆq�!�Q˜ÐÜ	
ˆAˆq�!�Q˜ÐÚÚÚÚð'ó  ò ð ð ô Œ:Ö7Ô8Ù�‹7”f˜q˜c˜U“mÒ#Ð#Ð#Ù�˜Œ?œf q¨! f¨q°!¨fÐ%5Ó6Ò6Ð6Ð6Ù�˜Œ?œf q¨! f¨q°!¨fÐ%5Ó6Ò6Ð6Ð6Ù�˜ Ô"¤f¨q°!¨f°q¸!°f¸qÀ!¸fÐ-EÓ&FÒFÐFÐFÙ�!�Q�ˆ=œFØ	
ˆAˆØ	
ˆAˆð$ó ò ð ð ñ ”˜˜1�v“Ó¤6Ø	
ˆØ	
ˆð+ó $ò ð ð ñ ��Q˜�F˜A� uÔ-Ù�1�#˜˜1�v ˜sÐ#¨EÔ2ôÜ6<Ø	
ˆAˆØ	
ˆAˆØ	
ˆAˆð>ó 7òð ñ ð ð ô
 ‘�Q“‹=Ô-Ò-Ð-Ð-Ü‘�QœFÔ#Ó$¬Ò.Ð.Ð.Ü�;‰;’yÓ!¤V§[¡[°°A°qÓ%9Ò9Ð9Ð9Ü�;‰;’y¨Ô/×5Ñ5¸Ò?Ð?Ð?Ü�;‰;š	�{Ó#×)Ñ)¨VÒ3Ð3Ð3Ü�;‰;š	�{¨5Ô1×7Ñ7¸6ÒAÐAÐAÜ�;‰;š˜�}Ó%×+Ñ+¨vÒ5Ð5Ð5ä�;‰;”t˜A˜q“z 1 aÓ(¬FÚÚð4ó -ò ð ð ô �;‰;”t˜A˜q“z 1 aÓ(¬FØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆð	4ó -ò ð ñ rV   c                  óˆ  ‡— t        ddt        d«      «      Š‰j                  «       } | ‰j                  d«      k(  sJ ‚t        | «      dk(  sJ ‚t        ‰j                  d«      «      dk(  sJ ‚t        ‰j                  d«      «      dk(  sJ ‚t        ‰j                  d	«      «      d
k(  sJ ‚t	        ‰j                  «       «      t	        ‰«      k(  sJ ‚t        ddddi«      }t	        |j                  «       «      t	        |«      k(  sJ ‚t	        ‰«      t	        |«      k7  sJ ‚t        t        ˆfd„«       t        t        ˆfd„«       t        t        ˆfd„«       t        d	d«      }t        t        d|j                  z
  |j                  «      D �ci c]  }|t        |j                  |«      «      “Œ c}«      |k(  sJ ‚y c c}w )NrA   r¿   r   )r   rB   r¾   r?   )r?   r�   rÏ   )rA   r½   r@   )r@   r�   c                  ó&   •— ‰ j                  d«      S r  ©Údiagonalrá   s   €rN   r`   ztest_diagonal.<locals>.<lambda>,  s   ø€ ˜qŸz™z¨!›}€ rV   c                  ó&   •— ‰ j                  d«      S )Nrª  r  rá   s   €rN   r`   ztest_diagonal.<locals>.<lambda>-  s   ø€ ˜qŸz™z¨"›~€ rV   c                  ó.   •— ‰ j                  t        «      S rZ   )r  r   rá   s   €rN   r`   ztest_diagonal.<locals>.<lambda>.  s   ø€ ˜qŸz™z¬"›~€ rV   )r$   rœ   r  Útupler  r*   r   rÉ  r(   r+   r’   r“   r”   )r¨   ÚsrJ   r^   r�   s       @rN   Útest_diagonalr"     s�  ø€ Üˆq�!”U˜1“XÓ€AØ	�
‰
‹€AØ�—
‘
˜1“ÒÐÐÜ�‹8�yÒ Ð Ð Ü�—‘˜A“Ó 6Ò)Ð)Ð)Ü�—‘˜B“Ó  FÒ*Ð*Ð*Ü�—‘˜A“Ó 4Ò'Ð'Ð'Ü�—
‘
“Ó¤ a£Ò(Ð(Ð(Ü�Q˜˜F A˜;Ó'€AÜ�—
‘
“Ó¤ a£Ò(Ð(Ð(Ü�‹7”d˜1“gÒÐÐÜ
Œ:Ó,Ô-Ü
Œ:Ó-Ô.Ü
Œ:Ó-Ô.ÜˆQ�‹
€AÜÜ�q˜Ÿ™‘x §¡Ó(ö*Øð ”d˜1Ÿ:™: a›=Ó)Ñ)ò *ó +Ø./ò0ð 0ñ 0ùò *s   Æ"F?c                  óˆ  — t         j                  dd«      t         j                  dd¬«      cxk(  rkt         j                  dd¬«      cxk(  rPt         j                  ddd¬«      cxk(  r4t         j                  ddd¬«      cxk(  rt        g d¢g d	¢g d
¢g«      k(  sJ ‚ J ‚t         j                  ddd¬«      t        g d¢g d¢g d¢g«      k(  sJ ‚t        t        d„ «       t        t        d„ «       t        t        d„ «       t        t        d„ «       t         j                  dd¬«      t         j                  dd¬«      k(  sJ ‚y )NrA   r@   ©Ú
eigenvalue)Úsizer%  Úupper)Úband)r&  Úeigenvalr%  )r@   r?   r   )r   r@   r?   r	  Úlower)r@   r   r   rv  r·   c                  ó,   — t         j                  d«      S rf  ©r‰   Újordan_blockrC   rV   rN   r`   z#test_jordan_block.<locals>.<lambda>D  s   € Ô0×=Ñ=¸aÓ@€ rV   c                  ó.   — t         j                  dd«      S )Ng      @r@   r,  rC   rV   rN   r`   z#test_jordan_block.<locals>.<lambda>F  s   € Ô0×=Ñ=¸cÀ1ÓE€ rV   c                  ó.   — t         j                  d¬«      S )Nr@   r$  r,  rC   rV   rN   r`   z#test_jordan_block.<locals>.<lambda>H  s   € Ô0×=Ñ=ÈÐ=ÓK€ rV   c                  ó0   — t         j                  dd¬«      S )Nr@   rB   )r%  r)  r,  rC   rV   rN   r`   z#test_jordan_block.<locals>.<lambda>K  s   € Ô×*Ñ*Ø˜qð +ó "€ rV   )r&  r)  )r‰   r-  r$   r   rÉ  rC   rV   rN   Útest_jordan_blockr1  4  sV  € Ü×)Ñ)¨!¨QÓ/Ô3D×3QÑ3QÐRSÐ`aÐ3QÓ3bô Ü ×-Ñ-°1ÀÐ-ÓCôä ×-Ñ-¨a°¸Ð-ÓAôô !×-Ñ-Ø ¨qð .ó 2ôô
 ÚÚÚðó òð ñ ð ð ô ×)Ñ)¨!¨Q°WÐ)Ó=ÄÚÚÚðIó B ò  ð  ð  ô
 Œ:Ñ@ÔAä
Œ:ÑEÔFä
Œ:ÑKÔLä
Œ:ñ"ô#ô
 ×)Ñ)¨q¸QÐ)Ó?Ü×&Ñ&¨A¸Ð&Ó:ò;ð ;ñ ;rV   c            	      ó˜  ‡— t        ddgddgg«      } | j                  t        dgdgg«      «      t        dgdgg«      gk(  sJ ‚| j                  t        dgdgg«      d¬«      t        dt        d«      z  dz  gt        d«      dz  gg«      gk(  sJ ‚| j                  t        dgdgg«      t        dgdgg«      «      t        dgdgg«      t        t        d	d«      gt        d
d«      gg«      gk(  sJ ‚| j                  t        dgdgg«      t        dgdgg«      «      t        dgdgg«      gk(  sJ ‚| j                  t        dgdgg«      «      g k(  sJ ‚t        g d¢g d¢g d¢g«      }t        dgdgg«      t        dgdgg«      t        dgdgg«      gŠ |j                  ‰Ž t        dgdgg«      t        t        dd«      gt        dd«      gg«      gk(  sJ ‚t        g d¢«      t        g d¢«      t        g d¢«      gŠt	        t
        ˆfd„«       t        g d¢«      t        g d¢«      t        g d¢«      gŠt	        t
        ˆfd„«       y )Nr?   r@   rA   rB   T)Ú	normalizer�   rÏ   iôÿÿÿrŽ   r   )r¿   r?   r¿   )rA   rŽ   r  )r¾   r�   r@   rÉ   rÐ   é   é   r   r‘   )r?   rB   r�   c                  ó.   •— t        j                  ‰ ddiŽS ©NÚ	rankcheckT©r$   Úorthogonalize©Úvecss   €rN   r`   z$test_orthogonalize.<locals>.<lambda>d  ó   ø€ œv×3Ñ3°TÐJÀTÑJ€ rV   r�   rÑ   c                  ó.   •— t        j                  ‰ ddiŽS r7  r9  r;  s   €rN   r`   z$test_orthogonalize.<locals>.<lambda>g  r=  rV   )r$   r:  r   r   r   rÉ  )r�   rc   r<  s     @rN   Útest_orthogonalizer?  S  s`  ø€ Ü��A�˜˜A˜ÐÓ €AØ�?‰?œ6 A 3¨¨ *Ó-Ó.´6¸A¸3ÀÀ¸*Ó3EÐ2FÒFÐFÐFØ�?‰?œ6 A 3¨¨ *Ó-¸ˆ?Ó>Ü	�!”D˜“G‘)˜A‘+�¤ a£¨¡ Ð,Ó	-Ð.ò/ð /ð /à�?‰?œ6 A 3¨¨ *Ó-¬v¸°t¸a¸S°kÓ/BÓCÜ	�!��q�c�
Ó	œV¤h¨s°AÓ&6Ð%7¼(À1Àa».Ð9IÐ$JÓKÐLòMð Mð Mà�?‰?œ6 A 3¨¨ *Ó-¬v¸°t¸a¸S°kÓ/BÓCÜ	�"�˜�s�Ó	Ðòð ð à�?‰?œ6 A 3¨¨ *Ó-Ó.°"Ò4Ð4Ð4ä’	š:¢yÐ1Ó2€AÜ�R�D˜1˜#�;Ó¤¨"¨°¨s¨Ó!4´f¸r¸dÀRÀD¸\Ó6JÐK€DØˆ1�?‰?˜DÐ!Ü	�"�˜�s�Ó	œf¤x°°2£Ð&7¼(À2ÀrÓ:JÐ9KÐ%LÓMÐNòOð Oð Oô ’9Óœv¢iÓ0´&ºÓ2CÐD€DÜ
Œ:ÓJÔKä’9Óœv¢iÓ0´&ºÓ2CÐD€DÜ
Œ:ÓJÕKrV   c                  ó\  — t        j                  d«      \  } }| t        g d¢g d¢g d¢g«      k(  sJ ‚|t        g d¢g d¢g d¢g«      k(  sJ ‚t        j                  d«      \  } }| t        g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g«      k(  sJ ‚|t        g d¢g d¢g d¢g d
¢g d¢g d¢g d¢g«      k(  sJ ‚y )Nr?   )rÏ   r?   r   )r?   r   r?   )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?   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?   rA   )rA   r?   r   r   r   r   r   )r?   r@   r?   r   r   r   r   )r   r?   r?   r?   r   r   r   )r$   Ú	wilkinson)ÚwminusÚwpluss     rN   Útest_wilkinsonrD  i  sä   € ä×$Ñ$ QÓ'�M€FˆEØ”VÚ *Ú )Ú )ð+ó ,ò ,ð ,ð ,ð ”FÚ%Ú%Ú%ð'ó (ò (ð (ð (ô
 ×$Ñ$ QÓ'�M€FˆEØ”VÚ 8Ú 7Ú 7Ú 7Ú 7Ú 7âðó  ò  ð  ð  ð ”FÚ1Ú1Ú1Ú1Ú1Ú1Ú1ð3ó 4ò 4ð 4ñ 4rV   c                  ó„   — t        d«      \  } }t        dd| |g«      }|j                  | «      t        ddddg«      k(  sJ ‚y )Núx yr@   r?   r   )r   r‹   Údiffr$   ©r3   r4   r�   s      rN   Ú	test_diffrI  ‹  sD   € ä�5‹>�D€A€qÜ˜1˜a ! Q Ó(€Aà�6‰6�!‹9œ˜q ! a¨ VÓ,Ò,Ð,Ñ,rV   c                  ó–   — t        d«      \  } }t        dd| |g«      }|j                  | «      t        dd| dz  dz  || z  g«      k(  sJ ‚y )NrF  r@   r?   )r   r‹   Ú	integrater$   rH  s      rN   Útest_integraterL  “  sP   € Ü�5‹>�D€A€qÜ˜1˜a ! Q Ó(€AØ�;‰;�q‹>œV A q¨1¨a©4°©6°1°Q±3¨-Ó8Ò8Ð8Ñ8rV   c            	      óÒ  ‡‡— t        d«      \  } }t        dd| t        |«      z  | t        |«      z  | dz  g«      }t        dd| |g«      }t	        t        |«      |  t        |«      z  gt        |«      | t        |«      z  gd| z  dgg«      }|j                  |«      |k(  sJ ‚t        ddg d¢«      Št        ddg d¢«      Št        t        ˆfd„«       t        t        ˆˆfd	„«       y )
Nzrho,phirA   r?   r@   r   rF  rB   c                  ó<   •— ‰ j                  t        ddg«      «      S rQ  )Újacobianr$   rá   s   €rN   r`   z test_jacobian2.<locals>.<lambda>¦  s   ø€ ˜aŸj™j¬°°A°«Ó8€ rV   c                  ó&   •— ‰j                  ‰ «      S rZ   )rO  r  s   €€rN   r`   z test_jacobian2.<locals>.<lambda>§  s   ø€ ˜bŸk™k¨!›n€ rV   )r   r‹   r   r   r$   rO  r   rç  )ÚrhoÚphiÚXÚYÚJr�   rª   s        @@rN   Útest_jacobian2rV  ™  sÛ   ù€ Ü�yÓ!�H€CˆÜ˜1˜a #¤c¨#£h¡,°´C¸³H±¸cÀ1¹fÐ!EÓF€AÜ˜1˜a # s Ó,€AÜÜ	ˆS‹�C�4œ˜C›‘=Ð!Ü	ˆS‹�Cœ˜C›‘LÐ!Øˆc‰E˜qÐ!ðó 	€Að
 �:‰:�a‹=˜AÒÐÐä˜1˜a¢Ó.€AÜ	˜A˜q¢,Ó	/€BÜ
Œ9Ó8Ô9Ü
Œ9Ô,Õ-rV   c            	      ó    — t        d«      \  } }t        ddd| z  |g«      }|j                  | d«      t        ddt	        dd«      |g«      k(  sJ ‚y )NrF  r@   r?   r�   )r   r‹   Úlimitr$   r   rH  s      rN   Ú
test_limitrY  ª  sQ   € Ü�5‹>�D€A€qÜ˜1˜a ! A¡# q Ó*€AØ�7‰7�1�a‹=œF 1 a¬(°1°a«.¸!Ð)<Ó=Ò=Ð=Ñ=rV   c                  óˆ   ‡ ‡— t        g d¢g d¢g d¢g«      Š g d¢Št        t        ˆ ˆfd„«       t        t        ˆ ˆfd„«       y )Nr‘   r�   rÑ   r  c                  ó   •— ‰ ‰z  S rZ   rC   ©rJ   Úvs   €€rN   r`   z"test_issue_13774.<locals>.<lambda>³  ó   ø€ ˜a ™c€ rV   c                  ó   •— ‰‰ z  S rZ   rC   r\  s   €€rN   r`   z"test_issue_13774.<locals>.<lambda>´  r^  rV   )r$   r   rç  r\  s   @@rN   Útest_issue_13774r`  °  s-   ù€ Ü’	š9¢iÐ0Ó1€AÚ€AÜ
Œ9”kÔ"Ü
Œ9”kÕ"rV   c                  ó:  ‡‡— t        d«      Št        d«      Št        t        d„ «       t        t        ˆfd„«       t        t        ˆfd„«       t        t        ˆˆfd„«       t        d«      \  } }}t	        j
                  t        d| g‰«      «      t	        |  g«      k(  sJ ‚t	        j
                  t        d|| g‰«      «      t	        d	|  gd| gg«      k(  sJ ‚t	        j
                  t        d||| g‰«      «      t	        d	d	|  gdd	| gd	d| gg«      k(  sJ ‚y )
Nr3   r4   c                  ó,   — t        j                  d«      S ri  )r$   Ú	companionrC   rV   rN   r`   z test_companion.<locals>.<lambda>¹  s   € œv×/Ñ/°Ó2€ rV   c                  óD   •— t        j                  t        dg‰ «      «      S ri  ©r$   rc  r0   r•   s   €rN   r`   z test_companion.<locals>.<lambda>º  s   ø€ œv×/Ñ/´°a°S¸!³Ó=€ rV   c                  óF   •— t        j                  t        ddg‰ «      «      S r%  re  r•   s   €rN   r`   z test_companion.<locals>.<lambda>»  s   ø€ œv×/Ñ/´°a¸°V¸Q³Ó@€ rV   c                  óL   •— t        j                  t        ‰ ‰z  ‰ ‰g«      «      S rZ   re  )r3   r4   s   €€rN   r`   z test_companion.<locals>.<lambda>¼  s!   ø€ œv×/Ñ/´°Q°q±S¸1¸a¸&Ó0AÓB€ rV   zc0:3r?   r   )r   r   rÉ  r   r$   rc  r0   )Úc0Úc1rë  r3   r4   s      @@rN   Útest_companionrj  ¶  s  ù€ Üˆs‹€AÜˆs‹€AÜ
Œ:Ñ2Ô3Ü
Œ:Ó=Ô>Ü
Œ:Ó@ÔAÜ
Œ:ÔBÔCä˜“�J€BˆˆBÜ×ÑœD ! R ¨!Ó,Ó-´¸"¸¸³Ò>Ð>Ð>Ü×ÑœD ! R¨ ¨aÓ0Ó1Ü��R�C�˜1˜r˜c˜(Ð#Ó$ò%ð %ð %ä×ÑœD ! R¨¨R °!Ó4Ó5Ü��A˜�s�˜a  R C˜[¨1¨a°"°¨+Ð6Ó7ò8ð 8ñ 8rV   c            	      óP  — t        d«      \  } }}t        | ||g«      }|j                  t        | ||gg d¢«      «      }|t        dgdgdgg«      k(  sJ ‚t        | | | | | g| | | | | g| | | | | gg«      }|j                  t        | gdg«      «      }|t        g d¢g d¢g d¢g«      k(  sJ ‚y )Nzx, y zr‘   r?   r@   rA   )r?   r?   r?   r?   r?   )r   r$   r¸  Úzip)r3   r4   r5   r  r  s        rN   Útest_issue_10589rm  Å  s½   € Ü�hÓ�G€A€qˆ!Ü	��A�q�	Ó	€BØ	�‰”�a˜˜A�Y¢	Ó*Ó	+€BØ”˜!˜˜q˜c A 3˜Ó(Ò(Ð(Ð(ä	�!�Q˜˜1˜a� 1 a¨¨A¨q /°A°q¸!¸QÀ°?ÐCÓ	D€BØ	�‰”�a�S˜1˜#“Ó	€BØ”šª/º?ÐKÓLÒLÐLÑLrV   c                  óª   —  G d„ dt         «      } t        ddg d¢«      } | ddg d¢«      }||z  }t        || «      sJ ‚|t        ddgddgg«      k(  sJ ‚y )	Nc                   ó*   — e Zd Zej                  dz   Zy)útest_rmul_pr19860.<locals>.Foog{®Gáz„?N)rS   rT   rU   r,   Ú_op_priorityrC   rV   rN   ÚFoorp  Ð  s   „ Ø)×6Ñ6¸Ñ=‰rV   rr  r@   rF  r½   r  ræ  rÿ  )r.   r$   rG   )rr  r¥   r¦   r§   s       rN   Útest_rmul_pr19860rs  Ï  sh   € ô>Ô"ô >ô 	ˆq�!’\Ó"€AÙˆAˆq’,Ó€Að 	
ˆ!‰€Aä�a˜ÔÐÐØ”˜˜B˜ " b Ð*Ó+Ò+Ð+Ñ+rV   c                  óœ   ‡ ‡— t        ddgddgg«      Š t        ddgddgg«      Št        t        ˆ ˆfd„«       t        t        ˆ ˆfd„«       y )Nr?   r@   rA   rB   c                  ó   •— ‰‰ z   S rZ   rC   ©rÙ   rÚ   s   €€rN   r`   z"test_issue_18956.<locals>.<lambda>á  ó   ø€ ˜a !™e€ rV   c                  ó   •— ‰ ‰z   S rZ   rC   rv  s   €€rN   r`   z"test_issue_18956.<locals>.<lambda>â  rw  rV   )ÚArrayr$   r   rç  rv  s   @@rN   Útest_issue_18956rz  Þ  sD   ù€ Ü��1ˆv˜˜1�vÐÓ€AÜ��1��q˜�eˆ}Ó€AÜ
Œ9”mÔ$Ü
Œ9”mÕ$rV   c                  ó†   —  G d„ dt         «      } t        ddddg«      }| | «       k7  sJ ‚ G d„ d| «      }| |«       k(  sJ ‚y )Nc                   ó   — e Zd Zd„ Zd„ Zy)útest__eq__.<locals>.Myc              3   ó   K  — d–— d–— y ­wrQ  rC   ©Úselfs    rN   Ú__iter__ztest__eq__.<locals>.My.__iter__ç  s   è ø€ ØŠGØŠGØùs   ‚
c                 ó   — t        | «      |   S rZ   )r”   )r€  r^   s     rN   Ú__getitem__z"test__eq__.<locals>.My.__getitem__ë  s   € Ü˜“:˜a‘=Ð rV   N)rS   rT   rU   r�  rƒ  rC   rV   rN   ÚMyr}  æ  s   „ ò	ó	!rV   r„  r@   r?   c                   ó   — e Zd Zd„ Zy)útest__eq__.<locals>.My_sympyc                 ó   — t        | «      S rZ   rü  r  s    rN   Ú_sympy_z$test__eq__.<locals>.My_sympy._sympy_ð  s   € Ü˜$“<ÐrV   N)rS   rT   rU   rˆ  rC   rV   rN   ÚMy_sympyr†  ï  s   „ ó	 rV   r‰  )Úobjectr$   )r„  r¥   r‰  s      rN   Ú
test__eq__r‹  å  sL   € ô!ŒVô !ô 	ˆq�!�a˜�VÓ€AØ‘“Š9Ðˆ9ô �2ô  ð ‘“
Š?Ð‰?rV   )¨Úsympy.testing.pytestr   r   r   Úsympy.assumptionsr   Úsympy.core.exprr   Úsympy.core.addr   Úsympy.core.functionr	   Úsympy.core.kindr
   r   Úsympy.core.numbersr   r   r   r   r   Úsympy.core.singletonr   Úsympy.core.symbolr   r   Ú$sympy.functions.elementary.complexesr   Ú&sympy.functions.elementary.exponentialr   Ú(sympy.functions.elementary.miscellaneousr   Ú(sympy.functions.elementary.trigonometricr   r   Úsympy.matrices.exceptionsr   r   Úsympy.matrices.kindr   rD   r   r   r   r   r    r!   r"   rE   r#   Úsympy.matricesr$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   Úsympy.polys.polytoolsr0   Úsympy.utilities.iterablesr1   Ú#sympy.tensor.array.dense_ndim_arrayr2   ry  Ú	sympy.abcr3   r4   r5   rO   rQ   rd   ri   rk   rp   rt   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/  r6  r=  rA  rD  rI  rL  rO  rS  rU  rY  r]  rc  rk  rp  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"  r1  r?  rD  rI  rL  rV  rY  r`  rj  rm  rs  rz  r‹  rC   rV   rN   ú<module>r      sh  ð÷ GÑ Få Ý  Ý Ý (ß 5ß ;Õ ;Ý "ß -Ý 4Ý 6Ý 9ß =ß FÝ *÷7÷ 7ñ 7õ 3÷÷ ÷ ó õ 'Ý -Ý Pç Ñ ò:1ñB Óñ ô˜N¨O¸]ô ÷ò
=ò3ñ Óñ ô˜~¨Ð@Pô ÷ò
@ò6ñ Óñ ô˜~¨Ð@Pô ÷ò
@ò6ñ Óñ ô˜~¨Ð@Pô ÷ò
@ò6ñ Óñ ô˜N¨O¸]ô ÷ñ
 Óñ ô˜^¨_¸nô ÷ò
?ò&Pò!ò5òòò
Mò&ò,ò ò
Pò/ò"òòNò.ò 4ò'ò*'ò,"ò@òò*ò3ò@#ò=ò$ò"òòò ò
%òJòò0ò(òò$ò$'ò9ò
'ò
:òòòOò9ò$	'òò&ò">òHòBòBFò
&òPòfò21ò Fò6ò
7ò
?ò
@òAòBòLò^0ò(;ò>Lò,4ðD ñ-ó ð-ò9ò.ò">ò#ò8òMò,ò%ó÷{#ñ ú÷ñ ú÷ñ ú÷ñ ú÷ñ ú÷
ñ úsH   Ã	I;Ã,JÄJÄ2J"ÅJ/Å2J<É;JÊJÊJÊ"J,Ê/J9Ê<K