Ë
    7^(hö  ã                   óº  — 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 d dlmZmZ d dlmZmZmZ  e	d	d
ez  gd	ez   dgg«      Z e	d
ez  dgdez  d
gg«      Z ed«      \  ZZZZZZZZ edee«      Z edee«      Z  edee«      Z! edee«      Z" edee«      Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0d „ Z1d!„ Z2d"„ Z3d#„ Z4d$„ Z5y%)&é    )ÚMod)ÚI)Úsymbols)Úfloor)ÚMatrixÚeye)ÚMatrixSymbolÚIdentity)ÚdetÚtrace)ÚKroneckerProductÚkronecker_productÚcombine_kroneckeré   é   é   é   zi,j,k,n,m,o,p,xÚZÚWÚAÚBÚCc                  óF  — t        t        t        t        «      t        «      sJ ‚t        t        t        «      j	                  t        t
        «      t        t
        t        «      k(  sJ ‚t        t        t
        «      j                  t        t        z  t        t        z  fk(  sJ ‚t        t        t
        «      t        t         t
        «      z   j                  sJ ‚t        t        t        «      t        t        j                  t        j                  «      z  j                  sJ ‚y ©N)Ú
isinstancer   r   r   Úsubsr   ÚshapeÚnÚmÚkÚis_ZeroMatrixr   r   r   Úis_Identity© ó    úm/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/matrices/expressions/tests/test_kronecker.pyÚtest_KroneckerProductr&      s¼   € ÜÔ&¤q¬!Ó,Ô.>Ô?Ð?Ð?ÜœAœqÓ!×&Ñ&¤q¬!Ó,Ô0@ÄÄAÓ0FÒFÐFÐFÜœAœqÓ!×'Ñ'¬A¬a©C´´1±¨:Ò5Ð5Ð5ÜœQ¤Ó"Ô%5´q°b¼!Ó%<Ñ<×KÒKÐKÐKÜœQ¤Ó"Ô%5´a·c±c¼1¿3¹3Ó%?Ñ?×LÒLÐLÑLr$   c                  óÚ   — t        t        t        «      t        t        «      «      t        t        t        z  «      k(  sJ ‚t        t	        d«      t	        d«      «      t	        d«      k(  sJ ‚y )Nr   r   é   )r   r
   r   r   r   r#   r$   r%   Útest_KroneckerProduct_identityr)   !   sH   € ÜœH¤Q›K¬´!«Ó5¼Ä!ÄAÁ#»ÒFÐFÐFÜœC ›F¤C¨£FÓ+¬s°1«vÒ5Ð5Ñ5r$   c                  óö  — t        ddd«      } t        ddd«      }t        | |«      }|j                  dk(  sJ ‚|j                  «       t	        | d   |d   z  | d   |d   z  | d   |d   z  | d   |d   z  g| d   |d   z  | d   |d   z  | d   |d   z  | d   |d   z  g| d   |d   z  | d   |d   z  | d   |d   z  | d   |d   z  g| d   |d   z  | d   |d   z  | d   |d   z  | d   |d   z  gg«      k(  sJ ‚y )	NÚXr   ÚY)r   r   )r   r   )r   r   )r   r   )r   r   )r	   r   r   Úas_explicitr   )r+   r,   Úkps      r%   Útest_KroneckerProduct_explicitr/   &   sQ  € Ü�S˜!˜QÓ€AÜ�S˜!˜QÓ€AÜ	˜!˜QÓ	€BØ�8‰8�vÒÐÐØ�>‰>Óœvàˆt‰W�Q�t‘W‰_˜a ™g a¨¡g™o¨q°©w°q¸±w©ÀÀ$ÁÈÈ$ÉÁÐPØˆt‰W�Q�t‘W‰_˜a ™g a¨¡g™o¨q°©w°q¸±w©ÀÀ$ÁÈÈ$ÉÁÐPØˆt‰W�Q�t‘W‰_˜a ™g a¨¡g™o¨q°©w°q¸±w©ÀÀ$ÁÈÈ$ÉÁÐPØˆt‰W�Q�t‘W‰_˜a ™g a¨¡g™o¨q°©w°q¸±w©ÀÀ$ÁÈÈ$ÉÁÐPð		
ó ò ð ñ r$   c                  óv  — t        t        t        z  t        «      j	                  «       t         t        t        j	                  «       t        j	                  «       «      z  k(  sJ ‚t        t
        t        «      j	                  «       t        t
        j	                  «       t        j	                  «       «      k(  sJ ‚y r   )r   r   r   r   ÚadjointÚmat1Úmat2r   r#   r$   r%   Útest_tensor_product_adjointr4   5   s~   € ÜœAœa™C¤Ó#×+Ñ+Ó-Ü	
ˆÔœAŸI™I›K¬¯©«Ó5Ñ5ò6ð 6ð 6äœD¤$Ó'×/Ñ/Ó1Üœ$Ÿ,™,›.¬$¯,©,«.Ó9ò:ð :ñ :r$   c                  óv  — t        t        t        z  t        «      j	                  «       t         t        t        j	                  «       t        j	                  «       «      z  k(  sJ ‚t        t
        t        «      j	                  «       t        t
        j	                  «       t        j	                  «       «      k(  sJ ‚y r   )r   r   r   r   Ú	conjugater2   r3   r   r#   r$   r%   Útest_tensor_product_conjugater7   <   s€   € ÜœAœa™C¤Ó#×-Ñ-Ó/Ü	
ˆÔœAŸK™K›M¬1¯;©;«=Ó9Ñ9ò:ð :ð :äœD¤$Ó'×1Ñ1Ó3Üœ$Ÿ.™.Ó*¬D¯N©NÓ,<Ó=ò>ð >ñ >r$   c                  ót  — t        t        t        z  t        «      j	                  «       t        t        t        j	                  «       t        j	                  «       «      z  k(  sJ ‚t        t
        t        «      j	                  «       t        t
        j	                  «       t        j	                  «       «      k(  sJ ‚y r   )r   r   r   r   Ú	transposer2   r3   r   r#   r$   r%   Útest_tensor_product_transposer:   C   s~   € ÜœAœa™C¤Ó#×-Ñ-Ó/Ü	Ô
œ1Ÿ;™;›=¬!¯+©+«-Ó
8Ñ8ò9ð 9ð 9äœD¤$Ó'×1Ñ1Ó3Üœ$Ÿ.™.Ó*¬D¯N©NÓ,<Ó=ò>ð >ñ >r$   c                  ó  — t        t        t        t        t        «      «      t        t        t        t        «      t        «      k(  sJ ‚t        t        t        t        t        «      «      t	        t        t        t        «      k(  sJ ‚y r   )r   r   r   r   r   r#   r$   r%   Ú$test_KroneckerProduct_is_associativer<   J   so   € ÜœQÔ 1Ü	Œ1ó!ó Ü#Ô$5´a¼Ó$;¼QÓ?ò@ð @ð @äœQÔ 1Ü	Œ1ó!ó Ü"¤1¤a¬Ó+ò,ð ,ñ ,r$   c                  óè   — t        t        t        z  t        «      t        t        t        t        «      z  k(  sJ ‚t        t        t        t        z  «      t        t        t        t        «      z  k(  sJ ‚y r   )r   Úxr   r   r#   r$   r%   Ú!test_KroneckerProduct_is_bilinearr?   Q   sN   € ÜœQœq™S¤!Ó$¬Ô*;¼A¼qÓ*AÑ(AÒAÐAÐAÜœQ¤¤!¡Ó$¬Ô*;¼A¼qÓ*AÑ(AÒAÐAÑAr$   c                  ó¢   — t        t        t        «      } t        | «      t        t        «      t        z  t        t        «      t
        z  z  k(  sJ ‚y r   )r   r   r   r   r   r   ©r.   s    r%   Ú!test_KroneckerProduct_determinantrB   V   s5   € Ü	œ1œaÓ	 €BÜˆr‹7”cœ!“fœa‘i¤#¤a£&¬!¡)Ñ+Ò+Ð+Ñ+r$   c                  ó†   — t        t        t        «      } t        | «      t        t        «      t        t        «      z  k(  sJ ‚y r   )r   r   r   r   rA   s    r%   Útest_KroneckerProduct_tracerD   [   s-   € Ü	œ1œaÓ	 €BÜ�‹9œœa›¤¤q£Ñ)Ò)Ð)Ñ)r$   c                  óž   — t        t        t        «      t        t        t        «      k7  sJ ‚t        t        t        «      j                  du sJ ‚y )NF)r   r   r   Úis_commutativer#   r$   r%   Ú&test_KroneckerProduct_isnt_commutativerG   `   s:   € ÜœAœqÓ!Ô%5´a¼Ó%;Ò;Ð;Ð;ÜœAœqÓ!×0Ñ0°EÑ9Ð9Ñ9r$   c                  ó‚   — t        t        t        z  dt        z  «      t        dz  t	        t        t        «      z  k(  sJ ‚y )Nr   )r   r>   r   r   r   r#   r$   r%   Ú/test_KroneckerProduct_extracts_commutative_partrI   e   s<   € ÜœQ¤™U A¬¡EÓ*¬aØ	ñ/
ÜœQ¤Ó"ñ/#ò #ð #ñ #r$   c                  ó²   — t        t        t        «      } | j                  «       t        t        j                  «       t        j                  «       «      k(  sJ ‚y r   )r   r   r   ÚinverserA   s    r%   Útest_KroneckerProduct_inverserL   j   s6   € Ü	œ1œaÓ	 €BØ�:‰:‹<Ô,¬Q¯Y©Y«[¼!¿)¹)»+ÓFÒFÐFÑFr$   c                  óº   — t        t        t        «      } t        t        t        «      }t        | |z  «      t        t        t        z  t        t        z  «      k(  sJ ‚y r   )r   r   r   r   r   r   )Úkp1Úkp2s     r%   Ú!test_KroneckerProduct_combine_addrP   o   sA   € Ü
œAœqÓ
!€CÜ
œAœqÓ
!€CÜ˜S ™WÓ%Ô):¼1¼Q¹3ÄÄ!ÁÓ)DÒDÐDÑDr$   c                  óî   — t        dt        t        «      } t        dt        t        «      }t        t        | «      }t        t
        |«      }t        ||z   «      t        t        t
        z   | |z   «      k(  sJ ‚y )Nr+   r,   )r	   r   r   r   r   r   r   )r+   r,   rN   rO   s       r%   Ú!test_KroneckerProduct_combine_mulrR   u   s]   € Ü�Sœ!œQÓ€AÜ�Sœ!œQÓ€AÜ
