ó
    ‰*£hU
  ã                   ód   • S SK Jr  S SKJr   " S S\5      rS rS SKJrJr  S SK	J
r
  S r\\
S'   g	)
é    )ÚBasic)Ú
MatrixExprc                   óv   • \ rS rSrSrSrS r\S 5       r\S 5       r	SS jr
S rS	 rS
 rS rS rS rS rSrg)Ú	Transposeé   aé  
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                 óú   • U R                   nUR                  SS5      (       a'  [        U[        5      (       a  UR                  " S0 UD6n[        USS 5      nUb  U" 5       nUb  U$ [        U5      $ [        U5      $ )NÚdeepTÚ_eval_transpose© )ÚargÚgetÚ
isinstancer   ÚdoitÚgetattrr   )ÚselfÚhintsr   r
   Úresults        Úa/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/matrices/expressions/transpose.pyr   ÚTranspose.doit   st   € Ø�h‰hˆØ�9‰9�V˜T×"Ñ"¤z°#´u×'=Ñ'=Ø—(’(Ñ#˜UÑ#ˆCÜ! #Ð'8¸$Ó?ˆØÑ&Ù$Ó&ˆFØ#Ñ/�6ÐC´Y¸s³^ÐCä˜S“>Ð!ó    c                 ó    • U R                   S   $ ©Nr   )Úargs©r   s    r   r   ÚTranspose.arg*   s   € à�y‰y˜‰|Ðr   c                 ó:   • U R                   R                  S S S2   $ )Néÿÿÿÿ)r   Úshaper   s    r   r   ÚTranspose.shape.   s   € à�x‰x�~‰~™d ˜dÑ#Ð#r   c                 ó@   • U R                   R                  " X!4SU0UD6$ )NÚexpand)r   Ú_entry)r   ÚiÚjr!   Úkwargss        r   r"   ÚTranspose._entry2   s   € Ø�x‰x�Š˜qÑ=¨FÐ=°fÑ=Ð=r   c                 ó6   • U R                   R                  5       $ ©N)r   Ú	conjugater   s    r   Ú_eval_adjointÚTranspose._eval_adjoint5   s   € Ø�x‰x×!Ñ!Ó#Ð#r   c                 ó6   • U R                   R                  5       $ r(   )r   Úadjointr   s    r   Ú_eval_conjugateÚTranspose._eval_conjugate8   s   € Ø�x‰x×ÑÓ!Ð!r   c                 ó   • U R                   $ r(   )r   r   s    r   r
   ÚTranspose._eval_transpose;   s   € Ø�x‰xˆr   c                 ó2   • SSK Jn  U" U R                  5      $ )Né   )ÚTrace)Útracer4   r   )r   r4   s     r   Ú_eval_traceÚTranspose._eval_trace>   s   € Ý Ù�T—X‘X‹Ðr   c                 ó2   • SSK Jn  U" U R                  5      $ )Nr   )Údet)Ú&sympy.matrices.expressions.determinantr9   r   )r   r9   s     r   Ú_eval_determinantÚTranspose._eval_determinantB   s   € Ý>Ù�4—8‘8‹}Ðr   c                 ó8   • U R                   R                  U5      $ r(   )r   Ú_eval_derivative)r   Úxs     r   r>   ÚTranspose._eval_derivativeF   s   € à�x‰x×(Ñ(¨Ó+Ð+r   c                 óˆ   • U R                   S   R                  U5      nU Vs/ s H  o3R                  5       PM     sn$ s  snf r   )r   Ú_eval_derivative_matrix_linesÚ	transpose)r   r?   Úlinesr#   s       r   rB   Ú'Transpose._eval_derivative_matrix_linesJ   s6   € Ø—	‘	˜!‘×:Ñ:¸1Ó=ˆÙ',Ó-¢u !—‘–¡uÑ-Ð-ùÒ-s   £?r   N)F)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úis_Transposer   Úpropertyr   r   r"   r*   r.   r
   r6   r;   r>   rB   Ú__static_attributes__r   r   r   r   r      sc   † ñð. €Lò	"ð ñó ðð ñ$ó ð$ô>ò$ò"òòòò,õ.r   r   c                 ó2   • [        U 5      R                  SS9$ )zMatrix transposeF)r	   )r   r   )Úexprs    r   rC   rC   O   s   € ä�T‹?×Ñ UÐÐ+Ð+r   )ÚaskÚQ)Úhandlers_dictc                 óh   • [        [        R                  " U 5      U5      (       a  U R                  $ U $ )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
)rP   rQ   Ú	symmetricr   )rO   Úassumptionss     r   Úrefine_TransposerV   X   s(   € ô Œ1�;Š;�tÓ˜k×*Ñ*Ø�x‰xˆà€Kr   N)Úsympy.core.basicr   Ú"sympy.matrices.expressions.matexprr   r   rC   Úsympy.assumptions.askrP   rQ   Úsympy.assumptions.refinerR   rV   r   r   r   Ú<module>r[      s8   ðÝ "Ý 9ôG.�
ô G.òT,÷
 )Ý 2òð .€ˆkÒ r   