+
    i1W              	       ^   R t ^ RIHt ^ RIHtHt ^ RIHt ^ RI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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& ^ RI'H(t( ^RI)H*t*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3H4t4H5t5H6t6 R t7]*Pp                  ! ]4      R 4       t9]+Pp                  ! ]4      R 4       t9]+Pp                  ! ]4      R 4       t9]+Pp                  ! ]4      R 4       t9]+Pp                  ! ]4      R 4       t9]+Pt                  ! ]]4      R 4       t9]+Pt                  ! ]]4      R 4       t9]+Pp                  ! ]4      R 4       t9]+Pp                  ! ]4      R 4       t9],Pp                  ! ]4      R 4       t9],Pp                  ! ]4      R 4       t9],Pp                  ! ]4      R 4       t9],Pp                  ! ]4      R 4       t9],Pt                  ! ]]4      R 4       t9],Pp                  ! ]4      R 4       t9],Pp                  ! ]4      R 4       t9],Pp                  ! ]4      R 4       t9],Pp                  ! ]4      R 4       t9],Pp                  ! ]	4      R  4       t9],Pp                  ! ]4      R! 4       t9],Pp                  ! ]4      R" 4       t9],Pp                  ! ]4      R# 4       t9]-Pp                  ! ]4      R$ 4       t9]-Pp                  ! ]4      R% 4       t9]-Pp                  ! ]4      R& 4       t9]-Pp                  ! ]4      R' 4       t9]-Pp                  ! ]4      R( 4       t9]-Pp                  ! ]4      R) 4       t9]-Pt                  ! ]]4      R* 4       t9]-Pp                  ! ]4      R+ 4       t9]-Pp                  ! ] 4      R, 4       t9].Pp                  ! ]4      R- 4       t9].Pp                  ! ]4      R. 4       t9].Pp                  ! ]4      R/ 4       t9].Pt                  ! ]]4      R0 4       t9].Pp                  ! ]4      R1 4       t9].Pt                  ! ]"]4      R2 4       t9].Pp                  ! ]4      R3 4       t9].Pp                  ! ] 4      R4 4       t9]/Pp                  ! ]4      R5 4       t9]/Pp                  ! ]4      R6 4       t9]/Pp                  ! ]4      R7 4       t9]/Pp                  ! ]4      R8 4       t9]/Pp                  ! ]4      R9 4       t9]/Pt                  ! ]]4      R: 4       t9]/Pp                  ! ]4      R; 4       t9]0Pp                  ! ]4      R< 4       t9]0Pp                  ! ]4      R= 4       t9]0Pp                  ! ]4      R> 4       t9]0Pp                  ! ]4      R? 4       t9]0Pp                  ! ]4      R@ 4       t9]0Pp                  ! ]4      RA 4       t9]0Pp                  ! ]4      RB 4       t9]0Pt                  ! ]]4      RC 4       t9]0Pp                  ! ]4      RD 4       t9]1Pp                  ! ]4      RE 4       t9]1Pp                  ! ]4      RF 4       t9]1Pp                  ! ]4      RG 4       t9]1Pp                  ! ]4      RH 4       t9]1Pt                  ! ]]4      RI 4       t9]1Pp                  ! ]4      RJ 4       t9]1Pp                  ! ]4      RK 4       t9]1Pp                  ! ]4      RL 4       t9]1Pp                  ! ]4      RM 4       t9]1Pp                  ! ] 4      RN 4       t9]2Pp                  ! ]4      RO 4       t9]2Pp                  ! ]4      RP 4       t9]2Pp                  ! ]4      RQ 4       t9]2Pp                  ! ]4      RR 4       t9]2Pt                  ! ]]4      RS 4       t9]2Pp                  ! ]4      RT 4       t9]2Pp                  ! ]4      RU 4       t9]2Pp                  ! ]4      RV 4       t9]2Pp                  ! ]4      RW 4       t9]2Pp                  ! ] 4      RX 4       t9RY t;]3Pp                  ! ]4      RZ 4       t9]3Pp                  ! ]4      R[ 4       t9]3Pp                  ! ]4      R\ 4       t9]3Pp                  ! ]4      R] 4       t9]3Pp                  ! ]4      R^ 4       t9]3Pt                  ! ]]4      R_ 4       t9]3Pp                  ! ]4      R` 4       t9]3Pt                  ! ]]]]4      Ra 4       t9]3Pp                  ! ] 4      Rb 4       t9Rc t<Rd t=Re t>]4Pt                  ! ]]]]]4      Rf 4       t9]4Pp                  ! ]4      Rg 4       t9]4Pt                  ! ]]]4      Rh 4       t9]4Pp                  ! ]4      Ri 4       t9]4Pp                  ! ]4      Rj 4       t9]4Pp                  ! ]4      Rk 4       t9]5Pt                  ! ]] ]]]]4      Rl 4       t9]5Pp                  ! ]4      Rm 4       t9]5Pp                  ! ]4      Rn 4       t9]5Pp                  ! ]4      Ro 4       t9]5Pp                  ! ]4      Rp 4       t9]6Pt                  ! ]] ]]]]]4      Rq 4       t9]6Pp                  ! ]4      Rr 4       t9]6Pp                  ! ]4      Rs 4       t9]6Pp                  ! ]4      Rt 4       t9]6Pp                  ! ]4      Ru 4       t9]6Pp                  ! ]"4      Rv 4       t9Rw# )xzj
