+
    i@                        ^ RI Ht ^ RIHtHt ^ RIHtHtHtH	t	H
t
HtHtHtHtHtHtHt ^ RIHtHtHtHtHtHt ^ RIHt ^ 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'H(t(H)t)H*t* ^ RI+H,t,H-t- ^ RI.H/t/H0t0H1t1 ]-! RRR7      w  t2t3t4t5t6t7t8]! R]7]74      t9]! R]7]74      t:]! R]7]74      t;]! R]7]74      t<]! R]7]74      t=]! R]7]74      t>]
! ]=]>..4      t?]
! ]=.]>..4      t@R tAR tBR tCR tDR tER tFR tGR tHR tIR tJR  tKR! tLR" tMR# tN]R$ 4       tOR% tPR& tQR' tRR( tSR) tTR* tUR+ tVR, tWR- tXR. tYR/ tZR0 t[R1 t\R2 t]R3 t^R4 t_R5# )6    )Trace)raisesslow)block_collapse	bc_matmulbc_block_plus_identBlockDiagMatrixBlockMatrixbc_dist	bc_mataddbc_transpose
bc_inverseblockcutreblock_2x2deblock)MatrixSymbolIdentitytracedet
ZeroMatrix	OneMatrix)Inverse)MatPow)	Transpose)NonInvertibleMatrixError)MatrixImmutableMatrixImmutableSparseMatrixzeros)TupleExprSFunction)Symbolsymbols)	transposeimrezi:n, pT)integerABCDGHc                     \        \        \        ,          \        ,          \        ,          4      \        \        \        ,          \        ,          \        \        ,          \        ,          ,           \        ,          ..4      8X  g   Q hR # N)r   r/   b1b2r.   r
        o/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/matrices/expressions/tests/test_blockmatrix.pytest_bc_matmulr7      sE    QrT"WQY;!A#a%!A#a%-1B0C/D#EEEEr5   c                      \        \        \        \        ..4      \        \        \        ..4      ,           4      \        \        \        ,           \        \        ,           ..4      8X  g   Q hR # r1   )r   r
   r.   r/   r4   r5   r6   test_bc_mataddr9       sJ    [1a&*[1a&-BBC!A#qs%& & &r5   c            	         \        \        \        \        \        .\
        \        ..4      4      4      \        \        P                  \
        P                  .\        P                  \        P                  ..4      8X  g   Q hR # r1   )r   r   r
   r*   r+   r,   r-   Tr4   r5   r6   test_bc_transposer<   $   sU    	+1v1v.>"?@A!##qssacc133Z012 2 2r5   c                  ,   \        R \        \        4      p \        R\        \        4      p\        R\        \        4      p\	        WV4      p\        W3,           4      P                  \	        ^V ,          ^V,          ^V,          4      4      '       g   Q hR# )r*   r+   r,   N)r   nmlr	   r   equals)r*   r+   r,   Xs       r6   test_bc_dist_diagrC   (   sj    S!QAS!QAS!QAa A13<qsAaC1=>>>>r5   c                     \        R \        \        4      p \        R\        \        4      p\        R\        \        4      p\        R\        \        4      p\        W.W#..4      p\        R\        \        ,           \        \        ,           4      p\	        V\        \        \        ,           4      ,           V,           4      \        \        \        4      \        \        4      4      V,           V,           8X  g   Q hR# )r*   r+   r,   r-   ZN)r   r>   r?   r
   r   r   r	   )r*   r+   r,   r-   rB   rE   s         r6   test_block_plus_identrF   0   s    S!QAS!QAS!QAS!QAaVaV$%AS!a%Q'Aq8AE?2Q67HQK!59A=> > >r5   c                  R	   \        R \        \        4      p \        R\        \        4      p\        R\        \        4      p\        R\        \        4      p\        R\        \        ,           \
        4      p\        R\        \        ,           \        \        ,           4      p\        \        W.W#..4      4      pVP                  ! VP                  !  V8X  g   Q h\        R\        \        4      p\        V ^V,          ,           4      V ^V,          ,           8X  g   Q h\        R\        \        4      p\        VP                  V ,          V,          4      VP                  V ,          V,          8X  g   Q hVP                  \        \        ,           \        \        ,           38X  g   Q hVP                  R
8X  g   Q h\        V4      \        \        V P                  VP                  .VP                  VP                  ..4      4      8X  g   Q h\        V4      P                  VP                  RRR1,          8X  g   Q hWd,          P                  '       g   Q hVP!                  V4      P                  '       g   Q hWd,          P                  \        \        ,           \
        38X  g   Q hWe,           P"                  '       g   Q hVP%                  V4      P"                  '       g   Q hWe,           P                  VP                  8X  g   Q h\        R\        ^4      p\        R\        ^4      p\        \        V.V..4      4      p	Wi,          P                  \        \        ,           ^38X  g   Q h\        Wi,          4      P&                  R,          W,          W,          ,           8X  g   Q h\        Wi,          4      P&                  R,          W',          W8,          ,           8X  g   Q h\        \        Wi,          4      4      \        \        Wi,          4      4      8X  g   Q h\        \)        Wi,          ^V,          4      4      \        Wi,          4      \        ^V,          4      38X  g   Q h\        V ..4      p
