
    sg                     B    d dl mZ d dlmZmZ d dlmZ  G d de      Zy)    )Basic)adjoint	conjugate)
MatrixExprc                   X    e Zd ZdZdZd Zed        Zed        Zd Z	d Z
d Zd	 Zd
 Zy)Adjointa,  
    The Hermitian adjoint of a matrix expression.

    This is a symbolic object that simply stores its argument without
    evaluating it. To actually compute the adjoint, use the ``adjoint()``
    function.

    Examples
    ========

    >>> from sympy import MatrixSymbol, Adjoint, adjoint
    >>> A = MatrixSymbol('A', 3, 5)
    >>> B = MatrixSymbol('B', 5, 3)
    >>> Adjoint(A*B)
    Adjoint(A*B)
    >>> adjoint(A*B)
    Adjoint(B)*Adjoint(A)
    >>> adjoint(A*B) == Adjoint(A*B)
    False
    >>> adjoint(A*B) == Adjoint(A*B).doit()
    True
    Tc                     | j                   }|j                  dd      r+t        |t              rt	         |j
                  di |      S t	        | j                         S )NdeepT )argget
isinstancer   r   doit)selfhintsr   s      U/var/www/html/venv/lib/python3.12/site-packages/sympy/matrices/expressions/adjoint.pyr   zAdjoint.doit   sJ    hh99VT"z#u'=8388,e,--488$$    c                      | j                   d   S )Nr   )argsr   s    r   r   zAdjoint.arg&   s    yy|r   c                 :    | j                   j                  d d d   S )N)r   shaper   s    r   r   zAdjoint.shape*   s    xx~~dd##r   c                 P    t         | j                  j                  ||fi |      S N)r   r   _entry)r   ijkwargss       r   r   zAdjoint._entry.   s#    A8899r   c                     | j                   S r   )r   r   s    r   _eval_adjointzAdjoint._eval_adjoint1   s    xxr   c                 6    | j                   j                         S r   )r   r   r   s    r   _eval_transposezAdjoint._eval_transpose4       xx!!##r   c                 6    | j                   j                         S r   )r   	transposer   s    r   _eval_conjugatezAdjoint._eval_conjugate7   r$   r   c                 D    ddl m} t         || j                              S )Nr   )Trace) sympy.matrices.expressions.tracer)   r   r   )r   r)   s     r   _eval_tracezAdjoint._eval_trace:   s    :txx))r   N)__name__
__module____qualname____doc__
is_Adjointr   propertyr   r   r   r!   r#   r'   r+   r   r   r   r   r      sT    , J%   $ $:$$*r   r   N)
sympy.corer   sympy.functionsr   r   "sympy.matrices.expressions.matexprr   r   r   r   r   <module>r5      s     . 96*j 6*r   