This module contains query handlers responsible for Matrices queries:
Square, Symmetric, Invertible etc.
)	conjuncts)Qask)test_closed_group)
MatrixBase)BlockMatrixBlockDiagMatrixDeterminant
DiagMatrixDiagonalMatrixHadamardProductIdentityInverseMatAddMatMulMatPow
MatrixExprMatrixSliceMatrixSymbol	OneMatrixTrace	Transpose
ZeroMatrix)reblock_2x2)Factorization)DFT)	fuzzy_and)sift)Basic)SquarePredicateSymmetricPredicateInvertiblePredicateOrthogonalPredicateUnitaryPredicateFullRankPredicatePositiveDefinitePredicateUpperTriangularPredicateLowerTriangularPredicateDiagonalPredicateIntegerElementsPredicateRealElementsPredicateComplexElementsPredicatec                 *    WP                   9   d   R # R# TN)
predicates	predicateexprassumptionss   &&&a/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/assumptions/handlers/matrices.py_Factorizationr4      s    OO# $    c                 P    V P                   ^ ,          V P                   ^,          8H  #     shaper1   r2   s   &&r3   _r<   #   s    ::a=DJJqM))r5   c           	      f  a V P                  4       w  r#\        ;QJ d)    V3R  lVP                   4       F  '       d   K   RM	  RM! V3R  lVP                   4       4      '       d   R# \        \        P
                  ! V 4      S4      '       d   R# \        VP                  4      ^8  d   VP                  ^ ,          VP                  R,          P                  8X  dQ   \        VP                  4      ^8X  d   R# \        \        P                  ! \        VP                  ^R !  4      S4      # R# R# )c              3   d   <"   T F%  p\        \        P                  ! V4      S4      x  K'  	  R # 5iNr   r   	symmetric.0argr2   s   & r3   	<genexpr>_.<locals>.<genexpr>-   s$     
C#3q{{3--   -0FTN)
as_coeff_mmulallargsr   r   diagonallenTrA   r   r1   r2   factormmuls   &f  r3   r<   r<   *   s    %%'LF
s
C
Csss
C
CCC 1::d[))
499~tyy|tyy}>tyy>Q1;;vtyy278+FF  ?r5   c                 b   V P                   w  r#\        \        P                  ! V4      V4      pV'       g   R # \        \        P                  ! V4      ( V4      pV'       g.   VR8X  dG   \        \        P
                  ! V4      V4      '       d!   \        \        P                  ! V4      V4      # R # NF)rK   r   r   integernegative
invertiblerA   r1   r2   baseexpint_expnon_negatives   &&    r3   r<   r<   8   sy     		ID!))C.+.G

