
    sg                        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     b/var/www/html/venv/lib/python3.12/site-packages/sympy/matrices/expressions/tests/test_kronecker.pytest_KroneckerProductr&      s    &q!,.>???Aq!&&q!,0@A0FFFFAq!''AaC1:555Q"%5qb!%<<KKKKQ"%5acc133%??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    HQK!5!A#FFFCFCF+s1v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88v>>vtWQtW_agagoqwqw$$PtWQtW_agagoqwqw$$PtWQtW_agagoqwqw$$PtWQtW_agagoqwq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~    AaC#++-	
AIIK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    AaC#--/	
AKKM1;;=99: : :D$'113$..*DNN,<=> > >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~    AaC#--/	
1;;=!++-
889 9 9D$'113$..*DNN,<=> > >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! #$5a$;Q?@ @ @Q 1	1! "1a+, , ,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    QqS!$*;Aq*A(AAAAQ!$*;Aq*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    	1a	 Br7c!fai#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-    	1a	 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:    Aq!%5a%;;;;Aq!00E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UA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    	1a	 B::<,QYY[!))+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    
Aq
!C
Aq
!CSW%):1Q3!)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
Aq
!C
Aq
!CSW%):1Q3!)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dAqD12 2 2Q!1!Q!7 !"" " #&'*:1a4A*F&FG G G	a#Q&'*:1a*@@BEFIYZ[]^Z^abZbdeghdhkldlImEmn n n -a5:;?OPQSTSVSV?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E1q5)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Aq!((A.!Cac
A4FERSTURUJXYHZ4Z2[\]^abcef^gilmnpqir^r\s2s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
 1q5zAE1:&'AqzAE1:&' !23 1aAq!QaaaaaM6
:>>,B
,
*
:
#
G
EE
]8tr$   