§
    OŠtj+&  ã                   óŒ   — d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZ  G d	„ d
¦  «        ZexZZdS )é    )ÚExpr)ÚDummy©Ú_sympify)ÚCoercionFailed)ÚPolyÚparallel_poly_from_expr)ÚQQ)ÚDomainMatrix)ÚDomainScalarc                   óR  ‡ — e Zd ZdZddœd„Zed„ ¦   «         Zeˆ fd„¦   «         Zd„ Zeddœd„¦   «         Z	d	„ Z
d
„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zd!d„Zd„ Z d „ Z!ˆ xZ"S )"ÚMutablePolyDenseMatrixax  
    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])

    N)Úringc                óÎ  ‡‡— |s|€t          d¦  «        ‚ddg df\  }Š}}�nut          |d         t          ¦  «        r†|d         |dd …         }}|s	ddg c}Š}�n=t          |d         t          t          f¦  «        r2t	          |¦  «        t	          |d         ¦  «        c}Šd„ |D ¦   «         }nét	          |¦  «        dc}Š|}nÔd„ |d d…         D ¦   «         t
          t
          t          gk    r&|d         |d         |d         |dd …         f\  }Š}}n„d	„ |d d…         D ¦   «         t
          t
          t          d
„ ¦  «        gk    rB|d         |d         |d         |dd …         f\  }ŠŠ}ˆˆfd„t          |¦  «        D ¦   «         }nt          d¦  «        ‚t	          |¦  «        dk    r#t          |d         t          ¦  «        r|d         }|                      |‰|||¦  «        S )Nz6The ring needs to be specified for an empty PolyMatrixr   © é   c                 ó   — g | ]	}|D ]}|‘ŒŒ
S r   r   )Ú.0ÚrowÚes      úT/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/polys/polymatrix.pyú
<listcomp>z2MutablePolyDenseMatrix.__new__.<locals>.<listcomp>?   s%   € Ð<Ð<Ð<˜s¸Ð<Ð<°1˜Ð<Ð<Ð<Ð<ó    c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   ©Útype©r   Úas     r   r   z2MutablePolyDenseMatrix.__new__.<locals>.<listcomp>D   ó   € Ð(Ð(Ð(˜!�d�1‰gŒgÐ(Ð(Ð(r   é   é   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   r   r   s     r   r   z2MutablePolyDenseMatrix.__new__.<locals>.<listcomp>G   r   r   c                  ó   — dS ©Nr   r   r   r   r   ú<lambda>z0MutablePolyDenseMatrix.__new__.<locals>.<lambda>G   s   € ÀA€ r   c                 óL   •— g | ] }t          ‰¦  «        D ]} ‰||¦  «        ‘ŒŒ!S r   ©Úrange)r   ÚiÚjÚcolsÚfuncs      €€r   r   z2MutablePolyDenseMatrix.__new__.<locals>.<listcomp>J   s6   ø€ ÐJÐJÐJ A½eÀD¹k¼kÐJÐJ¸�T�T˜!˜Q‘Z”ZÐJÐJÐJÐJr   zInvalid arguments)	Ú	TypeErrorÚ
isinstanceÚlistÚtupleÚlenÚintr   r(   Ú	from_list)	Úclsr   ÚargsÚrowsÚitemsÚgensÚelementsr+   r,   s	          @@r   Ú__new__zMutablePolyDenseMatrix.__new__0   s  øø€ àð 	1àˆ|ÝÐ XÑYÔYÐYØ&'¨¨B° lÑ#ˆD�$˜˜t™tÝ˜˜Qœ¥Ñ&Ô&ð 	1Ø! !œW d¨1¨2¨2¤h�dˆHØð 
!à$% q¨"Ð!��d˜E™EÝ˜H QœK­$µ¨Ñ7Ô7ð !å  ™]œ]­C°¸´Ñ,<Ô,<�
��dØ<Ð< hÐ<Ñ<Ô<��õ ! ™]œ]¨A�
��dØ ��Ø(Ð(˜t B Q BœxÐ(Ñ(Ô(­Sµ#µtÐ,<Ò<Ð<à&*¨1¤g¨t°A¬w¸¸Q¼ÀÀaÀbÀbÄÐ&IÑ#ˆD�$˜˜t˜tØ(Ð(˜t B Q BœxÐ(Ñ(Ô(­Sµ#µt¸I¸I±´Ð,GÒGÐGà%)¨!¤W¨d°1¬g°t¸A´wÀÀQÀRÀRÄÐ%HÑ"ˆD�$˜˜dØJÐJÐJÐJÐJ­¨t©¬ÐJÑJÔJˆEˆEåÐ/Ñ0Ô0Ð0õ ˆt‰9Œ9˜Š>ˆ>�j¨¨a¬µ%Ñ8Ô8ˆ>Ø˜”7ˆDð �}Š}˜T 4¨°°dÑ;Ô;Ð;r   c                 óæ  ‡‡‡‡‡‡— d„ |D ¦   «         }|rt          d„ |D ¦   «         ¦  «        rd}nd}|�9t          |t          ¦  «        r#t          dt	          ¦   «         |¬¦  «        j        }nm|r@|d         }|dd …         D ]}|                     |¦  «        \  }}	Œ|j        |j                 }n+t          ||d¬¦  «        \  }}
|
d	         |
d
                  }d}|r=t          d|j	        |j        ¬¦  «        Š|j
        j        Šˆˆfd„Šˆfd„|D ¦   «         Šn|j        Šˆfd„|D ¦   «         Šˆˆfd„t          |¦  «        D ¦   «         }t          ||‰f|¦  «        }|                      |¦  «        S )Nc                 ó,   — g | ]}t          |¦  «        ‘ŒS r   r   ©r   Úitems     r   r   z4MutablePolyDenseMatrix.from_list.<locals>.<listcomp>Y   s   € Ð2Ð2Ð2 D•˜$‘”Ð2Ð2Ð2r   c              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S ©N)r.   r   r=   s     r   ú	<genexpr>z3MutablePolyDenseMatrix.from_list.<locals>.<genexpr>Z   s,   è è € ÐBÐB°D� D­$Ñ/Ô/ÐBÐBÐBÐBÐBÐBr   TFr   ©Údomainr   )ÚfieldrC   r8   c                 óz   •—  ‰|                       ‰¦  «        d         j                             ¦   «         ¦  «        S r$   )ÚunifyÚrepÚto_list)ÚpÚp_ringÚto_rings    €€r   r%   z2MutablePolyDenseMatrix.from_list.<locals>.<lambda>r   s/   ø€  W W¨Q¯WªW°V©_¬_¸QÔ-?Ô-C×-KÒ-KÑ-MÔ-MÑ%NÔ%N€ r   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r   r   )r   rI   Úconvert_polys     €r   r   z4MutablePolyDenseMatrix.from_list.<locals>.<listcomp>s   s!   ø€ Ð7Ð7Ð7¨A˜˜ Q™œÐ7Ð7Ð7r   c                 óJ   •— g | ]} ‰|                      ¦   «         ¦  «        ‘Œ S r   )Úas_expr)r   r   Úconvert_exprs     €r   r   z4MutablePolyDenseMatrix.from_list.<locals>.<listcomp>v   s+   ø€ ÐAÐAÐA°a˜˜ Q§Y¢Y¡[¤[Ñ1Ô1ÐAÐAÐAr   c                 óL   •‡— g | ]Šˆˆˆfd „t          ‰¦  «        D ¦   «         ‘Œ S )c                 ó,   •— g | ]}‰‰‰z  |z            ‘ŒS r   r   )r   r*   r+   r9   r)   s     €€€r   r   z?MutablePolyDenseMatrix.from_list.<locals>.<listcomp>.<listcomp>y   s&   ø€ ÐCÐCÐC°!˜ ! D¡&¨1¡*Ô-ÐCÐCÐCr   r'   )r   r)   r+   r9   s    @€€r   r   z4MutablePolyDenseMatrix.from_list.<locals>.<listcomp>y   s;   øø€ ÐYÐYÐYÈÐCÐCÐCÐCÐCÐCµu¸T±{´{ÐCÑCÔCÐYÐYÐYr   )Úallr.   Ústrr   r   rC   rF   r8   r	   Úsymbolsr   r3   Ú
