
    \h                        S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	J
r
  S SKJrJr  S SKJrJr  S SKJrJrJr  \	" S	S
\-  /S	\-   S//5      r\	" S
\-  S/S\-  S
//5      r\" S5      u  rrrrrrrr\" S\\5      r\" S\\5      r \" S\\5      r!\" S\\5      r"\" S\\5      r#S r$S r%S r&S r'S r(S r)S r*S r+S r,S r-S r.S r/S r0S  r1S! r2S" r3S# r4S$ r5g%)&    )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                  h   [        [        [        [        5      [        5      (       d   e[        [        [        5      R	                  [        [
        5      [        [
        [        5      :X  d   e[        [        [
        5      R                  [        [        -  [        [        -  4:X  d   e[        [        [
        5      [        [        * [
        5      -   R                  (       d   e[        [        [        5      [        [        R                  [        R                  5      -  R                  (       d   eg N)
isinstancer   r   r   subsr   shapenmkis_ZeroMatrixr   r   r   is_Identity     g/var/www/auris/envauris/lib/python3.13/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                      [        [        [        5      [        [        5      5      [        [        [        -  5      :X  d   e[        [	        S5      [	        S5      5      [	        S5      :X  d   eg )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                     [        SSS5      n [        SSS5      n[        X5      nUR                  S:X  d   eUR                  5       [	        U S   US   -  U S   US   -  U S   US   -  U S   US   -  /U S   US   -  U S   US   -  U S   US   -  U S   US   -  /U S   US   -  U S   US   -  U S   US   -  U S   US   -  /U S   US   -  U S   US   -  U S   US   -  U S   US   -  //5      :X  d   eg )	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/   &   sO   S!QAS!QA	!	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                  z   [        [        [        -  [        5      R	                  5       [        * [        [        R	                  5       [        R	                  5       5      -  :X  d   e[        [
        [        5      R	                  5       [        [
        R	                  5       [        R	                  5       5      :X  d   eg 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                  z   [        [        [        -  [        5      R	                  5       [        * [        [        R	                  5       [        R	                  5       5      -  :X  d   e[        [
        [        5      R	                  5       [        [
        R	                  5       [        R	                  5       5      :X  d   eg 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                  x   [        [        [        -  [        5      R	                  5       [        [        [        R	                  5       [        R	                  5       5      -  :X  d   e[        [
        [        5      R	                  5       [        [
        R	                  5       [        R	                  5       5      :X  d   eg 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                     [        [        [        [        [        5      5      [        [        [        [        5      [        5      :X  d   e[        [        [        [        [        5      5      [	        [        [        [        5      :X  d   eg 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                      [        [        [        -  [        5      [        [        [        [        5      -  :X  d   e[        [        [        [        -  5      [        [        [        [        5      -  :X  d   eg 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                      [        [        [        5      n [        U 5      [        [        5      [        -  [        [        5      [
        -  -  :X  d   eg r   )r   r   r   r   r   r   r.   s    r%   !test_KroneckerProduct_determinantrB   V   s5    	1a	 Br7c!fai#a&!)++++r$   c                      [        [        [        5      n [        U 5      [        [        5      [        [        5      -  :X  d   eg r   )r   r   r   r   rA   s    r%   test_KroneckerProduct_tracerD   [   s-    	1a	 B9aq))))r$   c                      [        [        [        5      [        [        [        5      :w  d   e[        [        [        5      R                  SL d   eg )NF)r   r   r   is_commutativer#   r$   r%   &test_KroneckerProduct_isnt_commutativerG   `   s:    Aq!%5a%;;;;Aq!00E999r$   c                      [        [        [        -  S[        -  5      [        S-  [	        [        [        5      -  :X  d   eg )Nr   )r   r>   r   r   r   r#   r$   r%   /test_KroneckerProduct_extracts_commutative_partrI   e   s<    QUAE*a	/
Q"/# # # #r$   c                      [        [        [        5      n U R                  5       [        [        R                  5       [        R                  5       5      :X  d   eg r   )r   r   r   inverserA   s    r%   test_KroneckerProduct_inverserL   j   s6    	1a	 B::<,QYY[!))+FFFFr$   c                      [        [        [        5      n [        [        [        5      n[        X-  5      [        [        [        -  [        [        -  5      :X  d   eg r   )r   r   r   r   r   r   )kp1kp2s     r%   !test_KroneckerProduct_combine_addrP   o   s?    
Aq
!C
Aq
!CSW%):1Q3!)DDDDr$   c                      [        S[        [        5      n [        S[        [        5      n[        [        U 5      n[        [
        U5      n[        X#-   5      [        [        [
        -   X-   5      :X  d   eg )Nr+   r,   )r	   r   r   r   r   r   r   )r+   r,   rN   rO   s       r%   !test_KroneckerProduct_combine_mulrR   u   sY    S!QAS!QA
Aq
!C
Aq
!CSW%):1Q3)DDDDr$   c                     [        S[        [        5      n [        S[        [        5      n[        [        X5      [        -  5      [        U [        -  U[        -  5      :X  d   e[        [        [        X5      S-  -  5      [        [        U S-  US-  5      -  :X  d   e[        [        [        X5      S-  -  [        [
        [        5      -  5      [        [        U S-  [
        -  US-  [        -  5      -  :X  d   e[        [        [
        [        R                  5      [        -  5      [        [
        [        R                  5      [        -  :X  d   eg )Nr+   r,   r   )	r	   r   r   r   r>   r   r   Tr   r+   r,   s     r%   !test_KroneckerProduct_combine_powrV   }   sD   S!QAS!QA-	 %adAqD12 2 2Q!1!!7 !"" " #&'*:1a4A*F&FG G G	a#Q&'*:1a*@@BEFIYZ[]^Z^abZbdeghdhkldlImEmn n n -a5:;?OPQSTSVSV?W[\?\\\\r$   c                     [        S[        [        5      n [        S[        [        5      n[        X-   U[        -   5      R	                  SS9[        X5      [        U [        5      -   [        X5      -   [        U[        5      -   :X  d   eg )Nr+   r,   T)kroneckerproduct)r	   r   r   r   expandrU   s     r%   test_KroneckerProduct_expandrZ      s|    S!QAS!QAAE1q5)00$0G!1!Q!77	!1!Q!7	88 8 8r$   c            	         [        S[        [        5      n [        S[        [        5      n[        X5      R                  [        [        5      U [        [        [        [        -  5      [        5      [        [        [        [        -  5      [        5      4   U[        [        [        5      [        [        [        5      4   -  :X  d   eg )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!((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$   