+
    ‹°³j+&  ã                   ó†   € ^ 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  q™NK  	  K  	  ppp	EM\	        V4      ^rCTpMüVR,           U
u. uF  p
\        V
4      NK  	  up
\        \        \        .8X  d'   V^ ,          V^,          V^,          VR,          3w  r4rVM V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Û! WÍ4      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   ó    ÚW/home/luca/screen-checking/.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�¤×&Ò&Ø! !�W d¨2¥h�dßà$% q¨"˜E�™EÜ˜H Q�K¬$´¨×7Ò7ä  ›]¬C°¸µÓ,<�dÙ&.Ô<¡h˜sº°1š¹™¡h�Ñ<‘ô ! ›]¨A�dØ ‘Ø# BžxÓ(™x˜!Œd�1Žg™xÑ(¬S´#´tÐ,<Ô<à&*¨1¥g¨t°A­w¸¸Q½ÀÀbÅÐ&IÑ#ˆD˜˜tØ# BžxÓ(™x˜!Œd�1Žg™xÑ(¬S´#´t¹I³Ð,GÔGà%)¨!¥W¨d°1­g°t¸AµwÀÀRÅÐ%HÑ"ˆD˜Ü).¨t¬ÔJ© A¼eÀD¾k¸�T˜!–Z¹k‘Z©ˆEÑJˆEäÐ/Ó0Ð0ô ˆt‹9˜Œ>œj¨¨a­´%×8Ò8Ø˜•7ˆDð �}‰}˜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  rŠK  	  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   é € ÐB¹E°Dœ D¬$×/Ð/»Eùs   ‚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&   ø€ ¡W¨Q¯W©W°V«_¸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Ó2©E D”˜$–©EˆÐ2ß—S“SÑB¹EÓB—S—S’SÑB¹EÓB×BÒBØ‰EàˆEð Òä˜$¤×$Ò$Ü˜Aœu›w¨tÔ4×;Ñ;�øßØ�a•ˆAØ˜B—i�i�Ø—w‘w˜r“{‘�‘1ñ  à—8‘8˜AŸF™FÕ#‰Dä1°%ÀTÔJ‰KˆEØ˜•> $ v¥,Õ/ˆDØˆE÷ Ü˜!˜TŸ\™\°$·+±+Ô>ˆFØ—i‘i×)Ñ)ˆGÝNˆLÙ16Ó7±¨A˜ Qž±ˆHÐ7ˆHàŸ?™?ˆLÙ;@ÓA¹5°a˜ Q§Y¡Y£[Ö1¹5ˆHÐAô NSÐSWÌ[ÔYÉ[È´u¸T´{ÓC±{°!˜ ! D¥&¨1¥*×-Ð-±{ÔCÉ[ˆÑYÜ˜,¨¨°dÓ;ˆØ�{‰{˜2‹ÐùòE 3ùò4 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   ø€ ä‰g‰o˜cÓ"ˆØ�\‰\‹^ˆØ�I‰IˆØŒØŒØ—X‘XˆŒ
Ø—9‘9ˆŒØˆ
r   c                ó6   € V P                   P                  4       # r4   )rV   Ú	to_Matrix©Úselfs   &r   r\   Ú MutablePolyDenseMatrix.to_Matrixˆ   s   € Ø�x‰x×!Ñ!Ó#Ð#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)   € áÐ@�E—K‘KÐ@ §¡£Ð@°Ò@¸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   € Ø�9‰9�t—y‘y× Ô ØœD §¡Ó!1Ó2°3°BÐ7Õ7¸GÀDÇIÁIÀ;ÈaÐ:PÕPÐPà  §¡ ¨2¨d¯i©i¨[¸ÀDÇIÁIÀ;ÈaÐPÐPr   c                ó.   € V P                   P                  # r4   )rV   ra   r]   s   &r   ra   ÚMutablePolyDenseMatrix.shape˜   s   € à�x‰x�~‰~Ðr   c                ó(   € V P                   ^ ,          # r   ©ra   r]   s   &r   r%   ÚMutablePolyDenseMatrix.rowsœ   ó   € à�z‰z˜!�}Ð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   € Ø�y‰y˜4Ÿ9™9Õ$Ð$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_polyÚ3MutablePolyDenseMatrix.__getitem__.<locals>.to_poly©   s<   ø€ Ø—X‘X—_‘_×+Ñ+ˆFØ—8‘8—?‘?×*Ñ*ˆ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Ò   ø€ õ	:ð
 �X‰Xˆä�cœ5×!Ò!Ø—G‘G“I˜c•NˆEÙ.3Ó4©e d�G˜D–M©eÑ4Ð4Ü˜œS×!Ò!Ü˜#˜tŸy™yÓ)‰DˆAØ�Q�3•ˆAÙ˜1Ÿ9™9Ó%Ð%à‰ˆÜ�aœ×Ò¤*¨Q´×"4Ò"4Ù˜2 ˜d�8×+Ñ+Ó,Ð,à—<‘<  a 4¥Ó)Ð)ùò 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£×,Ò,Ü!Ð!Ø�x‰x˜5Ÿ9™9Ñ$Ð$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   € Ü�eœT $›Z×(Ò(Ø—<‘< §¡¨5¯9©9Õ 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»   € Ü�eœT $›Z×(Ò(Ø—<‘< §¡¨5¯9©9Õ 4Ó5Ð5Ü˜œs×#Ò#Ü˜U“OˆEÜ�eœT×"Ò"Ø—‘ˆBð:Ü'¨¯©°eÓ(<¸bÓA�ð —<‘< §¡¨8Õ 3Ó4Ð4ÜÐøô #¤JÐ/ô :Ü'×2Ò2°5Ó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   € Ü�eœS×!Ò!Ü˜U“OˆEÜ�eœT×"Ò"Ü#×.Ò.¨uÓ5ˆHØ—<‘< ¯8©8Õ 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    € ä�eœT×"Ò"Ø—M‘M“O‰EÜ˜œs×#Ò#Ü˜U“OˆEÜ˜%¤×&Ò&Ü!Ð!à—‘×&Ñ& uÓ-ˆØ—)‘)×(Ñ(¨¨5­°$·+±+Ó>ˆÜ˜w¯	©	Ó2ˆØ�X‰X˜ÕˆØ�|‰|˜BÓÐr   c                ó:   € V P                  V P                  ) 4      # r4   )rI   rV   r]   s   &r   Ú__neg__ÚMutablePolyDenseMatrix.__neg__ò   s   € Ø�|‰|˜TŸX™X˜IÓ&Ð&r   c                óT   € V P                  V P                  P                  4       4      # r4   )rI   rV   Ú	transposer]   s   &r   r§   Ú MutablePolyDenseMatrix.transposeõ   s   € Ø�|‰|˜DŸH™H×.Ñ.Ó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ø   ó+   € Ü× Ò  §¡¨5¯9©9Ó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.   € Ø�N‰NÓ×&Ñ& tÓ,ˆØ×Ñ §9¡9Ó-Ð-r   c                ód   € V P                  \        P                  ! V\        V,          4      4      # r4   )rI   r
   Úeyer	   )r#   Únr(   s   &&&r   r¸   ÚMutablePolyDenseMatrix.eye  s"   € à�{‰{œ<×+Ò+¨A¬r°$­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$   € à�{‰{œ<×-Ò-¨q¨f´b¸µ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Ø�X‰XˆØ—M‘M "§)¡)×"2Ñ"2Ó3ˆ	Ø#Ÿ.™.Ó*‰ˆØ×$Ñ$ R§Y¡YÓ/ˆØ�|‰|˜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  q€P                  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Ø�X‰XˆØ—‘˜TŸY™Yˆ2Ø—}‘} QÓ'×1Ñ1¸dÐ1ÓC×NÑNÈrÓRˆØ×(Ñ(Ó*ˆÜ*/°·±¸aÕ0@Ô*AÓBÑ*A Q˜A˜a˜C—L�LÑ*AˆÐBÙ19Ó:±¨—‘˜UÖ#±Ñ:Ð:ùò CùÚ:s   Ã#DÃ<Dc                óV   € V P                   \        V P                  4       4      ,
          # r4   )r&   r   rÔ   r]   s   &r   ÚrankÚMutablePolyDenseMatrix.rank!  s   € Ø�y‰yœ3˜tŸ~™~Ó/Ó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1ðn "8Ð 7Ð ’Jr   