\        R	.V P                  O5!  p\        W,           4      W,           8X  g   Q hR# )r*   r+   r,   r-   MNEFNrE      rM   )r   r   )   r   )r   r>   r?   kr@   pr
   r   	__class__argsr   r;   shape
blockshaper&   	is_MatMul	_blockmul	is_MatAdd	_blockaddblocksr    )r*   r+   r,   r-   rH   rI   rB   rJ   rK   YAbrE   s               r6   test_BlockMatrixr]   :   sY   S!QAS!QAS!QAS!QAS!a%#AS!a%Q'AFQFQF+,-A;;1$$$ 	S!QA!ac'"a!A#g---S!QA!##a%'"acc!eAg---77q1ua!en$$$<<6!!!Q<;vQSSzACC:.F'GHHHHQ<2... C????;;q>#####C;;1q5!*$$$E;;q>#####E==AGG###S!QAS!QAFQC!:&'AC;;1q5!*$$$!#%%d+qsQSy888!#%%d+qsQSy888 )AC.)Y~ac7J-KKKK%QqS/*qs^AaC0/2 2 2 2 
qcU	BS#177#A"&!QU***r5   c                      \        ^^.^^..4      p \        \        V ..4      4      V 8X  g   Q h\        ^^.^^..4      p \        \        V ..4      4      V 8X  g   Q hR# rO   N)r   r   r
   r   r*   s    r6   %test_block_collapse_explicit_matricesra   k   sh    AA A+se,-2221v1v./A+se,-222r5   c                     \        R ^^4      p \        ^^4      p\        W.W..4      p\        W",          4      \        V ^,          V.W..4      8X  g   Q h\        W",          V,          4      \        V ^,          V.W..4      8X  g   Q hR# )aN)r   r   r
   r   )rc   zbs      r6   test_issue_17624rf   r   s    S!QA1aAaVaV$%A!% K!Q$QF0C$DDDD!%!)$adAY4G(HHHHr5   c                  d    \        . RO. RO. RO.4      p V \        \        V 4      4      8X  g   Q hR# )rO   N)rO   rM      )         )      	   )r   r	   r`   s    r6   test_issue_18618ro   y   s+    	9i01Aq)****r5   c                      R  U u. uF  p \        V ^^4      NK  	  up w  rr4\        W.W4..4      p\        V4      \        V4      \        V4      ,           8X  g   Q h\        \        \        \        \        4      .4      4      ^ 8X  g   Q hR# u up i )ABCDN)r   r
   r   r   r>   )sr*   r+   r,   r-   rB   s         r6   test_BlockMatrix_tracers   }   s|    178A,q!Q'8JA!aVaV$%A8uQx%(****jA./01Q666 9s   Bc            	      Z   R  U u. uF  p \        V ^^4      NK  	  up w  rr4\        W.W4..4      p^ RIHp ^ RIHp V! VP                  V4      4      ;_uu_ 4        \        V4      \        V4      \        VP                  R4      4      ,          8X  g   Q h RRR4       \        \        V4      \        4      '       g   Q h\        \        V.4      4      \        V4      8X  g   Q h\        \        \        \        \        4      .4      4      ^ 8X  g   Q hR# u up i   + '       g   i     L; i)rq   )Q)assumingr*   N)r   r
   sympy.assumptions.askru   sympy.assumptions.assumerv   