from_sympyr(   r   Úfrom_dm)r4   r6   r+   r7   r8   r   ÚpolysrI   Úp2Ú_ÚinfoÚelements_lolÚdmrP   rM   r9   rJ   rK   s     `          @@@@@r   r3   z MutablePolyDenseMatrix.from_listU   sÅ  øøøøøø€ ð 3Ð2¨EÐ2Ñ2Ô2ˆØð 	•SÐBÐB¸EÐBÑBÔBÑBÔBð 	ØˆEˆEàˆEð Ðå˜$¥Ñ$Ô$ð <Ý˜A�u™wœw¨tÐ4Ñ4Ô4Ô;�øØð 	Ø�a”ˆAØ˜A˜B˜B”ið #ð #�Ø—w’w˜r‘{”{‘��1�1Ø”8˜AœFÔ#ˆDˆDå1°%¸ÀTÐJÑJÔJ‰KˆE�4Ø˜”> $ v¤,Ô/ˆDØˆEð ð 	BÝ˜!˜Tœ\°$´+Ð>Ñ>Ô>ˆFØ”iÔ)ˆGØNÐNÐNÐNÐNˆLØ7Ð7Ð7Ð7°Ð7Ñ7Ô7ˆHˆHàœ?ˆLØAÐAÐAÐA¸5ÐAÑAÔAˆHð ZÐYÐYÐYÐYÍUÐSWÉ[Ì[ÐYÑYÔYˆÝ˜,¨¨t¨°dÑ;Ô;ˆØ�{Š{˜2‰ŒÐr   c                 óÌ   •— t          ¦   «                              | ¦  «        }|                     ¦   «         }|j        }||_        ||_        |j        |_        |j        |_        |S r@   )Úsuperr:   Ú	to_sparserC   Ú_dmr   rU   r8   )r4   r]   ÚobjÚRÚ	__class__s       €r   rW   zMutablePolyDenseMatrix.from_dm}   sQ   ø€ å‰gŒg�oŠo˜cÑ"Ô"ˆØ�\Š\‰^Œ^ˆØŒIˆØˆŒØˆŒØ”XˆŒ
Ø”9ˆŒØˆ
r   c                 ó4   — | j                              ¦   «         S r@   )ra   Ú	to_Matrix©Úselfs    r   rf   z MutablePolyDenseMatrix.to_Matrixˆ   s   € ØŒx×!Ò!Ñ#Ô#Ð#r   c                óN   —  | g |j         ¢|                     ¦   «         ‘|¢R d|iŽS )Nr   )ÚshapeÚflat)r4   Úotherr   r8   s       r   Úfrom_Matrixz"MutablePolyDenseMatrix.from_Matrix‹   s4   € àˆsÐ@�E”KÐ@ §¢¡¤Ð@°Ð@Ð@Ð@¸4Ð@Ð@Ð@r   c                 óR   — |                       |                      ¦   «         |¦  «        S r@   )rm   rf   )rh   r8   s     r   Úset_genszMutablePolyDenseMatrix.set_gens�   s"   € Ø×Ò §¢Ñ 0Ô 0°$Ñ7Ô7Ð7r   c                 óÆ   — | j         | j        z  r8dt          |                      ¦   «         ¦  «        d d…         z   d| j        › d�z   S d| j         › d| j        › d| j        › d�S )Nr   éÿÿÿÿz, ring=ú)zPolyMatrix(z, z, [], ring=)r6   r+   Úreprrf   r   rg   s    r   Ú__repr__zMutablePolyDenseMatrix.__repr__’   st   € ØŒ9�t”yÑ ð 	QØ�D §¢Ñ!1Ô!1Ñ2Ô2°3°B°3Ô7Ñ7Ð:PÀDÄIÐ:PÐ:PÐ:PÑPÐPàP ¤ÐPÐP¨d¬iÐPÐPÀDÄIÐPÐPÐPÐPr   c                 ó   — | j         j        S r@   )ra   rj   rg   s    r   rj   zMutablePolyDenseMatrix.shape˜   s   € àŒxŒ~Ðr   c                 ó   — | j         d         S r$   ©rj   rg   s    r   r6   zMutablePolyDenseMatrix.rowsœ   ó   € àŒz˜!Œ}Ðr   c                 ó   — | j         d         S ©Nr   rw   rg   s    r   r+   zMutablePolyDenseMatrix.cols    rx   r   c                 ó    — | j         | j        z  S r@   )r6   r+   rg   s    r   Ú__len__zMutablePolyDenseMatrix.__len__¤   s   € ØŒy˜4œ9Ñ$Ð$r   c                 óî  ‡ ‡— ˆ fd„Š‰ j         }t          |t          ¦  «        r(|                     ¦   «         |         }ˆfd„|D ¦   «         S t          |t          ¦  «        r2t          |‰ j        ¦  «        \  }}|||f         } ‰|j        ¦  «        S |\  }}t          |t          ¦  «        r-t          |t          ¦  «        r ‰|||f         j        ¦  «        S ‰                      |||f         ¦  «        S )Nc                 ó�   •— ‰j         j        j        }‰j         j        j        }t          |                      ¦   «         ||¬¦  «        S )NrB   )ra   rC   rU   r   Úto_dict)ÚvÚgroundr8   rh   s      €r   Úto_polyz3MutablePolyDenseMatrix.__getitem__.<locals>.to_poly©   s8   ø€ Ø”X”_Ô+ˆFØ”8”?Ô*ˆDÝ˜Ÿ	š	™œ T°&Ð9Ñ9Ô9Ð9r   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r   r   )r   r>   r‚   s     €r   r   z6MutablePolyDenseMatrix.__getitem__.<locals>.<listcomp>²   s!   ø€ Ð4Ð4Ð4 d�G�G˜D‘M”MÐ4Ð4Ð4r   )	ra   r.   Úslicerk   r2   Údivmodr+   ÚelementrW   )rh   Úkeyr]   r7   r)   r*   r   r‚   s   `      @r   Ú__getitem__z"MutablePolyDenseMatrix.__getitem__§   s
  øø€ ð	:ð 	:ð 	:ð 	:ð 	:ð
 ŒXˆå�c�5Ñ!Ô!ð 	&Ø—G’G‘I”I˜c”NˆEØ4Ð4Ð4Ð4¨eÐ4Ñ4Ô4Ð4Ý˜�SÑ!Ô!ð 	&Ý˜#˜tœyÑ)Ô)‰DˆAˆqØ�1�Q�3”ˆAØ�7˜1œ9Ñ%Ô%Ð%à‰ˆˆ1Ý�a�ÑÔð 	*¥*¨QµÑ"4Ô"4ð 	*Ø�7˜2˜a ˜dœ8Ô+Ñ,Ô,Ð,à—<’<  1 a 4¤Ñ)Ô)Ð)r   c                 ój   — t          | t          |¦  «        ¦  «        st          S | j        |j        k    S r@   )r.   r   ÚNotImplementedra   ©rh   rl   s     r   Ú__eq__zMutablePolyDenseMatrix.__eq__¾   s/   € Ý˜$¥ U¡¤Ñ,Ô,ð 	"Ý!Ð!ØŒx˜5œ9Ò$Ð$r   c                 óŽ   — t          |t          | ¦  «        ¦  «        r"|                      | j        |j        z   ¦  «        S t          S r@   ©r.   r   rW   ra   rŠ   r‹   s     r   Ú__add__zMutablePolyDenseMatrix.__add__Ã   ó;   € Ý�e�T $™ZœZÑ(Ô(ð 	6Ø—<’< ¤¨5¬9Ñ 4Ñ5Ô5Ð5ÝÐr   c                 óŽ   — t          |t          | ¦  «        ¦  «        r"|                      | j        |j        z
  ¦  «        S t          S r@   rŽ   r‹   s     r   Ú__sub__zMutablePolyDenseMatrix.__sub__È   r�   r   c                 óè  — t          |t          | ¦  «        ¦  «        r"|                      | j        |j        z  ¦  «        S t          |t          ¦  «        rt          |¦  «        }t          |t          ¦  «        rt| j        }	 t          | 	                    |¦  «        |¦  «        }n+# t          t          f$ r t          j	        |¦  «        }Y nw xY w|                      | j        |z  ¦  «        S t          S r@   )r.   r   rW   ra   r2   r   r   r   r   rV   r   Ú
