
    MZd                         d dl mZmZ 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  G d deee      Zd	 Zd
 Zd Zd Zd Zy)    )_MinimalMatrix_CastableMatrix)MatrixSubspaces)Matrix)Rational)symbols)solvec                       e Zd Zy)SubspaceOnlyMatrixN)__name__
__module____qualname__     E/usr/lib/python3/dist-packages/sympy/matrices/tests/test_subspaces.pyr   r      s    r   r   c                  B   t        g dg dg dg dg      } | j                         }|d   t        g d      k(  sJ |d   t        g d      k(  sJ |d	   t        g d
      k(  sJ t        |      dk(  sJ t        j                  | g| j                         |k(  sJ y )N      r   r      r   r         r   r      r   r   r   r   r   r   r   r   r   r   r   r!   r   r   r   r   r"   r   )r   columnspacer   lenhstackmbasiss     r   test_columnspace_oner,      s    00002 	3A
 MMOE8vm,,,,8vn----8vn----u:??==#U#//1U:::r   c                      t        g dg dg dg dg      } | j                         }|d   t        g dg      k(  sJ |d   t        g dg      k(  sJ |d   t        g d	g      k(  sJ t        |      d
k(  sJ y )Nr   r   r   r    r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   rowspacer   r'   r)   s     r   test_rowspacer/      s    00002 	3A
 JJLE8v/00008v/011118v/0000u:??r   c                     t        g dg dg dg dg      } | j                         }|d   t        g d      k(  sJ |d   t        g d      k(  sJ t        d	 | |d   z  D              sJ t        d
 | |d   z  D              sJ y )Nr   r   r   r    r   )r   r   r   r   r   r   )r   r   r   r   r   c              3   4   K   | ]  }|j                     y wNis_zero.0es     r   	<genexpr>z%test_nullspace_one.<locals>.<genexpr>3        -Qqyy-   c              3   4   K   | ]  }|j                     y wr2   r3   r5   s     r   r8   z%test_nullspace_one.<locals>.<genexpr>4   r9   r:   )r   	nullspacer   allr)   s     r   test_nullspace_oner>   )   s    00002 	3A
 KKME8v.////8v01111-!E!H*-----!E!H*----r   c                  6   t         } t        g dg dg      }|j                         \  }}|t        dd | d       dz   | d      dz  gdd | d      dz   | d	      dz  gg      k(  sJ t        g d
g dg dg dg dg      }||j                         d   z  t        dddgdz        k(  sJ t        g dg dg dg dg      }|j                         \  }}|t        g dg ddddddd | d      dz  gg dg      k(  sJ |j                         }|d   t        g d      k(  sJ |d   t        g d      k(  sJ |d   t        g d      k(  sJ |d   t        ddddd | d      dz  dg      k(  sJ t        ddgddgddgg      }|j                         sJ y )N)r      r   r   )r   r!   r   r   r   r   r            )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r!   r   r   )r   rD   r   r   r   r   r   )r   	   r   r   r!   r!   r   )r   r   r   r   r   rF   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r!   )r   r   rrefr<   )RMouttmpr+   s        r   test_nullspace_secondrL   6   s   A 	 AvvxHC&1a!A$r1R584a!A$r'1R5846 7 7 7 7 	$$$$$	& 	'A
 Q[[]11qc!e!4444))))+ 	,A vvxHC&//aAq!QqT!V4/1 2 2 2 2 KKME8v455558v344448v566668vq!Q1aeAgq9:::: 	AAA'(A;;==r   c                  N   t        g dg dg dg dg      } | j                         }|d   t        g d      k(  sJ |d   t        g d      k(  sJ |d	   t        g d
      k(  sJ t        d      \  }}}}}t        |||||g      }t        t	        |            D ]'  }| |z  ||   z
  }	t	        t        |	|            dk7  r'J  | j                         t	        |      k(  sJ t	        | j                               t	        | j                               z   | j                  k(  sJ y )Nr   r   r   r    r   r#   r   r$   r   r%   z	a b c d e)	r   r&   r   ranger'   r	   rankr<   cols)
rI   r+   abcdr7   Xieqs
             r   test_columnspace_secondrX   ]   s"   $$$$& 	'A MMOE8vm,,,,8vn----8vn---- K(MAq!Q1aAA3u: &Q3uQx<5Q< A%%%&
 668s5z!!!q{{}AMMO 44>>>r   N)sympy.matrices.commonr   r   sympy.matrices.matricesr   sympy.matricesr   sympy.core.numbersr   sympy.core.symbolr   sympy.solversr	   r   r,   r/   r>   rL   rX   r   r   r   <module>r_      sA    A 3 ! ' % 	/ 	;.$N?r   