+
    iU
                     f    ^ RI Ht ^ RIHt  ! R R]4      tR t^ RIHtHt ^ RI	H
t
 R t]]
R&   R	# )
    )Basic)
MatrixExprc                      a  ] tR t^t o RtRtR t]R 4       t]R 4       t	RR lt
R tR tR	 tR
 tR tR tR tRtV tR# )	Transposea  
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                   V P                   pVP                  R R4      '       d)   \        V\        4      '       d   VP                  ! R/ VB p\        VRR4      pVe   V! 4       pVe   V# \        V4      # \        V4      # )deepT_eval_transposeN )argget
isinstancer   doitgetattrr   )selfhintsr   r	   results   &,   ڄ/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/sympy/matrices/expressions/transpose.pyr   Transpose.doit   st    hh99VT""z#u'='=((#U#C!#'8$?&$&F#/6CYs^CS>!    c                (    V P                   ^ ,          # r   )argsr   s   &r   r   Transpose.arg*   s    yy|r   c                B    V P                   P                  R R R1,          # )N)r   shaper   s   &r   r   Transpose.shape.   s    xx~~dd##r   c                @    V P                   P                  ! W!3R V/VB # )expand)r   _entry)r   ijr    kwargss   &&&&,r   r!   Transpose._entry2   s    xxq=F=f==r   c                6    V P                   P                  4       # N)r   	conjugater   s   &r   _eval_adjointTranspose._eval_adjoint5   s    xx!!##r   c                6    V P                   P                  4       # r'   )r   adjointr   s   &r   _eval_conjugateTranspose._eval_conjugate8   s    xx!!r   c                    V P                   # r'   )r   r   s   &r   r	   Transpose._eval_transpose;   s    xxr   c                2    ^RI Hp V! V P                  4      # )   )Trace)tracer3   r   )r   r3   s   & r   _eval_traceTranspose._eval_trace>   s     TXXr   c                2    ^ RI Hp V! V P                  4      # )r   )det)&sympy.matrices.expressions.determinantr8   r   )r   r8   s   & r   _eval_determinantTranspose._eval_determinantB   s    >488}r   c                8    V P                   P                  V4      # r'   )r   _eval_derivative)r   xs   &&r   r=   Transpose._eval_derivativeF   s    xx((++r   c                    V P                   ^ ,          P                  V4      pV Uu. uF  q3P                  4       NK  	  up# u upi r   )r   _eval_derivative_matrix_lines	transpose)r   r>   linesr"   s   &&  r   rA   'Transpose._eval_derivative_matrix_linesJ   s6    		!::1=',-u!u---s   Ar
   N)F)__name__
__module____qualname____firstlineno____doc__is_Transposer   propertyr   r   r!   r)   r-   r	   r5   r:   r=   rA   __static_attributes____classdictcell__)__classdict__s   @r   r   r      sk     . L	"   $ $>$",. .r   r   c                8    \        V 4      P                  RR7      # )zMatrix transposeF)r   )r   r   )exprs   &r   rB   rB   O   s    T?U++r   )askQ)handlers_dictc                j    \        \        P                  ! V 4      V4      '       d   V P                  # V # )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
)rQ   rR   	symmetricr   )rP   assumptionss   &&r   refine_TransposerW   X   s(     1;;tk**xxKr   N)sympy.core.basicr   "sympy.matrices.expressions.matexprr   r   rB   sympy.assumptions.askrQ   rR   sympy.assumptions.refinerS   rW   r
   r   r   <module>r\      s8    " 9G.
 G.T,
 ) 2 .k r   