
    Xh                         d dl mZmZmZ d dlmZ  G d de          Zej                            ee          d             Z	dS )    )Kind_NumberKind
NumberKind)Mulc                   ,     e Zd ZdZef fd	Zd Z x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                 Z    t                                          | |          }||_        |S )N)super__new__element_kind)clsr   obj	__class__s      c/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/sympy/vector/kind.pyr   zVectorKind.__new__2   s'    ggooc<00'
    c                     d| j         z  S )NzVectorKind(%s))r   )selfs    r   __repr__zVectorKind.__repr__7   s    $"333r   )__name__
__module____qualname____doc__r   r   r   __classcell__)r   s   @r   r   r      s\        * *V #-      
4 4 4 4 4 4 4r   r   c                     t          |t                    s|| }} t          j        | |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   )k1k2elemks      r   num_vec_mulr    :   sA     b*%% RB R_55Eer   N)
sympy.core.kindr   r   r   sympy.core.mulr   r   r   registerr     r   r   <module>r%      s    : 9 9 9 9 9 9 9 9 9      24 24 24 24 24 24 24 24h {J77  87  r   