+
    i                     F    ^RI Ht R
R ltR]3R ltR
R ltRRRR/R ltR	# )   )_iszeroFc                v    V P                  VRR7      w  r#V Uu. uF  q@P                  V4      NK  	  up# u upi )aY  Returns a list of vectors (Matrix objects) that span columnspace of ``M``

Examples
========

>>> from sympy import Matrix
>>> M = Matrix(3, 3, [1, 3, 0, -2, -6, 0, 3, 9, 6])
>>> M
Matrix([
[ 1,  3, 0],
[-2, -6, 0],
[ 3,  9, 6]])
>>> M.columnspace()
[Matrix([
[ 1],
[-2],
[ 3]]), Matrix([
[0],
[0],
[6]])]

See Also
========

nullspace
rowspace
Tsimplifywith_pivots)echelon_formcolMr   reducedpivotsis   &&   x/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/sympy/matrices/subspaces.py_columnspacer      s6    : nnhDnIOG$%fEE!Hf%%%s   6c                   V P                  W!R7      w  r4\        V P                  4       Uu. uF  qUV9  g   K  VNK  	  pp. pV Fp  pV P                  .V P                  ,          p	V P                  W&   \        V4       F!  w  rW;;,          W:V3,          ,          uu&   K#  	  VP                  V	4       Kr  	  V Uu. uF  qP                  V P                  ^V4      NK!  	  up# u upi u upi )a;  Returns list of vectors (Matrix objects) that span nullspace of ``M``

Examples
========

>>> from sympy import Matrix
>>> M = Matrix(3, 3, [1, 3, 0, -2, -6, 0, 3, 9, 6])
>>> M
Matrix([
[ 1,  3, 0],
[-2, -6, 0],
[ 3,  9, 6]])
>>> M.nullspace()
[Matrix([
[-3],
[ 1],
[ 0]])]

See Also
========

columnspace
rowspace
)
iszerofuncr   )rrefrangecolszeroone	enumerateappend_new)r   r   r   r   r   r   	free_varsbasisfree_varvecpiv_rowpiv_colbs   &&&          r   
_nullspacer"   &   s    4 ff
fFOG!!&&M=Mqf_MI=E 166) )& 1GLGX$566L !2 	S  +00%QFF1661a %00 > 1s   C%C%=%C*c                    V P                  VRR7      w  r#\        \        V4      4       Uu. uF  qBP                  V4      NK  	  up# u upi )a  Returns a list of vectors that span the row space of ``M``.

Examples
========

>>> from sympy import Matrix
>>> M = Matrix(3, 3, [1, 3, 0, -2, -6, 0, 3, 9, 6])
>>> M
Matrix([
[ 1,  3, 0],
[-2, -6, 0],
[ 3,  9, 6]])
>>> M.rowspace()
[Matrix([[1, 3, 0]]), Matrix([[0, 0, 6]])]
Tr   )r   r   lenrowr
   s   &&   r   	_rowspacer&   S   sA    " nnhDnIOG$)#f+$67$6qKKN$6777s   A	normalize	rankcheckc                  ^RI Hp V'       g   . # V^ ,          P                  ^8H  pV Uu. uF  qfP                  4       NK  	  ppV P                  ! V!  pV! WqR7      w  rV'       d&   VP
                  \        V4      8  d   \        R4      h. p
\        VP
                  4       FI  pV'       d   V ! VRV3,          P                  4      pMV ! VRV3,          4      pV
P                  V4       KK  	  V
# u upi )a0  Apply the Gram-Schmidt orthogonalization procedure
to vectors supplied in ``vecs``.

Parameters
==========

vecs
    vectors to be made orthogonal

normalize : bool
    If ``True``, return an orthonormal basis.

rankcheck : bool
    If ``True``, the computation does not stop when encountering
    linearly dependent vectors.

    If ``False``, it will raise ``ValueError`` when any zero
    or linearly dependent vectors are found.

Returns
=======

list
    List of orthogonal (or orthonormal) basis vectors.

Examples
========

>>> from sympy import I, Matrix
>>> v = [Matrix([1, I]), Matrix([1, -I])]
>>> Matrix.orthogonalize(*v)
[Matrix([
[1],
[I]]), Matrix([
[ 1],
[-I]])]

See Also
========

MatrixBase.QRdecomposition

References
==========

.. [1] https://en.wikipedia.org/wiki/Gram%E2%80%93Schmidt_process
)_QRdecomposition_optional)r'   z0GramSchmidt: vector set not linearly independent:NNN)decompositionsr*   rowsr   hstackr   r$   
ValueErrorr   Tr   )clsr'   r(   vecsr*   all_row_vecsxr   QRretr   r	   s   &$$*         r   _orthogonalizer7   i   s    ` :	GLLA%L!"TEEGTD"

DA$Q<DAQVVc$i'KLL
C166]a1gii.Ca1g,C

3  J #s   C3N)F)	utilitiesr   r   r"   r&   r7        r   <module>r;      s6    &D !W *1Z8,E E% Er:   