invertibler   schur
isinstancer!   r   r>   )rr   r*   r+   r,   r-   rB   ru   rv   s           r6   test_BlockMatrix_Determinantr|      s    178A,q!Q'8JA!aVaV$%A'1	!,,q/	"	"1vQ#aggcl"33333 
# c!fd####{A3 CF***{Jq!,-./1444 9 
#	"s   D;DD*	c            	         \        R \        \        4      p \        R\        \        4      p\        R\        \        4      p\        R\        \        4      p\        W.W#..4      p\        V ..4      pVP                  '       g   Q hV\        \        \        ,           4      ,           p\        V4      \        V \        \        4      ,           V.W#\        \        4      ,           ..4      8X  g   Q hV\        R\        \        ,           \        \        ,           4      ,           P                  '       g   Q hV\        R\        \        ,           \        \        ,           4      ,          P                  '       g   Q h\        VP                  4      V P                  8X  g   Q h\        VP                  4       \        4      '       g   Q hVP                  '       d   Q h\        \        \        4      V.W#..4      pVP                  '       d   Q hR# )r*   r+   r,   r-   ru   N)r   r>   r?   r
   	is_squarer   r   rX   rV   Ir{   inverser   is_Identity)r*   r+   r,   r-   rB   r[   ru   rE   s           r6   test_squareBlockMatrixr      sz   S!QAS!QAS!QAS!QAaVaV$%AaSEA;;;;	HQUOA1a(1+oq)A8A;+?@AB C B S!a%Q//:::::S!a%Q//:::::!##!##%%%aiik7++++}}}hqk1%v./A}}}}r5   c            
         \        R \        \        4      p \        R\        \        \        ,
          4      p\        R\        \        ,
          \        4      p\        R\        \        ,
          \        \        ,
          4      p\	        W.W#..4      pVP
                  '       d   VP                  \        \        38X  g   Q h\        \        VP                  4      \        4      '       g   Q h\        R \        \        4      p \        R\        \        4      p\        R\        \        4      p\        \        \        4      p\	        W.W#..4      p\        VP                  4       4      \	        V P                  V P                  V,          VP                  R 4      P                  ,          V,          V P                  ,          ,           V P                  ) V,          VP                  R 4      P                  ,          .VP                  R 4      P                  ) V,          V P                  ,          VP                  R 4      P                  ..4      8X  g   Q h\        R \        \        4      p \        R\        \        4      p\        \        \        4      p\        R\        \        4      p\	        W.W#..4      p\        VP                  4       4      \	        VP                  R4      P                  ) V,          VP                  ,          VP                  R4      P                  .VP                  VP                  V ,          VP                  R4      P                  ,          V,          VP                  ,          ,           VP                  ) V ,          VP                  R4      P                  ,          ..4      8X  g   Q h\        R \        \        4      p \        \        \        4      p\        R\        \        4      p\        R\        \        4      p\	        W.W#..4      p\        VP                  4       4      \	        VP                  ) V,          VP                  R4      P                  ,          VP                  VP                  V,          VP                  R4      P                  ,          V ,          VP                  ,          ,           .VP                  R4      P                  VP                  R4      P                  ) V ,          VP                  ,          ..4      8X  g   Q h\        \        \        4      p \        R\        \        4      p\        R\        \        4      p\        R\        \        4      p\	        W.W#..4      p\        VP                  4       4      \	        VP                  R4      P                  VP                  R4      P                  ) V,          VP                  ,          .VP                  ) V,          VP                  R4      P                  ,          VP                  VP                  V,          VP                  R4      P                  ,          V,          VP                  ,          ,           ..4      8X  g   Q hR# r*   r+   r,   r-   N)r   r>   r?   rP   r
   r~   rT   r{   r   r   r   r   r   rz   )r*   r+   r,   r-   rB   s        r6   %test_BlockMatrix_2x2_inverse_symbolicr      ss   S!QAS!QU#AS!a%#AS!a%Q'AaVaV$%A;;;177q!f,,,nQSS)73333 	S!QAS!QAS!QA1aAaVaV$%A!))+&+	
qssQw'!+acc1	1ACC4!8aggclnn3LM
''#,..1	qss	"AGGCLNN37 +    	S!QAS!QA1aAS!QAaVaV$%A!))+&+
''#,..1	qss	"AGGCLNN3	
qssQw'!+acc1	1ACC4!8aggclnn3LM7 +    	S!QA1aAS!QAS!QAaVaV$%A!))+&+
##AGGCLNN	"ACC!##'AGGCLNN*BQ*F*L$LM	
!''#,..1,qss237 +    	1aAS!QAS!QAS!QAaVaV$%A!))+&+	
!''#,..1,qss23
##AGGCLNN	"ACC!##'AGGCLNN*BQ*F*L$LM7 +   r5   c                    \        ^^.^^..4      p \        ^^.^^..4      p\        ^^.^^	..4      p\        ^^.^^..4      pVP                  4       VP                  4       u;8X  d   VP                  4       u;8X  d	   ^8X  g   Q h Q hW,           P                  4       W#,           P                  4       u;8X  d%   W1,           P                  4       u;8X  d	   ^8X  g   Q h Q h\        W.W#..4      p\        VP	                  4       4      P                  4       VP                  4       P	                  4       8X  g   Q h\        W.W#..4      p\        VP	                  4       4      P                  4       VP                  4       P	                  4       8X  g   Q h\        W.W..4      p\        VP	                  4       4      P                  4       VP                  4       P	                  4       8X  g   Q h\        W.W0..4      p\        VP	                  4       4      P                  4       VP                  4       P	                  4       8X  g   Q hR# )z>Test 2x2 block matrix inversion numerically for all 4 formulasN)r   rankr
   r   invas_explicit)rH   D1D2D3Ks        r6   $test_BlockMatrix_2x2_inverse_numericr      s   AA A	!Q!Q 	!B	!Q!Q 	!B	!Q!R!	"B779	3RWWY3!33333G>>~~/HBG>>3CHqHHHHH 	aWrh'(A!%%'"..0AMMO4G4G4IIIIbWrh'(A!%%'"..0AMMO4G4G4IIIIbXw'(A!%%'"..0AMMO4G4G4IIIIbXw'(A!%%'"..0AMMO4G4G4IIIIr5   c                  6   \         \        \        3p \        \        \         3p\        V  UUu. uF&  pV Uu. uF  p\	        R V: V: 2W#4      NK  	  upNK(  	  upp4      p\        VP                  4      p\        V\        4      '       g   Q hR# u upi u uppi )rH   N)r>   r?   rP   r
   r   r   r   r{   )rowblocksizescolblocksizesrowscolsr   collapses         r6   test_BlockMatrix_3x3_symbolicr      s     1IM1IM!!D GTTmdt,d	9mT! 	A acc"Hh,,,,	 	Us   	B