ValueErrorrŠ   )rh   rl   ÚKxÚother_dss       r   Ú__mul__zMutablePolyDenseMatrix.__mul__Í   sà   € Ý�e�T $™ZœZÑ(Ô(ð 	$Ø—<’< ¤¨5¬9Ñ 4Ñ5Ô5Ð5Ý˜�sÑ#Ô#ð 	$Ý˜U‘O”OˆEÝ�e�TÑ"Ô"ð 	5Ø”ˆBð:Ý'¨¯ª°eÑ(<Ô(<¸bÑAÔA��øÝ"¥JÐ/ð :ð :ð :Ý'Ô2°5Ñ9Ô9���ð:øøøà—<’< ¤¨8Ñ 3Ñ4Ô4Ð4ÝÐs   Â#B% Â%%CÃCc                 óä   — t          |t          ¦  «        rt          |¦  «        }t          |t          ¦  «        r1t	          j        |¦  «        }|                      || j        z  ¦  «        S t          S r@   )	r.   r2   r   r   r   rV   rW   ra   rŠ   )rh   rl   r–   s      r   Ú__rmul__zMutablePolyDenseMatrix.__rmul__Û   s`   € Ý�e�SÑ!Ô!ð 	$Ý˜U‘O”OˆEÝ�e�TÑ"Ô"ð 	5Ý#Ô.¨uÑ5Ô5ˆHØ—<’< ¨4¬8Ñ 3Ñ4Ô4Ð4ÝÐr   c                 ó¸  — t          |t          ¦  «        r|                     ¦   «         }n$t          |t          ¦  «        rt	          |¦  «        }t          |t
          ¦  «        st          S | j                             |¦  «        }| j	         
                    d|z  | j        ¦  «        }t          || j	        ¦  «        }| j        |z  }|                      |¦  «        S rz   )r.   r   rO   r2   r   r   rŠ   rC   rV   r   Úconvert_fromr   ra   rW   )rh   rl   Úinverser]   s       r   Ú__truediv__z"MutablePolyDenseMatrix.__truediv__ã   s¹   € å�e�TÑ"Ô"ð 	$Ø—M’M‘O”OˆEˆEÝ˜�sÑ#Ô#ð 	$Ý˜U‘O”OˆEÝ˜%¥Ñ&Ô&ð 	"Ý!Ð!à”×&Ò& uÑ-Ô-ˆØ”)×(Ò(¨¨5©°$´+Ñ>Ô>ˆÝ˜w¨¬	Ñ2Ô2ˆØŒX˜ÑˆØ�|Š|˜BÑÔÐr   c                 ó8   — |                       | j         ¦  «        S r@   )rW   ra   rg   s    r   Ú__neg__zMutablePolyDenseMatrix.__neg__ò   s   € Ø�|Š|˜TœX˜IÑ&Ô&Ð&r   c                 óZ   — |                       | j                             ¦   «         ¦  «        S r@   )rW   ra   Ú	transposerg   s    r   r¡   z MutablePolyDenseMatrix.transposeõ   s"   € Ø�|Š|˜DœH×.Ò.Ñ0Ô0Ñ1Ô1Ð1r   c                 ój   — t          j        | j        |j        ¦  «        }|                      |¦  «        S r@   )r   Úhstackra   rW   ©rh   rl   r]   s      r   Úrow_joinzMutablePolyDenseMatrix.row_joinø   ó*   € ÝÔ  ¤¨5¬9Ñ5Ô5ˆØ�|Š|˜BÑÔÐr   c                 ój   — t          j        | j        |j        ¦  «        }|                      |¦  «        S r@   )r   Úvstackra   rW   r¤   s      r   Úcol_joinzMutablePolyDenseMatrix.col_joinü   r¦   r   c                 ó†   — |                       ¦   «                              |¦  «        }|                      || j        ¦  «        S r@   )rf   Ú	applyfuncrm   r8   )rh   r,   ÚMs      r   r«   z MutablePolyDenseMatrix.applyfunc   s7   € Ø�NŠNÑÔ×&Ò& tÑ,Ô,ˆØ×Ò  4¤9Ñ-Ô-Ð-r   c                 óh   — |                       t          j        |t          |         ¦  «        ¦  «        S r@   )rW   r   Úeyer
   )r4   Únr8   s      r   r®   zMutablePolyDenseMatrix.eye  s%   € à�{Š{�<Ô+¨A­r°$¬xÑ8Ô8Ñ9Ô9Ð9r   c                 ól   — |                       t          j        ||ft          |         ¦  «        ¦  «        S r@   )rW   r   Úzerosr
   )r4   Úmr¯   r8   s       r   r±   zMutablePolyDenseMatrix.zeros  s)   € à�{Š{�<Ô-¨q°!¨fµb¸´hÑ?Ô?Ñ@Ô@Ð@r   Úignorec                 óF  — | j         j        rt          d„ | D ¦   «         ¦  «        st          d¦  «        ‚| j        }|                     |j         j         ¦  «        }|                     ¦   «         \  }}|                     |j         ¦  «        }|                      |¦  «        |fS )Nc              3   ó$   K  — | ]}|j         V — Œd S r@   ©Ú	is_ground©r   rI   s     r   rA   z.MutablePolyDenseMatrix.rref.<locals>.<genexpr>  ó$   è è € Ð,GÐ,G¸Q¨Q¬[Ð,GÐ,GÐ,GÐ,GÐ,GÐ,Gr   z1PolyMatrix rref is only for ground field elements)rC   Úis_FieldrS   r”   ra   Ú
