
    \h~e              #       R   S SK JrJrJrJrJrJrJrJr  S SK	J
r
Jr  S SKJrJr  S SKJr  S SKJrJrJr  S SKr\" S5      u  rrrr\
" / SQ/ S	Q/ S
Q/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/\5      r\SS-  \R                  " S\5      -  -   r/ S\
" / SQ/\5      \
" / SQ/\5      \" S5      4PS\" / S\5      \" / S\5      \" S5      4PS\
" SS/SS//\5      \
" SS /S S//\5      \" S5      4PS\
" SS /SS//\5      \
" SS /S S//\5      \" S5      4PS \
" S S/SS//\5      \
" SS /S S//\5      \" S5      4PS!\
" / SQ/ S"Q/ S#Q/\5      \
" / S$Q/ S%Q/ S&Q/\5      \" S5      4PS'\
" / S&Q/ S&Q/ S(Q/\5      \
" / S(Q/ S&Q/ S&Q/\5      \" S5      4PS)\
" / S&Q/ S&Q/ S&Q/\5      \
" / S&Q/ S&Q/ S&Q/\5      \" S5      4PS*\
" / S+Q/ S,Q/ S&Q/\5      \
" / S+Q/ S-Q/ S&Q/\5      \" S5      4PS.\
" / S/Q/ S,Q/ S&Q/\5      \
" / S+Q/ S-Q/ S&Q/\5      \" S5      4PS0\
" / S/Q/ S1Q/ S,Q/\5      \
" / S(Q/ S2Q/ S-Q/\5      \" S5      4PS3\
" / SQ/ S"Q/ S#Q/ S4Q/\5      \
" / S$Q/ S%Q/ S&Q/ S&Q/\5      \" S5      4PS5\
" / SQ/ S"Q/ S#Q/ S6Q/\5      \
" / S(Q/ S2Q/ S-Q/ S&Q/\5      \" S5      4PS7\
" / S8Q/ S9Q/ S:Q/\5      \
" / S;Q/ S<Q/ S=Q/\5      \" S5      4PS>\
" / S8Q/ S9Q/ S?Q/\5      \
" / S;Q/ S@Q/ SAQ/\5      \" S5      4PSB\
" / SCQ/ SDQ/\5      \
" / SEQ/ SFQ/\5      \" S5      4PSG\
" / SHQ/ SIQ/\5      \
" / S(Q/ SJQ/\5      \" S5      4PSK\
" / SLQ/ SMQ/ SNQ/ SOQ/ SPQ/\5      \
" / SQQ/ SRQ/ SSQ/ STQ/ SUQ/\5      \" S5      4PSV\
" / SWQ/ S"Q/\5      \
" / SXQ/ SYQ/\5      \" S5      4PSZ\
" / SUQ/ SUQ/ S[Q/\5      \
" / S\Q/ SUQ/ SUQ/\5      \" S5      4PS]\
" / S^Q/ S_Q/ S`Q/ SaQ/ SbQ/\5      \
" / S_Q/ S`Q/ SaQ/ SbQ/ S^Q/\5      \" S5      4PSc\
" / SdQ/ SeQ/ SfQ/ SeQ/ SQQ/\5      \
" / SQQ/ SRQ/ SgQ/ STQ/ SUQ/\5      \" S5      4PSh\
" / SiQ/ SjQ/ SkQ/ SlQ/ SmQ/ SnQ/ SoQ/ SpQ/ SqQ/ SrQ/ SsQ/ StQ/ SuQ/ SvQ/ SwQ/ SxQ/ SyQ/ SzQ/ S{Q/ S|Q/\5      \
" / S}Q/ S~Q/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/\5      \" S5      4PS\
" / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/\5      \
" / S}Q/ S~Q/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/\5      \" S5      4PS\
" / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/\5      \" \" S5      S-  \" / SQ5      /\" SS5      \" SS5      //5      R9                  5       R;                  5       \" S5      4PS\
" SS /S S//\5      \
" SS /S S//\5      \" S5      4PS\
" S S/SS//\5      \
" SS /S S//\5      \" S5      4PS\
" / SQ/ SQ/\5      \
" / S$Q/ SJQ/\5      \" S5      4PS\
" / SQ/ SQ/\5      \
" / S$Q/ SJQ/\5      \" S5      4PS\
" SS /SS/S S//\5      \
" SS /S S/S S //\5      \" S5      4PS\
" / SQ/ SQ/\5      \
" / S(Q/ S-Q/\5      \" S5      4PS\\R                  " S\5      R;                  5       \" S5      4PS\\R                  " S\5      R;                  5       \" S5      4PS\
" S S/S S/SS //\5      \
" SS /S S/S S //\5      \" S5      4PS\
" / SQ/ SHQ/\5      \
" / S(Q/ SJQ/\5      \" S5      4PS\
" \\S/\\S//\5      \
" \\-  \\-  -
  S \* \-   /S \\-  \\-  -
  \\-
  //\5      \" \\-  \\-  -
  5      4PrS rS r S r!S r"\RF                  RI                  S\5      S 5       r%\RF                  RI                  S\5      S 5       r&\RF                  RI                  S\5      S 5       r'\RF                  RI                  S\5      S 5       r(\RF                  RI                  S\5      S 5       r)\RF                  RI                  S\5      S 5       r*\RF                  RI                  S\5      S 5       r+\RF                  RI                  S\5      S 5       r,\RF                  RI                  S\5      S 5       r-\RF                  RI                  S\5      S 5       r.\RF                  RI                  S\5      S 5       r/\RF                  RI                  S\5      S 5       r0\RF                  RI                  S\5      S 5       r1\RF                  RI                  S\5      S 5       r2\RF                  RI                  S\5      S 5       r3\RF                  RI                  S\5      S 5       r4g)    )ZZQQZZ_IEXMatrixeyezerossymbols)DMDomainMatrix)ddm_irref_den	ddm_irref)DDM)SDM	sdm_irrefsdm_rref_denNz
a, b, c, d)      )r      )r      )r      )r      )r      )r      )r      )r      )r      )r      ))r   %   )r   )   )r   +   )r   /   )r   5   )r   ;   )r   =   )r   C   )r   G   )r   I   )r   O   ))r   S   )r   Y   )r   a   )r   e   )r   g   )r   k   )r   m   )r   q   )r      )r      )r      ))r      )r      )r      )r      )r      )r      )r      )r      )r      )r      )r      ))r      )r      )r      )r      )r      )r      )r      )r      )r      )r      )r   i  ))r   i  )r   i  )r   i  )r   i  )r   i  )r   i  )r   i%  )r   i3  )r   i7  )r   i9  )r   i=  ))r   iK  )r   iQ  )r   i[  )r   i]  )r   ia  )r   ig  )r   io  )r   iu  )r   i{  )r   i  )r   i  ))r   i  )r   i  )r   i  )r   i  )r   i  )r   i  )r   i  )r   i  )r   i  )r   i  )r   i  ))r   i  )r   i  )r   i  )r   i  )r   i  )r   i  )r   i  )r   i  )r   i  )r   i	  )r   i  ))r   i  )r   i#  )r   i-  )r   i3  )r   i9  )r   i;  )r   iA  )r   iK  )r   iQ  )r   iW  )r   iY  ))r   i_  )r   ie  )r   ii  )r   ik  )r   iw  )r   i  )r   i  )r   i  )r   i  )r   i  )r   i  
   d   r   zz_1)r   r   r   r   zz_2)r   r   zz_3r   r      zz_4zz_5zz_6)rP   r      )r      	   )r   r   )r   r   r   )r   r   r   zz_7)r   r   r   zz_8zz_9)r   r   r   )r   r   r   )r   r   r   zz_10)r   r   r   zz_11)r   r   r   )r   r   r   zz_12)rK   r      zz_13)rK   r   r   zz_14)r   r   rP   r   )rP   r   rK   rT   )r   rU      rV   )r   r   r   rW   )r   r   r   r   )r   r   r   r   zz_15)r   rU   r   rV   )r   r   r   r   )r   r   r   r   zz_16)r   r   r   r   )r   r   rV   r   )r   r      rW   )r   r   ir   zz_17)r   r   r   )r   r   r   )r   r   r   zz_18)^      r      r   )r*   r   r   r   r   )U   ra   r(   Q   r   )r   r   H   M   r   )   r   "   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   zz_19)r   r   rP   )r   r   i)r   r   rK   zz_20)r   r   r   r   rP   )r   r   r   r   r   zz_21)
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   zz_22)r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   
zz_large_1)r   r   r   rk   r   r   K   r   r   r   r   r   r   ri   r   r   r   r   r   r   )r   r   r   r   r   V   r   \   r*   6   r   r   r   r   r   r   r*   r   r   r   )r,   rx   rk   r   r      r   r   r   r   r   r   3   r   rg   r   r   rm   r   r   )r   r   r   `   r   r   r   r   r   r   r   r   0   r   r   r   r   r       r   )r   F   r   r   r   r   r   r   r   r   r   r   r   r   r   <   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r"   r   r   )r   r   r   r   r   &   [   r   r   r   r   r   r   r   r   r   r      r   r   )E   r   r   r   r   r   rg   r   r   r   r   r   r   r   r   r   r   r   r   7   )r   r   rd   1   r   X   r   r   #   rx   r   r   rz   r   r   r   r   r   r   W   )r   r   r   r   r   r   (   r   r   r   r   r   r   2   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   b   r   r   r      r$   r   rw   r   r   r   r   )r   r   r   _   r   r   r   $   r   r   r   r   r   rl   r   r   r   r   r)   r   )r   A      r{   r   r   r   r   r   r   r   r   r   Z   r   r   r   ro   r   r   )r   r   r   ra   '   ,   r   r   r   r   r   r   r   r   r   r   r   rz   r   r   )r   r   r   r   r   c   T   r   r   r   r   r   r   r   r   r   r"   !   ry   r   )r*   r   r   4   r   r^   r   r   r   r   D   r   r   r   r   r   r   r   r   r   )r   r   r   R   r   r   r   r   r   r-   r   r   r   r   r   rK   r   r   r   r   )r   r   rn   r   r'   r   r   r   r   r   rP   r   r   r   r   r   r   r   r   r   )r   r   r   r   rV   *   r   r   r   r   r   r   r   r   r   r   r   r   r   rU   )r   rm   r   r   r   r   r   r   r   r   ro   ]   r   r   r   r   r#   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   
zz_large_2)r   r   r   r   r   r   rT   rk   r   r   rv   r   r   r   r   rg   rP   r   r   r   )r   r   r"   r   >   r   r   r   r   r   r   r   r   r(   rV   r   9   r!   r   r   )r   r      r   J   r,   r   r   r   r   rT   r   r   r   r   r   r   r   rm   r   )r   rn   r   r      r   r   r,   r   r   r   r   r*   r!   r   r   r   r   r   r   )r   r   r   r   r   @   r   r   r*   r   r   r   rl   rK   r   r}   r   r%   r   rh   )r   r   r   r   r   r   r   rg   r   r+   ry   r   r   rV   r   r   r   r   :   r   )r   r   8   r   r   r   r   r   r   r   r   r   rj   r   r   r   r   rz   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r~   r   r   r   r   ru   L   )r   r   r   r   r   r   r   r   r#   r   r   ry   r   r   r   r}   r(   r   r   r   )r   r   r   r   r   rP   rj   r   r   r   r   r   r   r   r'   r   r   r   r   rm   )r   ?   r   r(   r   r   r   r   r&   r   r   r   r   r   r   ru   r   r   r   r   )r   r)   r   r   r   r   r   r   r&   r   r   r   r   r   r   rz   r   r   r   ro   )r   r   r   r   ro   r   r   -   r   r   r   ra   r   rx   r   r   r   r   r   r   )r   r    r   r   r   r   rg   r   r   r   r   r   r   r   r   r   r   rU   r   r$   )rv   r   rg   r   r   rK   r   r   r   rd   r   r   r   r   r   rh   r   r   r   r   )r$   r   r   r-   r   r   r   r   r   r   r   r#   r   r   r   r^   r   r   r   r   )rP   r   rw   rK   r   r   r   r,   r   r   rd   rx   r   r   r   r   r   r|   r   rw   )r   r   r   rm   r   r   r   r   r      r   r   r   r   r   r   r   r   r   r   )r{   r   r   r   r   r   rv   r   r   r   r   r   r   r   r+   r   r   r   rl   r   )rk   r   r   rP   r   r   r   r   r   r   r   r   r,   r   r'   r   r   r   r   r   
zz_large_3)r   r   r,   r   r   r#   r   r   r   rl   r   r   P   r   r   rn   rK   r   rh   r   r{   r}   r   r   rw   r    r   rg   r   B   )ry   r#   r{   ro   rK   r   r   rT   r   r   r   rw   r&   rg   r   r!   r}   rV   r   rg   r   r   ri   r!   rl   rj   r&   r   r   .   )r   r   r   r      r   rg   r   r   r   rk   rK   r   r   r   rP   r   r   rj   r   r   rz   r   r   r   rm   rj   r   r   r   )r   r   r   r   r   r^   rd   r   ri   r   r^   rx   rn   rw   r   r   r   r+   r   r   r   rU   r   r   rw   r^   r   r   r   r   )r   r   r   r|   r   r   rh   r   r   r   r   r}   r   r   r   rj   rP   r*   r   r   r   ru   r   r{   r   r   r   r   r   ru   )   rj   r   rz      r<   rm   N   rj   r/   {   r   r      r   r   r   r   r   rk   f   r   ru   r%   r      p   r   rm      )r   r%   r&   r   r^   r+   ro   rU   rg   r(   r   r   r   rn   r|   r   r   r^   r   r   r-   r   r   r   rz   r   r   r"   r   r,   )r   r   r$   r   r   r   r!   r   r}   r   r   r+   r   r   r&   r   r^   r   rh   r   r    r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   rw   r   r   r   r   r   r   rj   r   r&   r   r   r   r   r-   ro   r-   r$   rw   r   r   r"   )r+   r*   r!   ra   r   r   r$   r   r   rP   r(   r   r&   r   r   rl   r   rw   r%   rl   rx   r   r   r+   rU   r   rm   r   r   r   )r   ro   r   r   rl   rm   r   r~   r   r!   r    rT   r   r   r   rT   ru   r   r   r   r   r   r   r   rV   r   r,   r   r^   r   )r   r   r   r   rz   r}   rm   r!   r   r   ra   r   r   rk   r   r   r   r   r+   r   r   r'   r   r   r   r   r   r   r   r   )r*   rz   r   ry   r,   r{   r   rU   r   r   rv   r   r   rk   r   rj   rv   r   r&   rh   rl   r   r   r   rU   r   r   r   r   r$   )r{   rv   r)   ry   r!   ry   r    rd   rK   r&   rj   rh   r   r+   r   r!   rP   rw   r   r   r   r   rd   r   r}   r   r   r   r   rh   )r}   r   r#   r   rz   r   r   r   rV   r   r   ru   ru   r   r   rw   r   r$   r$   rv   r   rz   r!   r   r   rd   r   r   r   r}   )r   rn   rU   ra   r   rT   r   rj   ru   r   r"   ro   rd   r   r(   r   r}   rd   r^   r   rk   r$   r   r   r   r   r   r   r   r   )r   r   r,   r   ru   rg   rw   r   r   r   ro   r   r   r   r*   r   r   r   r   rk   rz   r   r   r   r   r(   r   r&   r   r   )r$   rw   rU   r   r'   r   rn   r*   r   r   r   r|   r   r   r   r-   r   r   r   r   r+   r|   r   r,   r'   rl   r   ro   r   r,   )r   r   r   rw   r   rU   r   ra   r   r|   r   rl   r   r   rk   r   rv   r   rz   r   r   r^   r$   r   r|   rn   r   r,   r   r*   )rk   r"   r   r   rT   r   r   r}   r   r   r   r   r   r    r   r   r'   r   r   r   r   rU   r   r|   r%   r    r   r-   r   r   )r   r|   rm   ra   r   r|   r   r   r   r%   r*   r   ra   r(   r   rv   r(   r!   r   r   r   r-   rm   r   rP   r   r   r   r   r)   )r   r#   r   r   r   r|   r#   r   r   r   r   rn   r   rh   r   r   r$   r   r-   r   r   rx   r^   rK   rm   r   r   ru   r}   rn   )rv   r   r   r   r(   r   rv   r   rd   r   r   r   rm   r   rV   rw   r   r   r   r   r   r   r   ri   rK   r   rw   rV   r   r   )r   ri   rl   r   r   r   rl   ru   r   r   r   r(   r   r   rK   r   r   rx   r   r   r#   ry   r   r   r-   r#   rh   r   ra   r{   )r   r   r+   r   r   r   rV   r$   ru   r   r   r   r^   r   r   r^   r   r   r   r   r   r   r,   r   rz   r   r   r{   r   r   )r   rV   r-   r   rv   r   r   r|   r!   r   r   r   r   rV   r   rl   r   r   r!   r   rK   r   r(   r   r   r   r   r   rT   r   )r~   r&   r   r   rl   r   rm   r   r!   rg   r   r   r   r   r   r#   ri   rd   r   r   ra   r|   r   rV   r   rm   rK   rg   r   rw   )r   r   r   r   rl   r   rk   r   r*   r    r   r   rn   r   ri   r   r    r   r-   r   rj   r   r   r   r   r   r   r   r   r)   )r)   r   r"   r   r,   r-   r   r   r   r   r   r   r   r   r   rj   r   r   r   r   r   r   r   rz   r   r   r   r*   r   rd   )rl   r   r!   r   rh   r   r   r*   r   r   r   ru   r   rT   rj   r   ry   r   rm   r(   r   rz   r   r   r   r   r   rK   r   rU   r   l   }#"
<Tvl;(CVW+)l   )'K	
)!08c9mJ"~(
l   [OvNeM"by;qyX-s/n l   r9O/]/GWm49lxil   0"M'Y#h	v)Bl   mRC.NR%y?^j<l   Go+5;#)%PFK.a l8`w!ZYg"TWMcW_CX#l   6I5A QF~t,U;'9fl   1x ?Q?fNBzL	lyJT{n'WQ8
%(9*v
l]|FlqUlz>jV% )tl   u, bvC*\lc]\.l(WlnGO~rZ^
l   ~Q71Gty4=GrrY l   	LR'"[ph]dQUS|l   x`w'hY|h/XSOl]: [Z68:?{oLhc	lS/dblR6	w(MBT:`TlthBB^{|69>(l-SEk{L?]6*u#5[(l   /3N?2	GKtsl   I4[,JtQ&9/Qrd^lTjeD0nv
AO@;uM6F~Ol%df8xh6wOiVl"B'[A(2g4,Un!FQl   vg,VvJENjiflD_zR#s%0[eRK*olT^ZH<UF*d7,jqCLlelGz;VGCm"2Y#?5,`+z	qq_1r   qq_2qq_3)r   r   r   )r   rP   r   qq_4qq_5qq_6)r   r   r   )r   r   r   
qq_large_1
qq_large_2qq_7zz_i_1))r   r   r   r   EX_1c                 f   [        U [        5      (       a  U R                  5       $ [        U [        5      (       a)  U R	                  UR
                  5      R                  5       $ [        U S5      (       a  [        U S5      (       d  UR                  UR
                  p2OU R                  U R
                  p2[        U [        [        45      (       a#  [        [        U 5      X#5      R                  5       $ [        U [        [        45      (       a#  [        [        U 5      X#5      R                  5       $  e)z#Convert the answer to DomainMatrix.shapedomain)
isinstancer   to_denser   to_DMr   hasattrr   r   listr   dict)Aansr   r   s       \/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/matrices/tests/test_rref.py_to_DMr   E  s    !\""zz|	Av		wwszz"++--AwGAx$8$8		3::vv!c4[!!DGU3<<>>	AT{	#	#DGU3<<>>u    c           	      ~    [        [        [        [        U R	                  5       R                  5       5      5      5      $ )z%Return the pivots from the rref of A.)tuplesortedmapminto_sdmvalues)A_rrefs    r   _pivotsr   Y  s(    C!7!7!9:;<<r   c                    U u  p4n[        U[        [        [        [        45      (       a  [        U5      [        L d   e[        U5      n[        X15      nUR                  U5      u  pgXa:X  d   eXr:X  d   eU[        U5      :X  d   eg)zCheck the cancelled result.N)
r   r   r   r   r   typer   r   cancel_denomr   )resultrref_ansden_ansrrefdenpivotsrref2den2s           r   _check_cancelr   ^  s    Dv$c4.//F|t###v$!D##C(KE??WT]"""r   c                     U u  p4[        U[        [        [        [        45      (       a  [        U5      [        L d   e[        U5      nUR                  5       U-  n[        X15      nX1:X  d   e[        U5      U:X  d   eg)zCheck the divided result.N)
r   r   r   r   r   r   r   to_fieldr   r   )r   r   r   r   r   s        r   _check_divider   k  su    LD$c4.//F|t###v  "W,H$!D4=F"""r   zname, A, A_rref, denc                     UR                   nUR                  5       nUR                  5       u  pVUR                  (       a  UR	                  5       n[        XV4X#5        g N)r   	to_Matrixr   is_EXexpandr   )namer   r   r   KA_rref_foundr   s          r   test_Matrix_rrefr   w  sF    	A	A668Lww#**,<(&6r   c                 X    UR                  5       n[        UR                  5       X#5        g r   )r   r   r   r   r   r   r   s       r   test_dm_dense_rrefr     s    	

A!&&(F(r   c                 8    [        UR                  5       X#5        g r   )r   rref_denr   s       r   test_dm_dense_rref_denr     s    !**,,r   c                 t    UR                  5       R                  5       n[        UR                  5       X#5        g r   )r   	to_sparser   r   r   s       r   test_dm_sparse_rrefr     s&    	

 A!&&(F(r   c                 X    UR                  5       n[        UR                  5       X#5        g r   )r   r   r   r   s       r   test_dm_sparse_rref_denr     s    	A!**,,r   c                     UR                  5       nUR                  SS9u  pEnUR                  5       U-  n[        XF4X#5        g )NF)keep_domainr   r   r   r   r   r   r   r   A_rref_fden_fpivots_fs          r   #test_dm_sparse_rref_den_keep_domainr    sB    	A !

u
 =HX  "U*H8&4r   c                     UR                  5       nUR                  SSS9u  pEnUR                  5       U-  n[        XF4X#5        g )NFCDr   methodr   r   s          r   &test_dm_sparse_rref_den_keep_domain_CDr    D    	A !

uT
 JHX  "U*H8&4r   c                     UR                  5       nUR                  SSS9u  pEnUR                  5       U-  n[        XF4X#5        g )NFGJr  r   r   s          r   &test_dm_sparse_rref_den_keep_domain_GJr    r	  r   c                 X    UR                  5       n[        UR                  5       X#5        g r   )to_ddmr   r   r   s       r   test_ddm_rref_denr        	
A!**,,r   c                 X    UR                  5       n[        UR                  5       X#5        g r   )r   r   r   r   s       r   test_sdm_rref_denr    r  r   c                 t    UR                  5       R                  5       n[        UR                  5       X#5        g r   )r   r  r   r   r   s       r   test_ddm_rrefr    &    	

A!&&(F(r   c                 t    UR                  5       R                  5       n[        UR                  5       X#5        g r   )r   r   r   r   r   s       r   test_sdm_rrefr    r  r   c                     UR                  5       R                  5       R                  5       n[        U5      n[	        X4X#5        g r   )r   r  copyr   r   )r   r   r   r   pivots_founds        r   test_ddm_irrefr    s5    	

""$AQ<L1#V1r   c                     UR                  5       R                  5       n[        XR                  5      u  pEXU4n[	        XbU5        g r   )r  r  r   r   r   )r   r   r   r   	den_foundr  r   s          r   test_ddm_irref_denr    s9    	
A -a :YL)F&#&r   c                 p    UR                  5       R                  5       n[        [        U5      S S X#5        g )Nr   )r   r   r   r   r   s       r   test_sparse_sdm_rrefr     s+    	

A)A,r"F0r   c                     UR                  5       R                  5       nUR                  n[        [	        X5      X#5        g r   )r   r  r   r   r   )r   r   r   r   r   s        r   test_sparse_sdm_rref_denr"    s,    	
A	A,q$f2r   )5sympyr   r   r   r   r   r   r	   r
   sympy.polys.matricesr   r   sympy.polys.matrices.denser   r   sympy.polys.matrices.ddmr   sympy.polys.matrices.sdmr   r   r   pytestabcdr   r   r   r   RREF_EXAMPLESr   r   r   r   markparametrizer   r   r   r   r   r  r  r  r  r  r  r  r  r  r   r"   r   r   <module>r1     su   ? ? ? 1 ? ( A A  \"
1a  Y Y Y Y Y Y Y Y Y Y Y[ 	
 "c'L$4$4R$<<<
X	YK		YK		A	X 		b&"	%	b&"	%	A	X  	
QFF	
QFF	
1X2 	
QFF	
QFF	
11XD 	
QFF	
QFF	
1CXV 	
I	 	J	 	1	UXl 	
I	 	I	 	1	kXB 	
I	 	I	 	1	AXX 	
I	 	I	 	1	WXn 	
I	 	I	 	1	mXD 	
I	 	I	 	1	CXZ 	
L 	 	K 	 	1YXt 	
L 	 	L 	 	1sXN 	
M	  	M	  	1	MXd 	
M	  	M	  	1	cXz 	
L	
N	!
1yXL 	
I	
I	
1KXb 	
	! #%		&
 		! #%		&
 	1]XB 	
I	
J	
1XT 	
O 	" 	O 	" 	1	SXj 	
*****	, .0		1
 	*****	, .0		1
 	1iXH 	
O	 !		"
 	O	 !		"
 	1GXf 	
 P P P P P P P P P P P P P P P P P P P P)R* +	, 	HHHHHHHHHHHHHHHHHHHH'J& LN'	O( 	1Y-eXD	 	
 P P P P P P P P P P P P P P P P P P P P)R* +	, 	 < < < < < < < < < < < < < < < < < < < <)>* +	, 	1]/C	Xf
 	
 [ W W W V g Y Z Z Y X W W Z Y U X Z W V Y Z W Z U V X Y W X=Z> ?	@ 	WII  > 
q"uQ{#A!
 !	B 5788:
EFIEe
Xv 	
UAJA$
QFQFR 
1	uXF 	
QFF	
QFF	
1CXZ 	
I	
J	
1WXn 	
I	
J	
1kXB 	
QFFF	 	QFFF	 	1
XZ 	
I	
I	
1WXp 	R ))+
1kXB 	R ))+
1}Xr 	
QFFF	 	QFFF	 	13OXJ 	
M 	"
I	QGX^ 	
	
Aq		
Aq		 	QqS1Q3YA26*!ac	AE*,-/	1
1Q319	[Xv(=

#	# /?7 @7 /?) @)
 /?- @- /?) @)
 /?- @-
 /?5 @5 /?5 @5 /?5 @5 /?- @-
 /?- @-
 /?) @)
 /?) @)
 /?2 @2 /?' @' /?1 @1
 /?3 @3r   