+
    i                         ^ RI Ht ^ RIHt ^ RIHt ^ RIHtHtH	t	H
t
 ^ RIHt ^ RIHtHtHt ^ RIHtHt ^ RIHt ^ R	IHt R
 tR tR tR tR tR tR tR tR t R t!R t"R t#R# )    )Permutation)	unchanged)Matrix)MatMulBlockDiagMatrixDeterminantInverse)MatrixSymbol)
ZeroMatrix	OneMatrixIdentity)MatrixPermutePermutationMatrix)raises)Symbolc                  6   \        ^^ .4      p \        \        V 4      '       g   Q h\        \        R 4       \        V 4      P                  4       \        ^ ^.^^ ..4      8X  g   Q h\        \        V 4      \        R^^4      ,          \        4      '       g   Q hR# )   c                      \        R4      # )r   r   r      )r        o/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/matrices/expressions/tests/test_permutation.py<lambda>.test_PermutationMatrix_basic.<locals>.<lambda>   s
    0;r   AN)
r   r   r   r   
ValueErroras_explicitr   
isinstancer
   r   ps    r   test_PermutationMatrix_basicr"      s    QFA&****
:;<Q++-!Q!Q8H1IIII'*<Q+BBFKKKKr   c                     \        . RO4      p \        V 4      p\        . RO. RO. RO.4      pW,          P                  4       VP                  4       V,          8X  g   Q hW!,          P                  4       W!P                  4       ,          8X  g   Q h\        \        . RO4      4      p\        \        . RO4      4      p\        \        . RO4      4      pW4,          V8X  g   Q hR# )r   Nr   r   r   r   )         )         )r   r   r   )r   r   r   )r   r   r   r   )r!   PMP1P2P3s         r   test_PermutationMatrix_matmulr0      s    IA!A	9i01AC!--/!"3333C!MMO"3333	;y1	2B	;y1	2B	;y1	2B5B;;r   c                      \        . RO4      p \        V 4      p\        . RO4      p\        V4      pV^,          V8X  g   Q hV^,          \        ^4      8X  g   Q hR# )r   Nr$   r   r   r   )r   r   r   )p1r-   p2r.   s       r   test_PermutationMatrix_matpowr5   #   sP    	Y	B	2	B	Y	B	2	Bq5B;;q5HQKr   c                      \        ^ ^.4      p \        V 4      P                  '       g   Q h\        ^^ .4      p \        V 4      P                  '       d   Q hR# r   N)r   r   is_Identityr    s    r   test_PermutationMatrix_identityr9   ,   sO    QFAQ+++++QFA #//////r   c                  J   \        \        . RO4      4      p \        V 4      P                  4       ^8X  g   Q h\        \        . RO4      4      p \        V 4      P                  4       R8X  g   Q h\        \        . RO4      4      p \        V 4      P                  4       ^8X  g   Q hR# )r   Nr   )r   r   r   r2   )r   r   r   doitr+   s    r   "test_PermutationMatrix_determinantr>   4   s    +i01Aq> A%%%+i01Aq> B&&&+i01Aq> A%%%r   c                      \        \        ^ ^^4      4      p \        V 4      P                  4       \        \        ^ ^^4      4      8X  g   Q hR# r7   )r   r   r	   r<   r=   s    r   test_PermutationMatrix_inverser@   =   s=    +aA./A1:?? 1+aA2F GGGGr   c            	         \        \        . RO4      4      p \        \        ^ .4      4      pV P                  \        4      \        WWW4      8X  g   Q h\        \        . RO4      4      p \        \        ^ ^4      4      pV P                  \        4      \        WW!V4      8X  g   Q h\        \        . RO4      4      p V P                  \        4      \        W"V4      8X  g   Q h\        \        . RO4      4      p \        \        . RO4      4      pV P                  \        4      \        WV4      8X  g   Q h\        \        . RO4      4      p \        \        . RO4      4      pV P                  \        4      \        WV4      8X  g   Q h\        \        ^ ^4      ! ^^4      ! ^^4      4      p V P                  \        4      \        V 4      8X  g   Q hR# )	r   N)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   rewriter   )r+   P0P10P3210P3120s        r   .test_PermutationMatrix_rewrite_BlockDiagMatrixrG   B   s   +&89:A	;s+	,B99_%/0 0 0 	+&89:A
K1-
.C99_%,- - - 	+&89:A99_%#&' ' ' 	+&89:Ak,78E99_%2&' ' ' 	+&89:Ak,78E99_%2&' ' ' 	+a+Aq1!Q78A99_%);;;;r   c                    aaa \        ^ ^4      o\        S4      p \        R^^4      o\        \        V3R l4       \        \        V3R l4       \        SV 4      \        SS4      8X  g   Q h\        \        VV3R l4       \        ^ ^^R7      o\        SS4      \        SS4      8X  g   Q h\        ^ ^^4      o\        \        VV3R l4       R# )r   r   c                  .   < \        \        R 4      S 4      # xr   r   r    s   r   r   +test_MartrixPermute_basic.<locals>.<lambda>d   s    }VC[!<r   c                  .   < \        S \        R 4      4      # rJ   rL   )r   s   r   r   rM   e   s    }Qs<r   c                     < \        S S^4      # )r   r   )r   r!   s   r   r   rM   h   s    }Q15r   sizec                     < \        S S4      # )NrP   )r   pps   r   r   rM   m   s    }Q3r   N)r   r   r
   r   r   r   )r+   r   r!   rT   s    @@@r   test_MartrixPermute_basicrU   _   s    AqA!AS!QA
