§
    OŠtjö  ã                   óì  — 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$„ Z5d%S )&é    )Ú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                  ó˜  — t          t          t          t          ¦  «        t          ¦  «        sJ ‚t          t          t          ¦  «                             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 ‚d S ©N)Ú
isinstancer   r   r   Úsubsr   ÚshapeÚnÚmÚkÚis_ZeroMatrixr   r   r   Úis_Identity© ó    úm/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/matrices/expressions/tests/test_kronecker.pyÚtest_KroneckerProductr&      sâ   € ÝÕ&¥q­!Ñ,Ô,Õ.>Ñ?Ô?Ð?Ð?Ð?Ý�A�qÑ!Ô!×&Ò&¥q­!Ñ,Ô,Õ0@ÅÅAÑ0FÔ0FÒFÐFÐFÐFÝ�A�qÑ!Ô!Ô'­A­a©Cµµ1±¨:Ò5Ð5Ð5Ð5Ý�Q¥Ñ"Ô"Õ%5µq°b½!Ñ%<Ô%<Ñ<ÔKÐKÐKÐKÝ�Q¥Ñ"Ô"Õ%5µa´c½1¼3Ñ%?Ô%?Ñ?ÔLÐLÐ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 ‚d S )Nr   r   é   )r   r
   r   r   r   r#   r$   r%   Útest_KroneckerProduct_identityr)   !   sf   € Ý�H¥Q™KœK­µ!©¬Ñ5Ô5½Å!ÅAÁ#¹¼ÒFÐFÐFÐFÝ�C ™FœF¥C¨¡F¤FÑ+Ô+­s°1©v¬vÒ5Ð5Ð5Ð5Ð5Ð5r$   c                  óÚ  — t          ddd¦  «        } t          ddd¦  «        }t          | |¦  «        }|j        dk    s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 ‚d S )	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/   &   sr  € Ý�S˜!˜QÑÔ€AÝ�S˜!˜QÑÔ€AÝ	˜!˜QÑ	Ô	€BØŒ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                  óà  — t          t          t          z  t          ¦  «                             ¦   «         t           t          t                               ¦   «         t                               ¦   «         ¦  «        z  k    sJ ‚t          t
          t          ¦  «                             ¦   «         t          t
                               ¦   «         t                               ¦   «         ¦  «        k    sJ ‚d S r   )r   r   r   r   ÚadjointÚmat1Úmat2r   r#   r$   r%   Útest_tensor_product_adjointr4   5   s¬   € Ý�A�a™C¥Ñ#Ô#×+Ò+Ñ-Ô-Ý	
ˆÕ�AŸIšI™KœK­¯ª©¬Ñ5Ô5Ñ5ò6ð 6ð 6ð 6å�D¥$Ñ'Ô'×/Ò/Ñ1Ô1Ý�$Ÿ,š,™.œ.­$¯,ª,©.¬.Ñ9Ô9ò:ð :ð :ð :ð :ð :r$   c                  óà  — t          t          t          z  t          ¦  «                             ¦   «         t           t          t                               ¦   «         t                               ¦   «         ¦  «        z  k    sJ ‚t          t
          t          ¦  «                             ¦   «         t          t
                               ¦   «         t                               ¦   «         ¦  «        k    sJ ‚d S r   )r   r   r   r   Ú	conjugater2   r3   r   r#   r$   r%   Útest_tensor_product_conjugater7   <   s°   € Ý�A�a™C¥Ñ#Ô#×-Ò-Ñ/Ô/Ý	
ˆÕ�AŸKšK™MœM­1¯;ª;©=¬=Ñ9Ô9Ñ9ò:ð :ð :ð :å�D¥$Ñ'Ô'×1Ò1Ñ3Ô3Ý�$Ÿ.š.Ñ*Ô*­D¯NªNÑ,<Ô,<Ñ=Ô=ò>ð >ð >ð >ð >ð >r$   c                  óÞ  — t          t          t          z  t          ¦  «                             ¦   «         t          t          t                               ¦   «         t                               ¦   «         ¦  «        z  k    sJ ‚t          t
          t          ¦  «                             ¦   «         t          t
                               ¦   «         t                               ¦   «         ¦  «        k    sJ ‚d S r   )r   r   r   r   Ú	transposer2   r3   r   r#   r$   r%   Útest_tensor_product_transposer:   C   s®   € Ý�A�a™C¥Ñ#Ô#×-Ò-Ñ/Ô/Ý	Õ