BB
B
c                  <  aaaa \        R \        \        4      o\        R\        \        4      o\        R\        \        4      o\        R\        \        ,           \        ,           \        \        ,           \        ,           4      p \	        SSS4      o\	        S^S,          ^S,          4      pSP
                  R,          S8X  g   Q hSP                  \        \        ,           \        ,           \        \        ,           \        ,           38X  g   Q h\        ;QJ d+    VVVV3R l\        ^4       4       F  '       d   K   RM 	  RM! VVVV3R l\        ^4       4       4      '       g   Q hSP                  ! SP                  !  S8X  g   Q hSP                  4       SSS38X  g   Q h\        \        SP                  S,          4      \        4      '       g   Q h\!        SS,          4      \	        SS,          SS,          SS,          4      8X  g   Q h\        SS,          4      \	        SS,          SS,          SS,          4      8X  g   Q h\        SS,           4      P#                  \	        ^S,          ^S,          ^S,          4      4      '       g   Q h\        SV,          4      \	        SS,          ^S,          S,          ^S,          S,          4      8X  g   Q h\        SV,           4      \	        ^S,          ^S,          ^S,          4      8X  g   Q hS^V ,          ,          P$                  '       g   Q hS^V ,          ,           P&                  '       g   Q hSP)                  V 4      P$                  '       g   Q hSP+                  V 4      P&                  '       g   Q hR# )	r*   r+   r,   rH   c              3      <"   T FU  p\        ^4       FC  pW8w  d   SP                  W3,          P                  MSP                  W3,          SSS39   x  KE  	  KW  	  R# 5irh   N)rangerZ   is_ZeroMatrix).0ijr*   r+   r,   rB   s   &  r6   	<genexpr>'test_BlockDiagMatrix.<locals>.<genexpr>  sY      1uQx! 01vqxx~++188AD>aQRTUY;VV'/ Ws   AA FTN)rO   rO   )r   r>   r?   r@   r	   rZ   rT   allr   rR   rS   get_diag_blocksr{   r   r   r   r   rA   rV   rX   rW   rY   )rH   r[   r*   r+   r,   rB   s     @@@@r6   test_BlockDiagMatrixr     s   S!QAS!QAS!QAS!a%!)QUQY/A1a A1Q3!$A88D>Q77q1uqy!a%!),,,,3 11X1333 11X1 1 1 1 1;;1$$$1a)+++nQSS1W-x8888QqS>_QqS!A#qs;;;;!A#/!A#qsAaC"@@@@!a% ''!QqS!A#(FGGGG!A#/!A#qs1uac!e"DDDD!a% OAaC1ac$BBBB qsG1I     KKN%%%%%KKN%%%%%r5   c                  D  aa \        R \        \        4      o\        R\        \        4      p \        SV 4      pVP                  \        \        ,           \        \        ,           38X  g   Q hVP                  \        \        ,           \        \        ,           38X  g   Q hVP                  \        \        .8X  g   Q hVP                  \        \        .8X  g   Q h\        R\        \        4      o\        R\        \        4      p\        SV4      p\        W,           4      \        SS,           W,           4      8X  g   Q h\        WP                  ,          4      \        SSP                  ,          WP                  ,          4      8X  g   Q h\        \        VV3R l4       R# )r*   r+   r,   r-   c                  L   < \        S SP                  4      P                  4       # r1   )r	   r;   r   )r*   r,   s   r6   <lambda>0test_BlockDiagMatrix_nonsquare.<locals>.<lambda>2  s    _Q-D-L-L-Nr5   N)r   r>   r?   rP   r@   r	   rT   r   r   r   r;   r   r   )r+   rB   r-   r[   r*   r,   s       @@r6   test_BlockDiagMatrix_nonsquarer   %  s   S!QAS!QA1A77q1ua!en$$$77q1ua!en$$$??q!f$$$??q!f$$$S!QAS!QA1A!% OAE15$AAAA!cc'"oa!##gq33w&GGGG
