+
    i+&                         ^ RI Ht ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	H
t
 ^ RIHt ^ RIHt ^ RIHt  ! R	 R
4      t];ttR# )    )Expr)Dummy)_sympify)CoercionFailed)Polyparallel_poly_from_expr)QQ)DomainMatrix)DomainScalarc                   <  a a ] tR t^t oRtRR/R lt]R 4       t]V 3R l4       tR t	]RR/R l4       t
R	 tR
 t]R 4       t]R 4       t]R 4       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 t]R 4       t]R 4       tR!R lt R t!R t"R t#Vt$V ;t%# )"MutablePolyDenseMatrixa  
A mutable matrix of objects from poly module or to operate with them.

Examples
========

>>> from sympy.polys.polymatrix import PolyMatrix
>>> from sympy import Symbol, Poly
>>> x = Symbol('x')
>>> pm1 = PolyMatrix([[Poly(x**2, x), Poly(-x, x)], [Poly(x**3, x), Poly(-1 + x, x)]])
>>> v1 = PolyMatrix([[1, 0], [-1, 0]], x)
>>> pm1*v1
PolyMatrix([
[    x**2 + x, 0],
[x**3 - x + 1, 0]], ring=QQ[x])

>>> pm1.ring
ZZ[x]

>>> v1*pm1
PolyMatrix([
[ x**2, -x],
[-x**2,  x]], ring=QQ[x])

>>> pm2 = PolyMatrix([[Poly(x**2, x, domain='QQ'), Poly(0, x, domain='QQ'), Poly(1, x, domain='QQ'),             Poly(x**3, x, domain='QQ'), Poly(0, x, domain='QQ'), Poly(-x**3, x, domain='QQ')]])
>>> v2 = PolyMatrix([1, 0, 0, 0, 0, 0], x)
>>> v2.ring
QQ[x]
>>> pm2*v2
PolyMatrix([[x**2]], ring=QQ[x])

ringNc          	     J   V'       g   Vf   \        R4      h^ ^ . R3w  r4rVEM\        V^ ,          \        4      '       d   V^ ,          VR,          rgV'       g   ^ ^ . rTpEMf\        V^ ,          \        \        34      '       d9   \	        V4      \	        V^ ,          4      rCV UU	u. uF  q F  qNK  	  K  	  ppp	EM\	        V4      ^rCTpMVR,           U
u. uF  p
\        V
4      NK  	  up
\        \        \        .8X  d'   V^ ,          V^,          V^,          VR,          3w  r4rVMVR,           U
u. uF  p
\        V
4      NK  	  up
\        \        \        R 4      .8X  dZ   V^ ,          V^,          V^,          VR,          3w  r4r\        V4       UUu. uF  p\        V4       F
  q! W4      NK  	  K  	  pppM\        R4      h\	        V4      ^8X  d'   \        V^ ,          \        4      '       d
   V^ ,          pV P                  W4WVV4      # u up	pi u up