œA˜qÓ
!€CÜ
œA˜qÓ
!€CÜ˜S ™WÓ%Ô):¼1¼Q¹3ÀÀ!ÁÓ)DÒDÐDÑDr$   c                  ó¨  — t        dt        t        «      } t        dt        t        «      }t        t        | |«      t        z  «      t        | t        z  |t        z  «      k(  sJ ‚t        t        t        | |«      dz  z  «      t        t        | dz  |dz  «      z  k(  sJ ‚t        t        t        | |«      dz  z  t        t
        t        «      z  «      t        t        | dz  t
        z  |dz  t        z  «      z  k(  sJ ‚t        t        t
        t        j                  «      t        z  «      t        t
        t        j                  «      t        z  k(  sJ ‚y )Nr+   r,   r   )	r	   r   r   r   r>   r   r   ÚTr   ©r+   r,   s     r%   Ú!test_KroneckerProduct_combine_powrV   }   sJ  € Ü�Sœ!œQÓ€AÜ�Sœ!œQÓ€AÜÔ-Ø	ˆ1óÜñó Ü% a¬¡d¨A¬q©DÓ1ò2ð 2ð 2äœQÔ!1°!°QÓ!7Ø !ñ""ñ "ó #Ü&'Ô*:¸1¸a¹4ÀÀAÁÓ*FÑ&FòGð Gð GäÜ	Ô˜a Ó# QÑ&Ñ'Ô*:¼1¼aÓ*@Ñ@óBÜEFÔIYÐZ[Ð]^ÑZ^ÔabÑZbÐdeÐghÑdhÔklÑdlÓImÑEmònð nð nô Ô-¬a´·±Ó5¼Ñ:Ó;Ô?OÔPQÔST×SVÑSVÓ?WÔ[\Ñ?\Ò\Ð\Ñ\r$   c                  ó   — t        dt        t        «      } t        dt        t        «      }t        | |z   |t        z   «      j	                  d¬«      t        | |«      t        | t        «      z   t        ||«      z   t        |t        «      z   k(  sJ ‚y )Nr+   r,   T)Úkroneckerproduct)r	   r   r   r   ÚexpandrU   s     r%   Útest_KroneckerProduct_expandrZ   Š   s‚   € Ü�Sœ!œQÓ€AÜ�Sœ!œQÓ€Aä˜A ™E 1¤q¡5Ó)×0Ñ0À$Ð0ÓGÜ˜˜AÓÔ!1°!´QÓ!7Ñ7Ü˜˜AÓñ	Ü!1°!´QÓ!7ñ	8ò8ð 8ñ 8r$   c            	      ó”  — t        dt        t        «      } t        dt        t        «      }t        | |«      j                  t        t        «      | t        t        t        t        z  «      t        «      t        t        t        t        z  «      t        «      f   |t        t        t        «      t        t        t        «      f   z  k(  sJ ‚y )Nr   r   )r	   r   r   ÚoÚpr   Ú_entryÚiÚjr   r   )r   r   s     r%   Útest_KroneckerProduct_entryra   ’   s�   € Ü�Sœ!œQÓ€AÜ�Sœ!œQÓ€Aä˜A˜qÓ!×(Ñ(¬¬AÓ.°!´C¼¼aÄ¹c»
ÄAÓ4FÌÌEÔRSÔTUÑRUËJÔXYÓHZÐ4ZÑ2[Ð\]Ô^aÔbcÔefÓ^gÔilÔmnÔpqÓirÐ^rÑ\sÑ2sÒsÐsÑsr$   N)6Úsympy.core.modr   Úsympy.core.numbersr   Úsympy.core.symbolr   Ú#sympy.functions.elementary.integersr   Úsympy.matrices.denser   r   Úsympy.matricesr	   r
   Úsympy.matrices.expressionsr   r   Ú$sympy.matrices.expressions.kroneckerr   r   r   r2   r3   r_   r`   r    r   r   r\   r]   r>   r   r   r   r   r   r&   r)   r/   r4   r7   r:   r<   r?   rB   rD   rG   rI   rL   rP   rR   rV   rZ   ra   r#   r$   r%   ú<module>rj      s)  ðÝ Ý  Ý %Ý 5ß .ß 1ß 1÷Eñ Eñ
 ��1�q‘5ˆz˜A ™E 1˜:Ð&Ó'€Ù��A‘�qˆz˜A ™E 1˜:Ð&Ó'€á Ð!2Ó3Ñ €€1€aˆˆAˆq�!�QÙ��a˜Ó€Ù��a˜Ó€Ù��a˜Ó€Ù��a˜Ó€Ù��a˜Ó€òMò6ò
ò:ò>ò>ò,òBò
,ò
*ò
:ò
#ò
Gò
EòEò
]ò8ótr$   