3'5L-T 2K@@1;;t$k22r5   c                    a \         ;QJ d)    V3R  lV P                   4       F  '       d   K   R# 	  R# ! V3R  lV P                   4       4      # )c              3   d   <"   T F%  p\        \        P                  ! V4      S4      x  K'  	  R # 5ir?   r@   rB   s   & r3   rE   rF   G   s$     GYcs1;;s#[11YrG   FTrJ   rK   r;   s   &fr3   r<   r<   E   s4    3GTYYG33G3G3GTYYGGGr5   c                     V P                   '       g   R # \        \        P                  ! V 4      V4      '       d   R# \        P                  ! V 4      \        V4      9   d   R# R# FTN)	is_squarer   r   rL   rA   r   r;   s   &&r3   r<   r<   I   sG    >>> 1::d[)){{4Ik22 3r5   c                 B    \        \        P                  ! V 4      V4      # r?   )r   r   squarer;   s   &&r3   r<   r<   T   s    qxx~{++r5   c                 V    \        \        P                  ! V P                  4      V4      # r?   )r   r   rA   rD   r;   s   &&r3   r<   r<   X   s    q{{488$k22r5   c                     \        \        P                  ! V 4      V4      '       d   R # V P                  '       g   R# \        \        P                  ! V P
                  4      V4      # r-   )r   r   rL   on_diagrA   parentr;   s   &&r3   r<   r<   \   sC     1::d[))<<<1;;t{{+[99r5   c                     R # T r;   s   &&r3   r<   r<   g       r5   c                   a V P                  4       w  r#\        ;QJ d)    V3R  lVP                   4       F  '       d   K   RM	  RM! V3R  lVP                   4       4      '       d   R# \        ;QJ d)    V3R lVP                   4       F  '       g   K   RM	  RM! V3R lVP                   4       4      '       d   R# R# )c              3   d   <"   T F%  p\        \        P                  ! V4      S4      x  K'  	  R # 5ir?   r   r   rV   rB   s   & r3   rE   rF   q   s$     
D)33q||C +..)rG   FTc              3   h   <"   T F'  p\        \        P                  ! V4      S4      R J x  K)  	  R# 5iFNrn   rB   s   & r3   rE   rF   s   -      "  q||C +.%7    /2NrI   rJ   rK   anyrO   s   &f  r3   r<   r<   n   s~    %%'LF
s
D$))
Dsss
D$))
DDD
s "yy"sss "yy" " ""r5   c                     V P                   w  r#\        \        P                  ! V4      V4      pV'       g   R # VP                  R8X  d!   \        \        P
                  ! V4      V4      # R # rS   )rK   r   r   rT   is_negativerV   r1   r2   rX   rY   rZ   s   &&   r3   r<   r<   w   sN     		ID!))C.+.G
%1<<%{33r5   c                     R # r?   rj   r;   s   &&r3   r<   r<      rk   r5   c                 z    V P                   '       g   R # \        P                  ! V 4      \        V4      9   d   R# R# r`   )ra   r   rV   r   r;   s   &&r3   r<   r<      s,    >>>||DY{33 4r5   c                     R # ri   rj   r;   s   &&r3   r<   r<      rk   r5   c                     R # Frj   r;   s   &&r3   r<   r<          r5   c                 j    V P                   ^ ,          ^8H  ;'       d    V P                   ^,          ^8H  # r7   r9   r;   s   &&r3   r<   r<      *    ::a=A44$**Q-1"44r5   c                 V    \        \        P                  ! V P                  4      V4      # r?   )r   r   rV   rD   r;   s   &&r3   r<   r<          q||DHH%{33r5   c                 ~    V P                   '       g   R # \        \        P                  ! V P                  4      V4      # r?   )rf   r   r   rV   rg   r;   s   &&r3   r<   r<      (    <<<1<<,k::r5   c                 d    V P                   '       g   R # V P                  4       V P                  8H  # r|   )ra   rankrowsr;   s   &&r3   r<   r<      s#    >>>99;$))##r5   c                 .    V P                   '       g   R # R# rp   )ra   r;   s   &&r3   r<   r<      s    >>>r5   c                 v   V P                   '       g   R # V P                  R8X  d2   \        \        P                  ! V P
                  R,          4      V4      # \        V 4      p V P                  R8X  Ed   V P
                  P                  4       w  w  r#w  rE\        \        P                  ! V4      V4      R8X  dE   \        \        P                  ! WTVP                  ,          V,          ,
          4      V4      pVe   V# \        \        P                  ! V4      V4      R8X  dE   \        \        P                  ! WEVP                  ,          V,          ,
          4      V4      pVe   V# \        \        P                  ! V4      V4      R8X  dE   \        \        P                  ! W2VP                  ,          V,          ,
          4      V4      pVe   V# \        \        P                  ! V4      V4      R8X  dE   \        \        P                  ! W#VP                  ,          V,          ,
          4      V4      pVe   V# R# )FTN   r   r8   r8   )   r   )	ra   
blockshaper   r   rV   blocksr   tolistI)r1   r2   ABCDrV   s   &&     r3   r<   r<      s   >>>& 1<<D 12K@@tD& ;;--/!!q||A,4Q\\!!##gk/:KHJ%!!q||A,4Q\\!!##gk/:KHJ%!!q||A,4Q\\!!##gk/:KHJ%!!q||A,4Q\\!!##gk/:KHJ%!!r5   c           
          V P                   V P                  8w  d   R # \        V P                   Uu. uF#  p\	        \
        P                  ! V4      V4      NK%  	  up4      # u upi r?   )rowblocksizescolblocksizesr   diagr   r   rV   )r1   r2   as   && r3   r<   r<      sI    T///KAc!,,q/;7KLLKs   )A!c                   a V P                  4       w  r#\        ;QJ d)    V3R  lVP                   4       F  '       d   K   RM	  RM! V3R  lVP                   4       4      '       d
   V^8X  d   R# \        ;QJ d)    V3R lVP                   4       F  '       g   K   RM	  RM! V3R lVP                   4       4      '       d   R# R# )c              3   d   <"   T F%  p\        \        P                  ! V4      S4      x  K'  	  R # 5ir?   )r   r   