�1Ÿ;š;™=œ=­!¯+ª+©-¬-Ñ
8Ô
8Ñ8ò9ð 9ð 9ð 9å�D¥$Ñ'Ô'×1Ò1Ñ3Ô3Ý�$Ÿ.š.Ñ*Ô*­D¯NªNÑ,<Ô,<Ñ=Ô=ò>ð >ð >ð >ð >ð >r$   c                  ód  — 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 ‚d S r   )r   r   r   r   r   r#   r$   r%   Ú$test_KroneckerProduct_is_associativer<   J   s¡   € Ý�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 ‚d S r   )r   Úxr   r   r#   r$   r%   Ú!test_KroneckerProduct_is_bilinearr?   Q   sf   € Ý�Q�q™S¥!Ñ$Ô$­Õ*;½A½qÑ*AÔ*AÑ(AÒAÐAÐAÐAÝ�Q¥¥!¡Ñ$Ô$­Õ*;½A½qÑ*AÔ*AÑ(AÒAÐAÐAÐAÐAÐAr$   c                  óÒ   — t          t          t          ¦  «        } t          | ¦  «        t          t          ¦  «        t          z  t          t          ¦  «        t
          z  z  k    sJ ‚d S r   )r   r   r   r   r   r   ©r.   s    r%   Ú!test_KroneckerProduct_determinantrB   V   sG   € Ý	�1�aÑ	 Ô	 €BÝˆr‰7Œ7•c�!‘f”f�a‘i¥#¥a¡&¤&­!¡)Ñ+Ò+Ð+Ð+Ð+Ð+Ð+r$   c                  ó²   — t          t          t          ¦  «        } t          | ¦  «        t          t          ¦  «        t          t          ¦  «        z  k    sJ ‚d S r   )r   r   r   r   rA   s    r%   Útest_KroneckerProduct_tracerD   [   s?   € Ý	�1�aÑ	 Ô	 €BÝ�‰9Œ9��a™œ¥¥q¡¤Ñ)Ò)Ð)Ð)Ð)Ð)Ð)r$   c                  ó¼   — t          t          t          ¦  «        t          t          t          ¦  «        k    sJ ‚t          t          t          ¦  «        j        du sJ ‚d S )NF)r   r   r   Úis_commutativer#   r$   r%   Ú&test_KroneckerProduct_isnt_commutativerG   `   sL   € Ý�A�qÑ!Ô!Õ%5µa½Ñ%;Ô%;Ò;Ð;Ð;Ð;Ý�A�qÑ!Ô!Ô0°EÐ9Ð9Ð9Ð9Ð9Ð9r$   c                  ó¢   — t          t          t          z  dt          z  ¦  «        t          dz  t	          t          t          ¦  «        z  k    sJ ‚d S )Nr   )r   r>   r   r   r   r#   r$   r%   Ú/test_KroneckerProduct_extracts_commutative_partrI   e   sQ   € Ý�Q¥™U A­¡EÑ*Ô*­aØ	ñ/
Ý�Q¥Ñ"Ô"ñ/#ò #ð #ð #ð #ð #ð #r$   c                  óæ   — t          t          t          ¦  «        } |                      ¦   «         t          t                               ¦   «         t                               ¦   «         ¦  «        k    sJ ‚d S r   )r   r   r   ÚinverserA   s    r%   Útest_KroneckerProduct_inverserL   j   sK   € Ý	�1�aÑ	 Ô	 €BØ�:Š:‰<Œ<Õ,­Q¯YªY©[¬[½!¿)º)¹+¼+ÑFÔFÒFÐFÐFÐFÐFÐFr$   c                  óî   — t          t          t          ¦  «        } t          t          t          ¦  «        }t          | |z  ¦  «        t          t          t          z  t          t          z  ¦  «        k    sJ ‚d S r   )r   r   r   r   r   r   )Úkp1Úkp2s     r%   Ú!test_KroneckerProduct_combine_addrP   o   sV   € Ý
�A�qÑ
!Ô
!€CÝ
�A�qÑ
!Ô
!€CÝ˜S ™WÑ%Ô%Õ):½1½Q¹3ÅÅ!ÁÑ)DÔ)DÒDÐDÐDÐDÐDÐDr$   c                  ó2  — t          dt          t          ¦  «        } t          dt          t          ¦  «        }t          t          | ¦  «        }t          t
          |¦  «        }t          ||z   ¦  «        t          t          t
          z   | |z   ¦  «        k    sJ ‚d S )Nr+   r,   )r	   r   r   r   r   r   r   )r+   r,   rN   rO   s       r%   Ú!test_KroneckerProduct_combine_mulrR   u   sx   € Ý�S�!�QÑÔ€AÝ�S�!�QÑÔ€AÝ