convert_toÚrrefrW   )rh   ÚsimplifyÚnormalize_lastr]   Ú	dm_groundÚdm_rrefÚpivotss          r   r¼   zMutablePolyDenseMatrix.rref  sš   € à”Ô$ð 	R­Ð,GÐ,GÀ$Ð,GÑ,GÔ,GÑ)GÔ)Gð 	RÝÐPÑQÔQÐQØŒXˆØ—M’M "¤)Ô"2Ñ3Ô3ˆ	Ø#Ÿ.š.Ñ*Ô*‰ˆ�Ø×$Ò$ R¤YÑ/Ô/ˆØ�|Š|˜GÑ$Ô$ fÐ,Ð,r   c                 ó   ‡ ‡— ‰ j         j        rt          d„ ‰ D ¦   «         ¦  «        st          d¦  «        ‚‰ j        }‰ j         ‰ j        }}|                     |¦  «                             d¬¦  «                             |¦  «        }|                     ¦   «         Šˆfd„t          ‰j
        d         ¦  «        D ¦   «         }ˆ fd„|D ¦   «         S )Nc              3   ó$   K  — | ]}|j         V — Œd S r@   r¶   r¸   s     r   rA   z3MutablePolyDenseMatrix.nullspace.<locals>.<genexpr>  r¹   r   z6PolyMatrix nullspace is only for ground field elementsT)Údivide_lastc                 ó(   •— g | ]}‰d d …|f         ‘ŒS r@   r   )r   r)   Údm_nulls     €r   r   z4MutablePolyDenseMatrix.nullspace.<locals>.<listcomp>  s%   ø€ ÐBÐBÐB Q�G˜A˜A˜A˜a˜C”LÐBÐBÐBr   r   c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r   )rW   )r   Údmvecrh   s     €r   r   z4MutablePolyDenseMatrix.nullspace.<locals>.<listcomp>  s%   ø€ Ð:Ð:Ð:¨�—’˜UÑ#Ô#Ð:Ð:Ð:r   )rC   rº   rS   r”   ra   r   r»   Ú	nullspacer¡   r(   rj   )rh   r]   ÚKr•   Údm_null_rowsÚdm_basisrÆ   s   `     @r   rÉ   z MutablePolyDenseMatrix.nullspace  s×   øø€ à”Ô$ð 	W­Ð,GÐ,GÀ$Ð,GÑ,GÔ,GÑ)GÔ)Gð 	WÝÐUÑVÔVÐVØŒXˆØ”˜TœYˆ2ˆØ—}’} QÑ'Ô'×1Ò1¸dÐ1ÑCÔC×NÒNÈrÑRÔRˆØ×(Ò(Ñ*Ô*ˆØBÐBÐBÐB­%°´¸aÔ0@Ñ*AÔ*AÐBÑBÔBˆØ:Ð:Ð:Ð:°Ð:Ñ:Ô:Ð:r   c                 óT   — | j         t          |                      ¦   «         ¦  «        z
  S r@   )r+   r1   rÉ   rg   s    r   ÚrankzMutablePolyDenseMatrix.rank!  s!   € ØŒy�3˜tŸ~š~Ñ/Ô/Ñ0Ô0Ñ0Ð0r   )r³   r³   )#Ú__name__Ú