#%NOr5   c                     \        R \        \        4      p \        R\        \        4      p\        \	        4       4      ^8X  g   Q h\        \	        V 4      4      \        V 4      8X  g   Q h\        \	        W4      4      \        V 4      \        V4      ,          8X  g   Q h\        R\        \        4      p\        R\        \        4      p\        \	        W#4      4      ^ 8X  g   Q hR# r   )r   r>   r?   r   r	   r*   r+   r,   r-   s       r6    test_BlockDiagMatrix_determinantr   4  s    S!QAS!QA !Q&&&q!"c!f,,,q$%Q#a&888 	S!QAS!QAq$%***r5   c                  @   \        \        4       4      ^ 8X  g   Q h\        \        \        \        \        4      4      4      ^ 8X  g   Q h\	        R\        \        4      p \        \        V 4      4      \        V 4      8X  g   Q h\	        R\
        \
        4      p\        \        W4      4      \        V 4      \        V4      ,           8X  g   Q h\	        R\
        \        4      p\	        R\        \
        4      p\        \        \        W#4      4      \        4      '       g   Q hR# )r   r*   r+   r,   r-   N)r   r	   r   r>   r   r?   r{   r   r   s       r6   test_BlockDiagMatrix_tracer   @  s    "#q(((Aq!123q888S!QA#$a000S!QA&'58eAh+>>>> 	S!QAS!QAeOA12E::::r5   c                  l   \        R \        \        4      p \        R\        \        4      p\        \        4       4      \        4       8X  g   Q h\        \        V 4      4      \        V P                  4      8X  g   Q h\        \        W4      4      \        V P                  VP                  4      8X  g   Q hR# )r*   r+   N)r   r>   r?   rP   r@   r&   r	   r;   )r*   r+   s     r6   test_BlockDiagMatrix_transposer   M  s    S!QAS!QA_&'?+<<<<_Q'(OACC,@@@@_Q*+qssACC/HHHHr5   c                  N   \        \        \        .4      \        \        .4      4      p \        \        \        .4      \        \
        .4      4      p\        W,           4      \        \        \        \        ,           .4      \        \        \
        ,           .4      4      8X  g   Q hR # r1   )r	   r   r   r   rP   r@   r   )bdm1bdm2s     r6   test_issue_2460r   T  sf    61#;s4D61#;s4D$+&/&!a%/6STWXSXRY?*[[[[r5   c            	         \        R \        \        4      p \        V \        ^,          \        ^,          3\        ^,          \        ^,          34      pV\	        V R\        ^,          1R\        ^,          13,          V R\        ^,          1\        ^,          R13,          .V \        ^,          R1R\        ^,          13,          V \        ^,          R1\        ^,          R13,          ..4      8X  g   Q h\        ^^\        ^4      4      p\        VRR4      pV\        V4      8X  g   Q h\        VRR4      p\        VP                  R,          4      \        ^^..4      8X  g   Q hR# )r*   NrL   )rO   rh   )r   rO   )r   r>   r?   r   r
   r   r   rZ   )r*   r+   rH   s      r6   test_blockcutr   Y  s$   S!QAQqS!A#J1ac