orthogonalrB   s   & r3   rE   rF      s$     E9CCS!;//9rG   FTc              3   h   <"   T F'  p\        \        P                  ! V4      S4      R J x  K)  	  R# 5irp   rn   rB   s   & r3   rE   rF      rq   rr   Nrs   rO   s   &f  r3   r<   r<      s    %%'LFE499EE499EEEaK
s "yy"sss "yy" " ""r5   c                     V P                   w  r#\        \        P                  ! V4      V4      pV'       d!   \        \        P                  ! V4      V4      # R # r?   )rK   r   r   rT   r   rw   s   &&   r3   r<   r<      s?     		ID!))C.+.G1<<%{33r5   c                     \        V P                  4      ^8X  d<   \        \        P                  ! V P                  ^ ,          4      V4      '       d   R# R# R# )r   TN)rM   rK   r   r   r   r;   s   &&r3   r<   r<      s=    DII!TYYq\*K88 9 	r5   c                     V P                   '       d%   \        \        P                  ! V 4      V4      R J d   R # \        P                  ! V 4      \        V4      9   d   R# R# r`   )ra   r   r   rV   r   r   r;   s   &&r3   r<   r<      sD    NNNT*K8EA||DY{33 4r5   c                     R # ri   rj   r;   s   &&r3   r<   r<      rk   r5   c                     R # r|   rj   r;   s   &&r3   r<   r<      r}   r5   c                 V    \        \        P                  ! V P                  4      V4      # r?   )r   r   r   rD   r;   s   &&r3   r<   r<      r   r5   c                 ~    V P                   '       g   R # \        \        P                  ! V P                  4      V4      # r?   )rf   r   r   r   rg   r;   s   &&r3   r<   r<     r   r5   c                 6    \        \        P                  W4      # r?   )r4   r   r   r;   s   &&r3   r<   r<     s    !,,::r5   c                   a V P                  4       w  r#\        ;QJ d)    V3R  lVP                   4       F  '       d   K   RM	  RM! V3R  lVP                   4       4      '       d   \        V4      ^8X  d   R# \        ;QJ d)    V3R lVP                   4       F  '       g   K   RM	  RM! V3R lVP                   4       4      '       d   R# R# )c              3   d   <"   T F%  p\        \        P                  ! V4      S4      x  K'  	  R # 5ir?   )r   r   unitaryrB   s   & r3   rE   rF     s#     B	C		#,,	rG   FTc              3   h   <"   T F'  p\        \        P                  ! V4      S4      R J x  K)  	  R# 5irp   rn   rB   s   & r3   rE   rF     rq   rr   N)rI   rJ   rK   absrt   rO   s   &f  r3   r<   r<     s    %%'LFB		BB		BBBK1
s "yy"sss "yy" " ""r5   c                     V P                   w  r#\        \        P                  ! V4      V4      pV'       d!   \        \        P                  ! V4      V4      # R # r?   )rK   r   r   rT   r   rw   s   &&   r3   r<   r<     s>     		ID!))C.+.G199T?K00r5   c                     V P                   '       d%   \        \        P                  ! V 4      V4      R J d   R # \        P                  ! V 4      \        V4      9   d   R# R# r`   )ra   r   r   rV   r   r   r;   s   &&r3   r<   r<   "  sC    NNNT*K8EAyy)K00 1r5   c                 V    \        \        P                  ! V P                  4      V4      # r?   )r   r   r   rD   r;   s   &&r3   r<   r<   *  s    qyy"K00r5   c                 ~    V P                   '       g   R # \        \        P                  ! V P                  4      V4      # r?   )rf   r   r   r   rg   r;   s   &&r3   r<   r<   .  s(    <<<199T[[);77r5   c                     R # ri   rj   r;   s   &&r3   r<   r<   5  rk   r5   c                     R # r|   rj   r;   s   &&r3   r<   r<   9  r}   r5   c                 6    \        \        P                  W4      # r?   )r4   r   r   r;   s   &&r3   r<   r<   =  s    !))T77r5   c                    a \         ;QJ d)    V3R  lV P                   4       F  '       d   K   RM	  RM! V3R  lV P                   4       4      '       d   R# R# )c              3   d   <"   T F%  p\        \        P                  ! V4      S4      x  K'  	  R # 5ir?   )r   r   fullrankrB   s   & r3   rE   rF   F  #     
B	3qzz#,,	rG   FTNr^   r;   s   &fr3   r<   r<   D  5    
s
B		
Bsss
B		
BBB Cr5   c                     V P                   w  r#\        \        P                  ! V4      V4      pV'       dH   \        \        P                  ! V4      ( V4      '       d!   \        \        P
                  ! V4      V4      # R # r?   )rK   r   r   rT   rU   r   rw   s   &&   r3   r<   r<   I  sV     		ID!))C.+.G3

