
    g                     J    d dl mZ d dlmZmZ d dlmZ  G d de          ZdS )    )Basic)adjoint	conjugate)
MatrixExprc                   f    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dS )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         }|                    dd          r/t          |t                    rt	           |j        di |          S t	          | j                   S )NdeepT )argget
isinstancer   r   doit)selfhintsr   s      ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/matrices/expressions/adjoint.pyr   zAdjoint.doit   s`    h99VT"" 	%z#u'='= 	%838,,e,,---48$$$    c                     | j         d         S )Nr   )argsr   s    r   r   zAdjoint.arg&   s    y|r   c                 ,    | j         j        d d d         S )N)r   shaper   s    r   r   zAdjoint.shape*   s    x~ddd##r   c                 D    t           | j        j        ||fi |          S N)r   r   _entry)r   ijkwargss       r   r   zAdjoint._entry.   s(    A8888999r   c                     | j         S r   )r   r   s    r   _eval_adjointzAdjoint._eval_adjoint1   s	    xr   c                 4    | j                                         S r   )r   r   r   s    r   _eval_transposezAdjoint._eval_transpose4       x!!###r   c                 4    | j                                         S r   )r   	transposer   s    r   _eval_conjugatezAdjoint._eval_conjugate7   r$   r   c                 H    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,    ::::::tx)))r   N)__name__
__module____qualname____doc__
is_Adjointr   propertyr   r   r   r!   r#   r'   r+   r   r   r   r   r      s         , J% % %   X $ $ X$: : :  $ $ $$ $ $* * * * *r   r   N)
sympy.corer   sympy.functionsr   r   "sympy.matrices.expressions.matexprr   r   r   r   r   <module>r5      su          . . . . . . . . 9 9 9 9 9 96* 6* 6* 6* 6*j 6* 6* 6* 6* 6*r   