o
    i                     @   sJ   d dl mZmZmZ d dlmZ G dd deZejeedd Z	dS )    )Kind_NumberKind
NumberKind)Mulc                       s,   e Zd ZdZef fdd	Zdd Z  ZS )
VectorKinda  
    Kind for all vector objects in SymPy.

    Parameters
    ==========

    element_kind : Kind
        Kind of the element. Default is
        :class:`sympy.core.kind.NumberKind`,
        which means that the vector contains only numbers.

    Examples
    ========

    Any instance of Vector class has kind ``VectorKind``:

    >>> from sympy.vector.coordsysrect import CoordSys3D
    >>> Sys = CoordSys3D('Sys')
    >>> Sys.i.kind
    VectorKind(NumberKind)

    Operations between instances of Vector keep also have the kind ``VectorKind``:

    >>> from sympy.core.add import Add
    >>> v1 = Sys.i * 2 + Sys.j * 3 + Sys.k * 4
    >>> v2 = Sys.i * Sys.x + Sys.j * Sys.y + Sys.k * Sys.z
    >>> v1.kind
    VectorKind(NumberKind)
    >>> v2.kind
    VectorKind(NumberKind)
    >>> Add(v1, v2).kind
    VectorKind(NumberKind)

    Subclasses of Vector also have the kind ``VectorKind``, such as
    Cross, VectorAdd, VectorMul or VectorZero.

    See Also
    ========

    sympy.core.kind.Kind
    sympy.matrices.kind.MatrixKind

    c                    s   t  | |}||_|S )N)super__new__element_kind)clsr	   obj	__class__ `/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/sympy/vector/kind.pyr   2   s   zVectorKind.__new__c                 C   s
   d| j  S )NzVectorKind(%s))r	   )selfr   r   r   __repr__7   s   
zVectorKind.__repr__)__name__
__module____qualname____doc__r   r   r   __classcell__r   r   r   r   r      s    +r   c                 C   s*   t |ts
|| } }t| |j}t|S )z
    The result of a multiplication between a number and a Vector should be of VectorKind.
    The element kind is selected by recursive dispatching.
    )
isinstancer   r   _kind_dispatcherr	   )Zk1Zk2Zelemkr   r   r   num_vec_mul:   s   

r   N)
Zsympy.core.kindr   r   r   Zsympy.core.mulr   r   r   registerr   r   r   r   r   <module>   s
   4