+Aa1dqsd
mQt!tQqSTz];!dqsd
mQqstQqSTz];= > > > > 	1eBi(AFF#A""""FF#A188D>*o1vh.GGGGr5   c                     \        \        ^4       U Uu. uF1  p \        ^4       Uu. uF  p\        RW3,          ^^4      NK  	  upNK3  	  upp 4      pVP                  P                  R8X  g   Q h\        V4      pVP                  P                  R8X  g   Q hVP                  VP                  8X  g   Q hVP                  4       VP                  4       8X  g   Q hR# u upi u upp i )rh   A_%d%dN)rh   rh   rL   )r
   r   r   rZ   rT   r   r   )r   r   r+   BBs       r6   test_reblock_2x2r   f  s    %*1X/%- &+1X/%- #8QE>1a8%-/%-/ 	0A 88>>V###	QB99??f$$$77bhh==?bnn..../ /s   C!
CC!
C!
c                     \        \        ^4       U Uu. uF9  p \        ^4       Uu. uF   p\        RW3,          \        \        4      NK"  	  upNK;  	  upp 4      p\	        \        V4      4      V8X  g   Q hR# u upi u upp i )ri   r   N)r
   r   r   r>   r   r   )r   r   r+   s      r6   test_deblockr   r  sy    "1X'% #1X'% #8QE>1a8%'%' 	(A ;q>"a'''	' 's   A=
&A8A=
8A=
c                  \   \        \        ^.4      \        ^.4      4      p \        \        ^.4      \        ^.4      4      pV P                  P                  \         8X  g   Q h\	        W,
          4      P                  \         8X  g   Q h\	        \        V 4      4      P                  \         8X  g   Q h\	        \        V 4      4      P                  \         8X  g   Q h\        \        V 4      4      P                  \         8X  g   Q h\        \        V 4      4      P                  \         8X  g   Q hR# r_   )	r	   r   r;   rR   r   r   r   r   r   )bm1bm2s     r6   test_block_collapse_typer   y  s    
/1#.0D
EC
/1#.0D
EC55??o---#)$../AAA'#,'11_DDD)C.)33FFF	#'11_DDDgcl#--@@@r5   c                      \        \        R  4       \        \        R 4       \        \        R 4       \        \        R 4       R# )c                  B    \        \        ^4      \        ^4      ..4      # )rM   )r
   r   r4   r5   r6   r   +test_invalid_block_matrix.<locals>.<lambda>  s    {	!hqk",  r5   c                  R    \        \        \        4      \        \        4      ..4      # r1   )r
   r   r>   r?   r4   r5   r6   r   r     s    {	!hqk",  r5   c            	          \        \        \        \        4      \        \        \        4      .\        \        \        ^,
          4      \        \        \        ^,           4      ..4      # rO   r
   r   r>   r4   r5   r6   r   r     sB    {	Aq	:a+,	Aq1u	z!QU34,  r5   c                      \        \        \        ^,
          \        4      \        \        \        4      .\        \        ^,           \        4      \        \        \        4      ..4      # r   r   r4   r5   r6   r   r     sB    {	AE1	z!Q/0	AE1	z!Q/0,  r5   N)r   
ValueErrorr4   r5   r6   test_invalid_block_matrixr     sD    
:   :   :   :  r5   c                     \        R \        \        4      p \        R\        \        4      p\        R\        \        4      p\        R\        \        4      p\        W.W#..4      pVP	                  4       w  rSp\        WS,          V,          4      V8X  g   Q hVP                  4       w  rcp\        Wc,          V,          4      V8X  g   Q hVP                  4       w  rV\        WV,          4      V8X  g   Q hR# r   )r   r>   r?   r
   LDUdecompositionr   UDLdecompositionLUdecomposition)r*   r+   r,   r-   rB   LUs          r6   test_block_lu_decompositionr     s    S!QAS!QAS!QAS!QAaVaV$%A   "GA!!#a% A%%%   "GA!!#a% A%%% DA!#!###r5   c            	          ^
p \        V 4      p\        W 4      p\        WW".W!W".W"W.WW!..4      p\        VP	                  4       4      p\        WW".W!W".W"W.V) W"V..4      pWE8X  g   Q hR# )
   N)r   r   r
   r   r   )r>   r   Or*   AinvAinvTs         r6   test_issue_21866r     s    	A	!A	A	A	((((* 
+A !%%'"DAA+((aa)+ ,E ==r5   c            	         \        ^4      p \        ^^4      p\        ^^4      p\        ^4      p\        W.W#..4      p\        V \        P
                  V,          .W#..4      pVP                  4       \        V \        ^^4      .\        ^^4      V..4      8X  g   Q h\        V4      V8X  g   Q hVP                  4       \        V \        ^^4      .\        P
                  ) \        ^^4      ,          V..4      8X  g   Q h\        V4      \        \        ^^4      \        ^^4      .\        ^^4      \        ^^4      ..4      8X  g   Q hR# r   )	r   r   r   r
   r"   ImaginaryUnitadjointr(   r'   )r*   r+   r,   r-   rB   X2s         r6   !test_adjoint_and_special_matricesr     s/   A!QA1aAAaVaV$%A	q!//!+,qf5	6B99;+:a+;'<yAPQ>R&STTTTa5A::::<;Jq!,<(=@PQZ[\^_Q`@`bc?d'effffb6[:a#3Yq!_"E
STVWHXZdefhiZjGk!lmmmmr5   c                  r   \        R 4      p \        ^^\        ^	4       Uu. uF  p\        RV 24      ! V 4      NK  	  up4      p\	        VR,          VR,          .VR,          VR,          ..4      p\        VP                  V 4      4      VP                  V 4      ,
          \        ^^4      8X  g   Q hR# u upi )xrc   N)NrM   Nr   )r   rM   )rM   r   ):rM   NNrM   )r%   r   r   r#   r
   diffr   )r   r   r*   bcs       r6   test_block_matrix_derivativer     s    Aq!E!H=Hqh1#w'*H=>A	qy!E(+ah%-AB	CB"''!*q	)U1a[888 >s   B4c                     \        R 4      p \        V 4      p\        W 4      p\        W.W!..4      p\	        VP                  4       P                  4       4      V8X  g   Q h\	        VP                  4       P                  4       4      V8X  g   Q h\	        \        VP                  4       R4      4      \        VR4      8X  g   Q h\	        \        VR4      P                  4       4      \        VR4      8X  g   Q hR# )r>   N)r$   r   r   r
   r   r&   r   r   )r>   r   rE   r*   s       r6   test_transpose_inverse_commuter     s    sAA1AaVaV$%A!++-//12a777!))+//12a777&34q"EEE&B-1134q"EEEr5   N)` sympy.matrices.expressions.tracer   sympy.testing.pytestr   r   &sympy.matrices.expressions.blockmatrixr   r   r   r	   r
   r   r   r   r   r   r   r   sympy.matrices.expressionsr   r   r   r   r   r   "sympy.matrices.expressions.inverser   !sympy.matrices.expressions.matpowr   $sympy.matrices.expressions.transposer   sympy.matrices.exceptionsr   sympy.matricesr   r   r   r   
sympy.corer    r!   r"   r#   sympy.core.symbolr$   r%   sympy.functionsr&   r'   r(   r   r   rP   r@   r?   r>   rQ   r*   r+   r,   r-   r.   r/   r2   r3   r7   r9   r<   rC   rF   r]   ra   rf   ro   rs   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r4   r5   r6   <module>r      s   2 -$ $ $ $? ? 6 4 : >; ; / / - - -h5 1aAq!aaaaaa1a&1#sF&2?>/+b3I+7
563lJ0 	- 	-&@P
+;I\
H
/(	A $& 
n9
Fr5   