i u up
i u uppi )Nz6The ring needs to be specified for an empty PolyMatrix   NN:N   N:r   NNc                      ^ # r    r       v/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/sympy/polys/polymatrix.py<lambda>0MutablePolyDenseMatrix.__new__.<locals>.<lambda>G   s    Ar   zInvalid argumentsr   )		TypeError
isinstancelisttuplelentypeintrange	from_list)clsr   argsrowscolsitemsgenselementsroweafuncijs   &$*           r   __new__MutablePolyDenseMatrix.__new__0   s   | XYY&'Bl#DtQ&&!!Wd2hd$%q"EEHQK$77 ]C,<d&.<hs1h< !]Ad #Bx(x!d1gx(S#t,<<&*1gtAwQb&I#Dt#Bx(x!d1gx(S#tI,GG%)!Wd1gtAwR%H"D).tJAeDkT!ZkZEJE/00 t9>ja%887D }}Td;;) =
 ) ) Ks   $HH1H"Hc           
     T  aa V Uu. uF  p\        V4      NK  	  ppV'       d>   \        ;QJ d    R  V 4       F  '       d   K   RM	  RM! R  V 4       4      '       d   RpMRpVe8   \        V\        4      '       d!   \	        ^ \        4       VR7      P                  pMzV'       dK   V^ ,          pVR,           F  p	VP                  V	4      w  rK  	  VP                  VP                  ,          pM(\        W4RR7      w  r;VR,          VR,          ,          pRpV'       dW   \	        ^ VP                  VP                  R7      oVP                  P                  oVV3R lpV Uu. uF
  q! V4      NK  	  ppM0VP                  pV Uu. uF  q! VP                  4       4      NK  	  pp\        V4       UUu. uF3  p\        V4       Uu. uF  pVVV,          V,           ,          NK  	  upNK5  	  ppp\!        VW3V4      pV P#                  V4      # u upi u upi u upi u upi u uppi )	c              3   B   "   T F  p\        V\        4      x  K  	  R # 5iN)r   r   ).0items   & r   	<genexpr>3MutablePolyDenseMatrix.from_list.<locals>.<genexpr>Z   s     BEDD$//Es   FTdomainr   )fieldr:   r(   c                 p   < S! V P                  S4      ^ ,          P                  P                  4       4      # r   )unifyrepto_list)pp_ringto_rings   &r   r   2MutablePolyDenseMatrix.from_list.<locals>.<lambda>r   s&    WQWWV_Q-?-C-C-K-K-M%Nr   )r   allr   strr   r   r:   r=   r(   r   symbolsr   r"   
from_sympyas_exprr!   r
   from_dm)r#   r%   r&   r'   r(   r   r6   polysr@   p2_infoconvert_polyr)   convert_exprr+   r.   r/   elements_loldmrA   rB   s   &&&&&&              @@r   r"    MutablePolyDenseMatrix.from_listU   s    -22ED$E2SSBEBSSSBEBBBEE $$$Auwt4;;aABiiwwr{1  88AFF#D1%TJKE>$v,/DE !T\\$++>Fii))GNL167AQH7H??L;@A5aQYY[15HA NSSW[Y[uT{C{!!D&1*--{C[Y,d;{{2E 34 8 B DYs)   H$HH5H$ H'H$H$c                   < \         SV `  V 4      pVP                  4       pVP                  pWn        W2n        VP                  Vn        VP                  Vn        V# r4   )superr0   	to_sparser:   _dmr   rF   r(   )r#   rQ   objR	__class__s   &&  r   rI   MutablePolyDenseMatrix.from_dm}   sJ    goc"\\^IIXX