__module__Ú__qualname__Ú__doc__r:   Úclassmethodr3   rW   rf   rm   ro   rt   Úpropertyrj   r6   r+   r|   rˆ   rŒ   r�   r’   r—   r™   r�   rŸ   r¡   r¥   r©   r«   r®   r±   r¼   rÉ   rÎ   Ú__classcell__)rd   s   @r   r   r      sf  ø€ € € € € ð ð  ðD "&ð #<ð #<ð #<ð #<ð #<ðJ ð%ð %ñ „[ð%ðN ðð ð ð ñ „[ðð$ð $ð $ð Ø,0ð Að Að Að Añ „[ðAð8ð 8ð 8ðQð Qð Qð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð%ð %ð %ð*ð *ð *ð.%ð %ð %ð
ð ð ð
ð ð ð
ð ð ðð ð ð ð  ð  ð'ð 'ð 'ð2ð 2ð 2ð ð  ð  ð ð  ð  ð.ð .ð .ð ð:ð :ñ „[ð:ð ðAð Añ „[ðAð-ð -ð -ð -ð	;ð 	;ð 	;ð1ð 1ð 1ð 1ð 1ð 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à      sÝ   ðØ  Ð  Ð  Ð  Ð  Ð  Ø #Ð #Ð #Ð #Ð #Ð #Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø "Ð "Ð "Ð "Ð "Ð "à -Ð -Ð -Ð -Ð -Ð -Ø :Ð :Ð :Ð :Ð :Ð :ðU1ð U1ð U1ð U1ð U1ñ U1ô U1ð U1ðn "8Ð 7Ð �J�J�Jr   