Ë
    7^(h±  ã                   ó:   — d dl mZ d	d„Zdefd„Zd	d„Zdddœd„Zy)
é   )Ú_iszeroFc                 óv   — | j                  |d¬«      \  }}|D �cg c]  }| j                  |«      ‘Œ c}S c c}w )a±  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        úV/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/matrices/subspaces.pyÚ_columnspacer      s6   € ð: —n‘n¨hÀD�nÓI�O€GˆVà$Ö%˜ˆA�E‰E�!�HÒ%Ð%ùÒ%s   ›6c                 ó¶  — | j                  ||¬«      \  }}t        | j                  «      D �cg c]	  }||vsŒ|‘Œ }}g }|D ]a  }| j                  g| j                  z  }	| j                  |	|<   t        |«      D ]  \  }
}|	|xx   ||
|f   z  cc<   Œ |j                  |	«       Œc |D �cg c]  }| j                  | j                  d|«      ‘Œ! c}S c c}w c c}w )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   r   )Ú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 —f‘f¨
¸X�fÓF�O€GˆVä! !§&¡&›MÖ=�q¨Q°fª_’Ð=€IÐ=Ø€Eàò 	ˆð Ÿ™˜ 1§6¡6Ñ)ˆØŸ™ˆˆH‰ä )¨&Ó 1ò 	7ÑˆG�WØ�‹L˜G G¨XÐ$5Ñ6Ñ6ŒLð	7ð 	�‰�SÕð	ð +0Ö0 QˆA�F‰F�1—6‘6˜1˜aÕ Ò0Ð0ùò >ùò 1s   ®	C¸CÂ*$Cc                 óš   — | j                  |d¬«      \  }}t        t        |«      «      D �cg c]  }|j                  |«      ‘Œ c}S c c}w )aD  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   s?   € ð" —n‘n¨hÀD�nÓI�O€GˆVä$)¬#¨f«+Ó$6Ö7˜qˆG�K‰K˜�NÒ7Ð7ùÒ7s   ­A)Ú	normalizeÚ	rankcheckc                ó´  — ddl m} |sg S |d   j                  dk(  }|D �cg c]  }|j                  «       ‘Œ }} | j                  |Ž } |||¬«      \  }}	|r#|j
                  t        |«      k  rt        d«      ‚g }
t        |j
                  «      D ]>  }|r | |dd…|f   j                  «      }n | |dd…|f   «      }|
j                  |«       Œ@ |
S c c}w )a´  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
    r   )Ú_QRdecomposition_optionalé    )r'   z0GramSchmidt: vector set not linearly independentN)Údecompositionsr*   Úrowsr   Úhstackr   r$   Ú
ValueErrorr   ÚTr   )Úclsr'   r(   Úvecsr*   Úall_row_vecsÚxr   ÚQÚRÚretr   r	   s                r   Ú_orthogonalizer8   i   sÕ   € õ` :áØˆ	à˜‘G—L‘L AÑ%€Là!Ö"˜ˆA�E‰E�GÐ"€DÐ"Øˆ�
‰
�DÐ€AÙ$ Q°)Ô<�D€A€qá�Q—V‘Vœc $›iÒ'ÜÐKÓLÐLà
€CÜ�1—6‘6‹]ò ˆÙÙ�aš˜1˜‘g—i‘i“.‰Cá�aš˜1˜‘g“,ˆCØ�
‰
�3�ðð €Jùò #s   ¡CN)F)Ú	utilitiesr   r   r"   r&   r8   © ó    r   ú<module>r<      s-   ðÝ ó&ðD !¨Wó *1óZ8ð, */¸%õ Er;   