§
    PŠtjw  ã                   óB   — d dl mZ d dlmZmZmZ  G d„ de¦  «        ZdS )é    )ÚBasic)ÚgradientÚ
divergenceÚcurlc                   ó”   ‡ — e Zd ZdZˆ fd„Zdd„ZeZej        e_        dd„ZeZej        e_        dd„Z	e	Z
e	j        e
_        d„ Zˆ xZS )	ÚDelz�
    Represents the vector differential operator, usually represented in
    mathematical expressions as the 'nabla' symbol.
    c                 óX   •— t          ¦   «                              | ¦  «        }d|_        |S )NÚdelop)ÚsuperÚ__new__Ú_name)ÚclsÚobjÚ	__class__s     €úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/vector/deloperator.pyr   zDel.__new__   s$   ø€ Ý‰gŒg�oŠo˜cÑ"Ô"ˆØˆŒ	Øˆ
ó    Fc                 ó$   — t          ||¬¦  «        S )aº  
        Returns the gradient of the given scalar field, as a
        Vector instance.

        Parameters
        ==========

        scalar_field : SymPy expression
            The scalar field to calculate the gradient of.

        doit : bool
            If True, the result is returned after calling .doit() on
            each component. Else, the returned expression contains
            Derivative instances

        Examples
        ========

        >>> from sympy.vector import CoordSys3D, Del
        >>> C = CoordSys3D('C')
        >>> delop = Del()
        >>> delop.gradient(9)
        0
        >>> delop(C.x*C.y*C.z).doit()
        C.y*C.z*C.i + C.x*C.z*C.j + C.x*C.y*C.k

        ©Údoit)r   )ÚselfÚscalar_fieldr   s      r   r   zDel.gradient   s   € õ: ˜¨4Ð0Ñ0Ô0Ð0r   c                 ó$   — t          ||¬¦  «        S )a  
        Represents the dot product between this operator and a given
        vector - equal to the divergence of the vector field.

        Parameters
        ==========

        vect : Vector
            The vector whose divergence is to be calculated.

        doit : bool
            If True, the result is returned after calling .doit() on
            each component. Else, the returned expression contains
            Derivative instances

        Examples
        ========

        >>> from sympy.vector import CoordSys3D, Del
        >>> delop = Del()
        >>> C = CoordSys3D('C')
        >>> delop.dot(C.x*C.i)
        Derivative(C.x, C.x)
        >>> v = C.x*C.y*C.z * (C.i + C.j + C.k)
        >>> (delop & v).doit()
        C.x*C.y + C.x*C.z + C.y*C.z

        r   )r   ©r   Úvectr   s      r   ÚdotzDel.dot2   s   € õ: ˜$ TÐ*Ñ*Ô*Ð*r   c                 ó$   — t          ||¬¦  «        S )a4  
        Represents the cross product between this operator and a given
        vector - equal to the curl of the vector field.

        Parameters
        ==========

        vect : Vector
            The vector whose curl is to be calculated.

        doit : bool
            If True, the result is returned after calling .doit() on
            each component. Else, the returned expression contains
            Derivative instances

        Examples
        ========

        >>> from sympy.vector import CoordSys3D, Del
        >>> C = CoordSys3D('C')
        >>> delop = Del()
        >>> v = C.x*C.y*C.z * (C.i + C.j + C.k)
        >>> delop.cross(v, doit = True)
        (-C.x*C.y + C.x*C.z)*C.i + (C.x*C.y - C.y*C.z)*C.j +
            (-C.x*C.z + C.y*C.z)*C.k
        >>> (delop ^ C.i).doit()
        0

        r   )r   r   s      r   Úcrossz	Del.crossT   s   € õ> �D˜tÐ$Ñ$Ô$Ð$r   c                 ó   — | j         S )N)r   )r   Úprinters     r   Ú	_sympystrzDel._sympystrx   s
   € ØŒzÐr   )F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__call__r   Ú__and__r   Ú__xor__r    Ú__classcell__)r   s   @r   r   r      sÀ   ø€ € € € € ðð ð
ð ð ð ð ð
1ð 1ð 1ð 1ð> €HØÔ'€HÔð+ð +ð +ð +ð> €GØ”k€G„Oð%ð %ð %ð %ðB €GØ”m€G„Oðð ð ð ð ð ð r   r   N)Ú
sympy.corer   Úsympy.vector.operatorsr   r   r   r   © r   r   ú<module>r,      ss   ðØ Ð Ð Ð Ð Ð Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =ðtð tð tð tð tˆ%ñ tô tð tð tð tr   