�A˜qÑ
!Ô
!€CÝ
�A˜qÑ
!Ô
!€CÝ˜S ™WÑ%Ô%Õ):½1½Q¹3ÀÀ!ÁÑ)DÔ)DÒDÐDÐ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 ‚d S )Nr+   r,   r   )	r	   r   r   r   r>   r   r   ÚTr   ©r+   r,   s     r%   Ú!test_KroneckerProduct_combine_powrV   }   s•  € Ý�S�!�QÑÔ€AÝ�S�!�QÑÔ€AÝÕ-Ø	ˆ1ñô Ýññ ô Ý% a­¡d¨A­q©DÑ1Ô1ò2ð 2ð 2ð 2å�QÕ!1°!°QÑ!7Ô!7Ø !ñ""ñ "ñ #ô #Ý&'Õ*:¸1¸a¹4ÀÀAÁÑ*FÔ*FÑ&FòGð Gð Gð GåÝ	Õ˜a Ñ#Ô# QÑ&Ñ'Õ*:½1½aÑ*@Ô*@Ñ@ñBô BÝEFÕIYÐZ[Ð]^ÑZ^ÕabÑZbÐdeÐghÑdhÕklÑdlÑImÔImÑEmònð nð nð nõ Õ-­aµ´Ñ5Ô5½Ñ:Ñ;Ô;Õ?OÕPQÕSTÔSVÑ?WÔ?WÕ[\Ñ?\Ò\Ð\Ð\Ð\Ð\Ð\r$   c                  ór  — t          dt          t          ¦  «        } t          dt          t          ¦  «        }t          | |z   |t          z   ¦  «                             d¬¦  «        t          | |¦  «        t          | t          ¦  «        z   t          ||¦  «        z   t          |t          ¦  «        z   k    sJ ‚d S )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ÔGÝ˜˜AÑÔÕ!1°!µQÑ!7Ô!7Ñ7Ý˜˜AÑÔñ	Ý!1°!µQÑ!7Ô!7ñ	8ò8ð 8ð 8ð 8ð 8ð 8r$   c            	      ó  — t          dt          t          ¦  «        } t          dt          t          ¦  «        }t          | |¦  «                             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 ‚d S )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Ô4FÍÍEÕRSÕTUÑRUÉJÌJÕXYÑHZÔHZÐ4ZÔ2[Ð\]Õ^aÕbcÕefÑ^gÔ^gÕilÕmnÕpqÑirÔirÐ^rÔ\sÑ2sÒsÐsÐsÐ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Ð 5Ð 5Ð 5Ð 5Ð 5Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1ðEð Eð Eð Eð Eð Eð Eð Eð Eð Eð
 €v��1�q‘5ˆz˜A ™E 1˜:Ð&Ñ'Ô'€Ø€v��A‘�qˆz˜A ™E 1˜:Ð&Ñ'Ô'€à ˜Ð!2Ñ3Ô3Ñ €€1€aˆˆAˆq�!�QØ€L��a˜ÑÔ€Ø€L��a˜ÑÔ€Ø€L��a˜ÑÔ€Ø€L��a˜ÑÔ€Ø€L��a˜ÑÔ€ðMð Mð Mð6ð 6ð 6ð
ð ð ð:ð :ð :ð>ð >ð >ð>ð >ð >ð,ð ,ð ,ðBð Bð Bð
,ð ,ð ,ð
*ð *ð *ð
:ð :ð :ð
#ð #ð #ð
Gð Gð Gð
Eð Eð EðEð Eð Eð
]ð 
]ð 
]ð8ð 8ð 8ðtð tð tð tð tr$   