99
r   c                6    V P                   P                  4       # r4   )rV   	to_Matrixselfs   &r   r\    MutablePolyDenseMatrix.to_Matrix   s    xx!!##r   c               P    V ! . VP                   OVP                  4       NVO5R V/ # )r   )shapeflat)r#   otherr   r(   s   &&$*r   from_Matrix"MutablePolyDenseMatrix.from_Matrix   s)    @EKK@@@4@@r   c                B    V P                  V P                  4       V4      # r4   )rd   r\   )r^   r(   s   &&r   set_gensMutablePolyDenseMatrix.set_gens   s     0$77r   c                   V P                   V P                  ,          '       d9   R \        V P                  4       4      RR ,           RV P                   R2,           # RV P                    RV P                   RV P                   R2# )r   Nz, ring=)zPolyMatrix(z, z, [], ring=)r%   r&   reprr\   r   r]   s   &r   __repr__MutablePolyDenseMatrix.__repr__   sl    99tyy  D!123B77GDII;a:PPP 2dii[DII;aPPr   c                .    V P                   P                  # r4   )rV   ra   r]   s   &r   ra   MutablePolyDenseMatrix.shape   s    xx~~r   c                (    V P                   ^ ,          # r   ra   r]   s   &r   r%   MutablePolyDenseMatrix.rows       zz!}r   c                (    V P                   ^,          # r   rr   r]   s   &r   r&   MutablePolyDenseMatrix.cols   rt   r   c                <    V P                   V P                  ,          # r4   )r%   r&   r]   s   &r   __len__MutablePolyDenseMatrix.__len__   s    yy499$$r   c                  a  V 3R  lpS P                   p\        V\        4      '       d/   VP                  4       V,          pV Uu. uF
  qR! V4      NK  	  up# \        V\        4      '       d5   \        VS P                  4      w  rgW6V3,          pV! VP                  4      # Vw  rg\        V\        4      '       d1   \        V\        4      '       d   V! W6V3,          P                  4      # S P                  W6V3,          4      # u upi )c                    < SP                   P                  P                  pSP                   P                  P                  p\        V P	                  4       W!R 7      # )r9   )rV   r:   rF   r   to_dict)vgroundr(   r^   s   &  r   to_poly3MutablePolyDenseMatrix.__getitem__.<locals>.to_poly   s<    XX__++F88??**D		T99r   )	rV   r   slicerb   r    divmodr&   elementrI   )	r^   keyr   rQ   r'   r6   r.   r/   r+   s	   f&       r   __getitem__"MutablePolyDenseMatrix.__getitem__   s    	:
 XXc5!!GGIcNE.34edGDMe44S!!#tyy)DAQ3A199%%a*Q"4"42d8++,,<<a4)) 5s   Dc                v    \        V \        V4      4      '       g   \        # V P                  VP                  8H  # r4   )r   r   NotImplementedrV   r^   rc   s   &&r   __eq__MutablePolyDenseMatrix.__eq__   s,    $U,,!!xx599$$r   c                    \        V\        V 4      4      '       d-   V P                  V P                  VP                  ,           4      # \        # r4   r   r   rI   rV   r   r   s   &&r   __add__MutablePolyDenseMatrix.__add__   5    eT$Z((<<599 455r   c                    \        V\        V 4      4      '       d-   V P                  V P                  VP                  ,
          4      # \        # r4   r   r   s   &&r   __sub__MutablePolyDenseMatrix.__sub__   r   r   c                   \        V\        V 4      4      '       d-   V P                  V P                  VP                  ,          4      # \        V\        4      '       d   \        V4      p\        V\        4      '       dK   V P                  p \        VP                  V4      V4      pV P                  V P                  V,          4      # \        #   \        \        3 d    \        P                  ! T4      p LQi ; ir4   )r   r   rI   rV   r    r   r   r   r   rG   r   
ValueErrorr   )r^   rc   Kxother_dss   &&  r   __mul__MutablePolyDenseMatrix.__mul__   s    eT$Z((<<599 455s##UOEeT""B:'e(<bA <<8 344 #J/ :'2259:s   C 'C98C9c                    \        V\        4      '       d   \        V4      p\        V\        4      '       d8   \        P
                  ! V4      pV P                  W P                  ,          4      # \        # r4   )	r   r    r   r   r   rG   rI   rV   r   )r^   rc   r   s   && r   __rmul__MutablePolyDenseMatrix.__rmul__   sQ    eS!!UOEeT""#..u5H<<88 344r   c                   \        V\        4      '       d   VP                  4       pM!\        V\        4      '       d   \	        V4      p\        V\
        4      '       g   \        # V P                  P                  V4      pV P                  P                  ^V,          V P                  4      p\        W P                  4      pV P                  V,          pV P                  V4      # rv   )r   r   rH   r    r   r   r   r:   rG   r   convert_fromr   rV   rI   )r^   rc   inverserQ   s   &&  r   __truediv__"MutablePolyDenseMatrix.__truediv__   s    eT""MMOEs##UOE%&&!!&&u-))((5$++>w		2XX||Br   c                :    V P                  V P                  ) 4      # r4   )rI   rV   r]   s   &r   __neg__MutablePolyDenseMatrix.__neg__   s    ||TXXI&&r   c                T    V P                  V P                  P                  4       4      # r4   )rI   rV   	transposer]   s   &r   r    MutablePolyDenseMatrix.transpose   s    ||DHH..011r   c                z    \         P                  ! V P                  VP                  4      pV P                  V4      # r4   )r
   hstackrV   rI   r^   rc   rQ   s   && r   row_joinMutablePolyDenseMatrix.row_join   +      5995||Br   c                z    \         P                  ! V P                  VP                  4      pV P                  V4      # r4   )r
   vstackrV   rI   r   s   && r   col_joinMutablePolyDenseMatrix.col_join   r   r   c                v    V P                  4       P                  V4      pV P                  W P                  4      # r4   )r\   	applyfuncrd   r(   )r^   r-   Ms   && r   r    MutablePolyDenseMatrix.applyfunc   s.    NN&&t,99--r   c                d    V P                  \        P                  ! V\        V,          4      4      # r4   )rI   r
   eyer	   )r#   nr(   s   &&&r   r   MutablePolyDenseMatrix.eye  s"    {{<++Ar$x899r   c                f    V P                  \        P                  ! W3\        V,          4      4      # r4   )rI   r
   zerosr	   )r#   mr   r(   s   &&&&r   r   MutablePolyDenseMatrix.zeros  s$    {{<--qfbh?@@r   c                   V P                   P                  '       d;   \        ;QJ d    R  V  4       F  '       d   K   RM	  RM! R  V  4       4      '       g   \        R4      hV P                  pVP                  VP                   P                   4      pVP                  4       w  rVVP                  VP                   4      pV P                  V4      V3# )c              3   8   "   T F  qP                   x  K  	  R # 5ir4   	is_groundr5   r@   s   & r   r7   .MutablePolyDenseMatrix.rref.<locals>.<genexpr>       ,G$Q[[$   FTz1PolyMatrix rref is only for ground field elements)r:   is_FieldrD   r   rV   