3'551::d#[11r5   c                     R # ri   rj   r;   s   &&r3   r<   r<   R  rk   r5   c                     R # r|   rj   r;   s   &&r3   r<   r<   V  r}   r5   c                 j    V P                   ^ ,          ^8H  ;'       d    V P                   ^,          ^8H  # r7   r9   r;   s   &&r3   r<   r<   Z  r   r5   c                 V    \        \        P                  ! V P                  4      V4      # r?   )r   r   r   rD   r;   s   &&r3   r<   r<   ^      qzz$((#[11r5   c                 j    \        \        P                  ! V P                  4      V4      '       d   R # R# r-   )r   r   r   rg   r;   s   &&r3   r<   r<   b  s$    
1<<$k22 3r5   c           	      ^  a V P                  4       w  r#\        ;QJ d)    V3R  lVP                   4       F  '       d   K   RM	  RM! V3R  lVP                   4       4      '       d
   V^ 8  d   R# \        VP                  4      ^8  d   VP                  ^ ,          VP                  R,          P                  8X  dn   \        \        P                  ! VP                  ^ ,          4      S4      '       d5   \        \        P                  ! \        VP                  ^R !  4      S4      # R# R# R# )c              3   d   <"   T F%  p\        \        P                  ! V4      S4      x  K'  	  R # 5ir?   r   r   positive_definiterB   s   & r3   rE   rF   m  s-      "  ##C(+66 rG   FTNrH   )
rI   rJ   rK   rM   rN   r   r   r   r   r   rO   s   &f  r3   r<   r<   j  s    %%'LF "yy" "yy" 	" 	"&,qjDII!		!		"/AJJtyy|,k::1&&DIIaO$&'24 	4 ; 0 	r5   c                 x    \        \        P                  ! V P                  ^ ,          4      V4      '       d   R# R# )r8   TN)r   r   r   rK   r;   s   &&r3   r<   r<   v  s,     1tyy|,k:: ;r5   c                    a \         ;QJ d)    V3R  lV P                   4       F  '       d   K   RM	  RM! V3R  lV P                   4       4      '       d   R# R# )c              3   d   <"   T F%  p\        \        P                  ! V4      S4      x  K'  	  R # 5ir?   r   rB   s   & r3   rE   rF   ~  s-      "  q""3'55 rG   FTNr^   r;   s   &fr3   r<   r<   |  sB    
s "yy"sss "yy" " ""r5   c                 z    V P                   '       g   R # \        P                  ! V 4      \        V4      9   d   R# R# r`   )ra   r   r   r   r;   s   &&r3   r<   r<     s.    >>>4 Ik$:: ;r5   c                     R # ri   rj   r;   s   &&r3   r<   r<     rk   r5   c                     R # r|   rj   r;   s   &&r3   r<   r<     r}   r5   c                 j    V P                   ^ ,          ^8H  ;'       d    V P                   ^,          ^8H  # r7   r9   r;   s   &&r3   r<   r<     r   r5   c                 V    \        \        P                  ! V P                  4      V4      # r?   )r   r   r   rD   r;   s   &&r3   r<   r<     s    q""488,k::r5   c                 ~    V P                   '       g   R # \        \        P                  ! V P                  4      V4      # r?   )rf   r   r   r   rg   r;   s   &&r3   r<   r<     s*    <<<1&&t{{3[AAr5   c                    a V P                  4       w  r#\        ;QJ d    V3R  lV 4       F  '       d   K   RM	  RM! V3R  lV 4       4      '       d   R# R# )c              3   d   <"   T F%  p\        \        P                  ! V4      S4      x  K'  	  R # 5ir?   r   r   upper_triangularrC   mr2   s   & r3   rE   rF     &     
EHq3q!!!$k22HrG   FTNas_coeff_matricesrJ   r1   r2   rP   matricess   &f  r3   r<   r<     >    --/F
s
EH
Esss
EH
EEE Fr5   c                    a \         ;QJ d)    V3R  lV P                   4       F  '       d   K   RM	  RM! V3R  lV P                   4       4      '       d   R# R# )c              3   d   <"   T F%  p\        \        P                  ! V4      S4      x  K'  	  R # 5ir?   r   rB   s   & r3   rE   rF     &     
J	3q!!#&44	rG   FTNr^   r;   s   &fr3   r<   r<     5    
s
J		
Jsss
J		
JJJ Kr5   c                 b   V P                   w  r#\        \        P                  ! V4      V4      pV'       g   R # \        \        P                  ! V4      ( V4      pV'       g.   VR8X  dG   \        \        P
                  ! V4      V4      '       d!   \        \        P                  ! V4      V4      # R # rS   )rK   r   r   rT   rU   rV   r   rW   s   &&    r3   r<   r<     {     		ID!))C.+.G

