§
    OŠtjU
  ã                   ól   — d dl mZ d dlmZ  G d„ de¦  «        Zd„ Zd dlmZmZ d dl	m
Z
 d„ Zee
d<   d	S )
é    )ÚBasic)Ú
MatrixExprc                   óz   — e Zd ZdZdZd„ Zed„ ¦   «         Zed„ ¦   «         Zdd„Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú	Transposea1  
    The transpose of a matrix expression.

    This is a symbolic object that simply stores its argument without
    evaluating it. To actually compute the transpose, use the ``transpose()``
    function, or the ``.T`` attribute of matrices.

    Examples
    ========

    >>> from sympy import MatrixSymbol, Transpose, transpose
    >>> A = MatrixSymbol('A', 3, 5)
    >>> B = MatrixSymbol('B', 5, 3)
    >>> Transpose(A)
    A.T
    >>> A.T == transpose(A) == Transpose(A)
    True
    >>> Transpose(A*B)
    (A*B).T
    >>> transpose(A*B)
    B.T*A.T

    Tc                 óþ   — | j         }|                     dd¦  «        r"t          |t          ¦  «        r |j        di |¤Ž}t          |dd ¦  «        }|� |¦   «         }|�|nt          |¦  «        S t          |¦  «        S )NÚdeepTÚ_eval_transpose© )ÚargÚgetÚ
isinstancer   ÚdoitÚgetattrr   )ÚselfÚhintsr   r	   Úresults        úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/matrices/expressions/transpose.pyr   zTranspose.doit   s�   € ØŒhˆØ�9Š9�V˜TÑ"Ô"ð 	$¥z°#µuÑ'=Ô'=ð 	$Ø�#”(Ð#Ð#˜UÐ#Ð#ˆCÝ! #Ð'8¸$Ñ?Ô?ˆØÐ&Ø$�_Ñ&Ô&ˆFØ#Ð/�6�6µY¸s±^´^ÐCå˜S‘>”>Ð!ó    c                 ó   — | j         d         S )Nr   )Úargs©r   s    r   r   zTranspose.arg*   s   € àŒy˜Œ|Ðr   c                 ó,   — | j         j        d d d…         S )Néÿÿÿÿ)r   Úshaper   s    r   r   zTranspose.shape.   s   € àŒxŒ~˜d˜d ˜dÔ#Ð#r   Fc                 ó.   —  | j         j        ||fd|i|¤ŽS )NÚexpand)r   Ú_entry)r   ÚiÚjr   Úkwargss        r   r   zTranspose._entry2   s%   € ØˆtŒxŒ˜q !Ð=Ð=¨FÐ=°fÐ=Ð=Ð=r   c                 ó4   — | j                              ¦   «         S ©N)r   Ú	conjugater   s    r   Ú_eval_adjointzTranspose._eval_adjoint5   s   € ØŒx×!Ò!Ñ#Ô#Ð#r   c                 ó4   — | j                              ¦   «         S r"   )r   Úadjointr   s    r   Ú_eval_conjugatezTranspose._eval_conjugate8   s   € ØŒx×ÒÑ!Ô!Ð!r   c                 ó   — | j         S r"   )r   r   s    r   r	   zTranspose._eval_transpose;   s	   € ØŒxˆr   c                 ó.   — ddl m}  || j        ¦  «        S )Né   )ÚTrace)Útracer+   r   )r   r+   s     r   Ú_eval_tracezTranspose._eval_trace>   s$   € Ø Ð Ð Ð Ð Ð Øˆu�T”X‰ŒÐr   c                 ó.   — ddl m}  || j        ¦  «        S )Nr   )Údet)Ú&sympy.matrices.expressions.determinantr/   r   )r   r/   s     r   Ú_eval_determinantzTranspose._eval_determinantB   s$   € Ø>Ð>Ð>Ð>Ð>Ð>Øˆs�4”8‰}Œ}Ðr   c                 ó6   — | j                              |¦  «        S r"   )r   Ú_eval_derivative)r   Úxs     r   r3   zTranspose._eval_derivativeF   s   € àŒx×(Ò(¨Ñ+Ô+Ð+r   c                 óZ   — | j         d                              |¦  «        }d„ |D ¦   «         S )Nr   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r
   )Ú	transpose)Ú.0r   s     r   ú
<listcomp>z;Transpose._eval_derivative_matrix_lines.<locals>.<listcomp>L   s    € Ð-Ð-Ð- !�—’‘”Ð-Ð-Ð-r   )r   Ú_eval_derivative_matrix_lines)r   r4   Úliness      r   r:   z'Transpose._eval_derivative_matrix_linesJ   s/   € Ø”	˜!”×:Ò:¸1Ñ=Ô=ˆØ-Ð- uÐ-Ñ-Ô-Ð-r   N)F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úis_Transposer   Úpropertyr   r   r   r$   r'   r	   r-   r1   r3   r:   r
   r   r   r   r      sç   € € € € € ðð ð. €Lð	"ð 	"ð 	"ð ðð ñ „Xðð ð$ð $ñ „Xð$ð>ð >ð >ð >ð$ð $ð $ð"ð "ð "ðð ð ðð ð ðð ð ð,ð ,ð ,ð.ð .ð .ð .ð .r   r   c                 óH   — t          | ¦  «                             d¬¦  «        S )zMatrix transposeF)r   )r   r   )Úexprs    r   r7   r7   O   s   € å�T‰?Œ?×Ò UÐÑ+Ô+Ð+r   )ÚaskÚQ)Úhandlers_dictc                 óX   — t          t          j        | ¦  «        |¦  «        r| j        S | S )zÅ
    >>> from sympy import MatrixSymbol, Q, assuming, refine
    >>> X = MatrixSymbol('X', 2, 2)
    >>> X.T
    X.T
    >>> with assuming(Q.symmetric(X)):
    ...     print(refine(X.T))
    X
    )rD   rE   Ú	symmetricr   )rC   Úassumptionss     r   Úrefine_TransposerJ   X   s,   € õ �1Œ;�tÑÔ˜kÑ*Ô*ð ØŒxˆà€Kr   N)Úsympy.core.basicr   Ú"sympy.matrices.expressions.matexprr   r   r7   Úsympy.assumptions.askrD   rE   Úsympy.assumptions.refinerF   rJ   r
   r   r   ú<module>rO      s¸   ðØ "Ð "Ð "Ð "Ð "Ð "Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9ðG.ð G.ð G.ð G.ð G.�
ñ G.ô G.ð G.ðT,ð ,ð ,ð
 )Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ðð ð ð .€ˆkÑ Ð Ð r   