convert_torrefrI   )r^   simplifynormalize_lastrQ   	dm_grounddm_rrefpivotss   &&&    r   r   MutablePolyDenseMatrix.rref  s    $$$,G$,G,G$,G)G)GPQQXXMM"))"2"23	#..*$$RYY/||G$f,,r   c                D   V P                   P                  '       d;   \        ;QJ d    R  V  4       F  '       d   K   RM	  RM! R  V  4       4      '       g   \        R4      hV P                  pV P                   V P
                  r2VP                  V4      P                  RR7      P                  V4      pVP                  4       p\        VP                  ^,          4       Uu. uF  qeRV3,          NK  	  ppV Uu. uF  qP                  V4      NK  	  up# u upi u upi )c              3   8   "   T F  qP                   x  K  	  R # 5ir4   r   r   s   & r   r7   3MutablePolyDenseMatrix.nullspace.<locals>.<genexpr>  r   r   FTz6PolyMatrix nullspace is only for ground field elements)divide_last:NNN)r:   r   rD   r   rV   r   r   	nullspacer   r!   ra   rI   )	r^   rQ   Kr   dm_null_rowsdm_nullr.   dm_basisdmvecs	   &        r   r    MutablePolyDenseMatrix.nullspace  s    $$$,G$,G,G$,G)G)GUVVXXTYY2}}Q'11d1CNNrR((**/a0@*AB*AQAaCLL*AB19:U#:: C:s   #D<Dc                V    V P                   \        V P                  4       4      ,
          # r4   )r&   r   r   r]   s   &r   rankMutablePolyDenseMatrix.rank!  s    yy3t~~/000r   r   )ignorer   )&__name__
__module____qualname____firstlineno____doc__r0   classmethodr"   rI   r\   rd   rg   rm   propertyra   r%   r&   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes____classdictcell____classcell__)rY   __classdict__s   @@r   r   r      s*     D#< #<J % %N  $ AD A A8Q      %*.%


 '2  . : : A A-	;1 1r   r   N)sympy.core.exprr   sympy.core.symbolr   sympy.core.sympifyr   sympy.polys.polyerrorsr   sympy.polys.polytoolsr   r   sympy.polys.domainsr	   sympy.polys.matricesr
   !sympy.polys.matrices.domainscalarr   r   MutablePolyMatrix
PolyMatrixr   r   r   <module>r      s7      # ' 1 ? " - :U1 U1n "8 7 Jr   