3'5L-T 2K@@1%%d+[99r5   c                 R    \         P                  ! V 4      \        V4      9   d   R # R# r-   )r   r   r   r;   s   &&r3   r<   r<     "    $9[#99 :r5   c                     R # ri   rj   r;   s   &&r3   r<   r<     rk   r5   c                 j    V P                   ^ ,          ^8H  ;'       d    V P                   ^,          ^8H  # r7   r9   r;   s   &&r3   r<   r<     r   r5   c                 V    \        \        P                  ! V P                  4      V4      # r?   r   r   lower_triangularrD   r;   s   &&r3   r<   r<         q!!$((+[99r5   c                 V    \        \        P                  ! V P                  4      V4      # r?   r   r   r   rD   r;   s   &&r3   r<   r<     r   r5   c                 ~    V P                   '       g   R # \        \        P                  ! V P                  4      V4      # r?   )rf   r   r   r   rg   r;   s   &&r3   r<   r<     *    <<<1%%dkk2K@@r5   c                 6    \        \        P                  W4      # r?   )r4   r   r   r;   s   &&r3   r<   r<         !,,d@@r5   c                    a V P                  4       w  r#\        ;QJ d    V3R  lV 4       F  '       d   K   RM	  RM! V3R  lV 4       4      '       d   R# R# )c              3   d   <"   T F%  p\        \        P                  ! V4      S4      x  K'  	  R # 5ir?   r   r   r   r   s   & r3   rE   rF     r   rG   FTNr   r   s   &f  r3   r<   r<     r   r5   c                    a \         ;QJ d)    V3R  lV P                   4       F  '       d   K   RM	  RM! V3R  lV P                   4       4      '       d   R# R# )c              3   d   <"   T F%  p\        \        P                  ! V4      S4      x  K'  	  R # 5ir?   r   rB   s   & r3   rE   rF     r   rG   FTNr^   r;   s   &fr3   r<   r<     r   r5   c                 b   V P                   w  r#\        \        P                  ! V4      V4      pV'       g   R # \        \        P                  ! V4      ( V4      pV'       g.   VR8X  dG   \        \        P
                  ! V4      V4      '       d!   \        \        P                  ! V4      V4      # R # rS   )rK   r   r   rT   rU   rV   r   rW   s   &&    r3   r<   r<     r   r5   c                 R    \         P                  ! V 4      \        V4      9   d   R # R# r-   )r   r   r   r;   s   &&r3   r<   r<     r   r5   c                     R # ri   rj   r;   s   &&r3   r<   r<     rk   r5   c                 j    V P                   ^ ,          ^8H  ;'       d    V P                   ^,          ^8H  # r7   r9   r;   s   &&r3   r<   r<     r   r5   c                 V    \        \        P                  ! V P                  4      V4      # r?   r   r;   s   &&r3   r<   r<     r   r5   c                 V    \        \        P                  ! V P                  4      V4      # r?   r   r;   s   &&r3   r<   r<     r   r5   c                 ~    V P                   '       g   R # \        \        P                  ! V P                  4      V4      # r?   )rf   r   r   r   rg   r;   s   &&r3   r<   r<   
  r   r5   c                 6    \        \        P                  W4      # r?   )r4   r   r   r;   s   &&r3   r<   r<     r   r5   c                      V P                   R9   # )r8   )r   r   r9   )r1   s   &r3   _is_empty_or_1x1r     s    ::)))r5   c                    a \        V 4      '       d   R # V P                  4       w  r#\        ;QJ d    V3R lV 4       F  '       d   K   RM	  R M! V3R lV 4       4      '       d   R # R# )Tc              3   d   <"   T F%  p\        \        P                  ! V4      S4      x  K'  	  R # 5ir?   r   r   rL   r   s   & r3   rE   rF      s#     
