Ë
    7^(hU
  ã                   ód   — 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<   y	)
é    )ÚBasic)Ú
MatrixExprc                   ól   — 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y)Ú	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                   }|j                  dd«      r"t        |t        «      r |j                  di |¤Ž}t        |dd «      }|� |«       }|�|S t        |«      S t        |«      S )NÚdeepTÚ_eval_transpose© )ÚargÚgetÚ
isinstancer   ÚdoitÚgetattrr   )ÚselfÚhintsr   r	   Úresults        úb/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/matrices/expressions/transpose.pyr   zTranspose.doit   sp   € Ø�h‰hˆØ�9‰9�V˜TÔ"¤z°#´uÔ'=Ø�#—(‘(Ñ#˜UÑ#ˆCÜ! #Ð'8¸$Ó?ˆØÐ&Ù$Ó&ˆFØ#Ð/�6ÐC´Y¸s³^ÐCä˜S“>Ð!ó    c                 ó    — | j                   d   S ©Nr   )Úargs©r   s    r   r   zTranspose.arg*   s   € à�y‰y˜‰|Ðr   c                 ó:   — | j                   j                  d d d…   S )Néÿÿÿÿ)r   Úshaper   s    r   r   zTranspose.shape.   s   € à�x‰x�~‰~™d ˜dÑ#Ð#r   c                 óB   —  | j                   j                  ||fd|i|¤ŽS )NÚexpand)r   Ú_entry)r   ÚiÚjr   Úkwargss        r   r   zTranspose._entry2   s#   € Øˆt�x‰x�‰˜q !Ñ=¨FÐ=°fÑ=Ð=r   c                 ó6   — | j                   j                  «       S ©N)r   Ú	conjugater   s    r   Ú_eval_adjointzTranspose._eval_adjoint5   s   € Ø�x‰x×!Ñ!Ó#Ð#r   c                 ó6   — | j                   j                  «       S r#   )r   Úadjointr   s    r   Ú_eval_conjugatezTranspose._eval_conjugate8   s   € Ø�x‰x×ÑÓ!Ð!r   c                 ó   — | j                   S r#   )r   r   s    r   r	   zTranspose._eval_transpose;   s   € Ø�x‰xˆr   c                 ó2   — ddl m}  || j                  «      S )Né   )ÚTrace)Útracer,   r   )r   r,   s     r   Ú_eval_tracezTranspose._eval_trace>   s   € Ý Ù�T—X‘X‹Ðr   c                 ó2   — ddl m}  || j                  «      S )Nr   )Údet)Ú&sympy.matrices.expressions.determinantr0   r   )r   r0   s     r   Ú_eval_determinantzTranspose._eval_determinantB   s   € Ý>Ù�4—8‘8‹}Ðr   c                 ó8   — | j                   j                  |«      S r#   )r   Ú_eval_derivative)r   Úxs     r   r4   zTranspose._eval_derivativeF   s   € à�x‰x×(Ñ(¨Ó+Ð+r   c                 ó„   — | j                   d   j                  |«      }|D �cg c]  }|j                  «       ‘Œ c}S c c}w r   )r   Ú_eval_derivative_matrix_linesÚ	transpose)r   r5   Úlinesr   s       r   r7   z'Transpose._eval_derivative_matrix_linesJ   s4   € Ø—	‘	˜!‘×:Ñ:¸1Ó=ˆØ',Ö- !�—‘•Ò-Ð-ùÒ-s   £=N)F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úis_Transposer   Úpropertyr   r   r   r%   r(   r	   r.   r2   r4   r7   r
   r   r   r   r      sc   „ ñð. €Lò	"ð ñó ðð ñ$ó ð$ó>ò$ò"òòòò,ó.r   r   c                 ó8   — t        | «      j                  d¬«      S )zMatrix transposeF)r   )r   r   )Úexprs    r   r8   r8   O   s   € ä�T‹?×Ñ UÐÓ+Ð+r   )ÚaskÚQ)Úhandlers_dictc                 ó\   — 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
    )rB   rC   Ú	symmetricr   )rA   Úassumptionss     r   Úrefine_TransposerH   X   s%   € ô Œ1�;‰;�tÓ˜kÔ*Ø�x‰xˆà€Kr   N)Úsympy.core.basicr   Ú"sympy.matrices.expressions.matexprr   r   r8   Úsympy.assumptions.askrB   rC   Úsympy.assumptions.refinerD   rH   r
   r   r   ú<module>rM      s8   ðÝ "Ý 9ôG.�
ô G.òT,÷
 )Ý 2òð .€ˆkÒ r   