:<=
:<=A-1"5555
:56	Q	"BB=A#6666	Q1	B
:34r   c                  p    \        ^ ^4      p \        R^^4      p\        W4      P                  R8X  g   Q hR# )r   r   N)r   r%   )r   r
   r   shaper!   r   s     r   test_MatrixPermute_shaperY   p   s5    AqAS!QA$$...r   c                  "   \        ^ ^^4      p \        R^^4      pVP                  4       p\        W^ 4      P                  4       VP	                  V RR7      8X  g   Q h\        W^4      P                  4       VP	                  V RR7      8X  g   Q hR# )r   r   rows)orientationcolsN)r   r
   r   r   permute)r!   r   AAs      r   test_MatrixPermute_explicitr`   v   s    Aq!AS!QA	
Bq!--/


1&
)* * *q!--/


1&
)* * *r   c                  j   \        ^ ^^4      p \        R^^4      p\        W^ 4      P                  \        4      P                  4       \        W^ 4      P                  4       8X  g   Q h\        W^4      P                  \        4      P                  4       \        W^4      P                  4       8X  g   Q hR# )r   r   N)r   r
   r   rB   r   r   rX   s     r   !test_MatrixPermute_rewrite_MatMulrb      s    Aq!AS!QAq!))&1==?aA**,- - -q!))&1==?aA**,- - -r   c                     \        ^ ^^4      p \        R^^4      p\        W4      P                  4       \        W4      8X  g   Q h\        ^ ^R7      p \        R^^4      p\        W4      P                  4       P	                  4       \        W4      P	                  4       8X  g   Q h\        ^ ^^4      p \        ^4      p\        W^ 4      P                  4       P	                  4       \        W^ 4      P	                  4       8X  g   Q h\        W^4      P                  4       P	                  4       \        W^4      P	                  4       8X  g   Q h\        ^^4      p\        W4      P                  4       V8X  g   Q h\        ^^4      p\        W4      P                  4       V8X  g   Q h\        R^^4      p\        ^ ^^^4      p\        ^ ^^^4      p\        \        W^ 4      V^ 4      pVP	                  4       VP                  4       P	                  4       8X  g   Q h\        \        W^4      V^4      pVP	                  4       VP                  4       P	                  4       8X  g   Q hR# )r   r   rQ   N)r   r
   r   r<   r   r   r   r   )r!   r   r3   r4   exprs        r   test_MatrixPermute_doitre      s   Aq!AS!QA##%q)<<<<AAAS!QA##%113a'')* * * 	Aq!AAq!&&(446aA**,- - -q!&&(446aA**,- - - 	1aA##%***!QA##%***S!QA	Q1a	 B	Q1a	 Bqa0"a8D!8!8!::::qa0"a8D!8!8!::::r   N)$sympy.combinatoricsr   sympy.core.exprr   sympy.matricesr   sympy.matrices.expressionsr   r   r   r	   "sympy.matrices.expressions.matexprr
   "sympy.matrices.expressions.specialr   r   r   &sympy.matrices.expressions.permutationr   r   sympy.testing.pytestr   sympy.core.symbolr   r"   r0   r5   r9   r>   r@   rG   rU   rY   r`   rb   re   r   r   r   <module>ro      sj    + % !2 2 ; N N% ' $L
 0&H
<:5"/*-;r   