=Hq3qzz!}k**HrG   FN)r   r   rJ   r   s   &f  r3   r<   r<     sK    --/F
s
=H
=sss
=H
=== >r5   c                 b   V P                   w  r#\        \        P                  ! V4      V4      pV'       g   R # \        \        P                  ! V4      ( V4      pV'       g.   VR8X  dG   \        \        P
                  ! V4      V4      '       d!   \        \        P                  ! V4      V4      # R # rS   )rK   r   r   rT   rU   rV   rL   rW   s   &&    r3   r<   r<   #  sy     		ID!))C.+.G

3'5L-T 2K@@1::d#[11r5   c                    a \         ;QJ d)    V3R  lV P                   4       F  '       d   K   RM	  RM! V3R  lV P                   4       4      '       d   R# R# )c              3   d   <"   T F%  p\        \        P                  ! V4      S4      x  K'  	  R # 5ir?   r   rB   s   & r3   rE   rF   2  r   rG   FTNr^   r;   s   &fr3   r<   r<   0  r   r5   c                 x    \        V 4      '       d   R # \        P                  ! V 4      \        V4      9   d   R # R# r-   )r   r   rL   r   r;   s   &&r3   r<   r<   5  s.    zz$9[11 2r5   c                 j    V P                   ^ ,          ^8H  ;'       d    V P                   ^,          ^8H  # r7   r9   r;   s   &&r3   r<   r<   <  r   r5   c                 V    \        \        P                  ! V P                  4      V4      # r?   )r   r   rL   rD   r;   s   &&r3   r<   r<   @  r   r5   c                     \        V 4      '       d   R # V P                  '       g   R# \        \        P                  ! V P
                  4      V4      # r-   )r   rf   r   r   rL   rg   r;   s   &&r3   r<   r<   D  s6    <<<1::dkk*K88r5   c                     R # ri   rj   r;   s   &&r3   r<   r<   M  rk   r5   c                 6    \        \        P                  W4      # r?   )r4   r   rL   r;   s   &&r3   r<   r<   Q  s    !**d88r5   c                   a a \         ;QJ d*    VV 3R lVP                   4       F  '       d   K   R# 	  R# ! VV 3R lVP                   4       4      # )zBlock Matrix elements. c              3   H   <"   T F  p\        S! V4      S4      x  K  	  R # 5ir?   )r   )rC   br2   r0   s   & r3   rE   BM_elements.<locals>.<genexpr>Z  s     C{!s9Q<--{s   "FT)rJ   r   r/   s   f&fr3   BM_elementsr
  X  s4    3Ct{{C33C3C3Ct{{CCCr5   c                :    \        V ! VP                  4      V4      # )zMatrix Slice elements. )r   rg   r/   s   &&&r3   MS_elementsr  \  s    y%{33r5   c           	          \        VP                  R  4      pVR,          VR,          re\        \        \	        V!  W14      \        \	        V!  W04      .4      # )c                 "    \        V \        4      # r?   )
isinstancer   )xs   &r3   <lambda>!MatMul_elements.<locals>.<lambda>a  s    *Q
";r5   FT)r   rK   r   r   r   )matrix_predicatescalar_predicater1   r2   dfactorsr   s   &&&&   r3   MatMul_elementsr  `  sT    TYY;<A%!D'X%/;I%*KJL M Mr5   c                 6    \        W\        P                  4      # r?   )r   r   integer_elementsr;   s   &&r3   r<   r<   h       T0B0BCCr5   c                     V P                   w  r#\        \        P                  ! V4      V4      pV'       g   R # VP                  R8X  d!   \        \        P
                  ! V4      V4      # R # rS   )rK   r   r   rT   rv   r  rw   s   &&   r3   r<   r<   m  sP     		ID!))C.+.G
%1%%d+[99r5   c                     R # ri   rj   r;   s   &&r3   r<   r<   x  rk   r5   c                 T    \        \        P                  \        P                  W4      # r?   )r  r   r  rT   r;   s   &&r3   r<   r<   |      1--qyy$LLr5   c                 6    \        \        P                  W4      # r?   )r  r   r  r;   s   &&r3   r<   r<         q))4==r5   c                 6    \        \        P                  W4      # r?   )r
  r   r  r;   s   &&r3   r<   r<     r   r5   c                 6    \        W\        P                  4      # r?   )r   r   real_elementsr;   s   &&r3   r<   r<     s     T@@r5   c                 b   V P                   w  r#\        \        P                  ! V4      V4      pV'       g   R # \        \        P                  ! V4      ( V4      pV'       g.   VR8X  dG   \        \        P
                  ! V4      V4      '       d!   \        \        P                  ! V4      V4      # R # rS   )rK   r   r   rT   rU   rV   r#  rW   s   &&    r3   r<   r<     sy     		ID!))C.+.G

3'5L-T 2K@@1??4(+66r5   c                 T    \        \        P                  \        P                  W4      # r?   )r  r   r#  realr;   s   &&r3   r<   r<     s    1??AFFDFFr5   c                 6    \        \        P                  W4      # r?   )r  r   r#  r;   s   &&r3   r<   r<         q::r5   c                 6    \        \        P                  W4      # r?   )r
  r   r#  r;   s   &&r3   r<   r<     r(  r5   c                 6    \        W\        P                  4      # r?   )r   r   complex_elementsr;   s   &&r3   r<   r<     r  r5   c                 b   V P                   w  r#\        \        P                  ! V4      V4      pV'       g   R # \        \        P                  ! V4      ( V4      pV'       g.   VR8X  dG   \        \        P
                  ! V4      V4      '       d!   \        \        P                  ! V4      V4      # R # rS   )rK   r   r   rT   rU   rV   r+  rW   s   &&    r3   r<   r<     r   r5   c                 T    \        \        P                  \        P                  W4      # r?   )r  r   r+  complexr;   s   &&r3   r<   r<     r  r5   c                 6    \        \        P                  W4      # r?   )r  r   r+  r;   s   &&r3   r<   r<     r   r5   c                 6    \        \        P                  W4      # r?   )r
  r   r+  r;   s   &&r3   r<   r<     r   r5   c                     R # ri   rj   r;   s   &&r3   r<   r<     rk   r5   N)?__doc__sympy.logic.boolalgr   sympy.assumptionsr   r   sympy.assumptions.handlersr   sympy.matricesr   sympy.matrices.expressionsr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   &sympy.matrices.expressions.blockmatrixr   )sympy.matrices.expressions.factorizationsr   "sympy.matrices.expressions.fourierr   sympy.core.logicr   sympy.utilities.iterablesr   
sympy.corer   predicates.matricesr   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r4   registerr<   register_manyr   r
  r  r  rj   r5   r3   <module>rA     s  
 * $ 8 %     ? C 2 & * 5 5 5 5 *%* &* V$G %G V$
 %
 V$H %H \* + !!)Z8, 9, !!'953 63 [): *: X& ' f% & f% & f% & l+ , ""8W5 6 j) * i(5 )5 i(4 )4 k*; +; j)$ *$
 j) *
 k* +4 o.M /M f% & f% & f% &
 l+ , h' ( j) * ""7I64 74 k*; +; m,; -; 6" # 6" # <( ) 31 41 ;'8 (8 X. / :& ' =)8 *8 F# $ F# $ H% & J' ( I&5 '5   )42 52 K( ) ##F+	4 ,	4 ##F+ ,
 ##F+ ,
 ##L1 2 ##H- . ##J/ 0 ##I.5 /5 (()<; =; ##K0B 1B ""6* +
 ""6* + ""6*
 +
 ""<0 1 ''*= > ""9-5 .5 ""9-: .: ""7+: ,: "";/A 0A ""=1A 2A
 ""6* +
 ""6* + ""6*
 +
 ""<0 1 ''*= > ""9-5 .5 ""9-: .: ""7+: ,: "";/A 0A ""=1A 2A* F# $ F#
 $
 F# $ L) * I&5 '5   )42 52 K(9 )9   XzR S M*9 +9D4M ''_f	9DD ""6* + '')ZH I ""6*M +M "";/> 0> "";/> 0> $$[-
E9AA '
 (
 'G (G ,; -; ,; -; '']OVUI'D'D ""6*
 +
 ""6*M +M "";/> 0> "";/> 0> ""3' (r5   