
    Ed                     Z    d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	  G d de          Z
dS )    )
AtomicExprSymbolS)_sympify)
prettyForm)
PRECEDENCEc                        e Zd ZdZd fd	ZdZdZed             ZdZ	d Z
ddZddZed	         Zed
             Zd Z xZS )
BaseScalarzb
    A coordinate symbol/base scalar.

    Ideally, users should not instantiate this class.

    Nc                 p   ddl m} |d                    |          }nt          |t                    r|j        }|d                    |          }nt          |t                    r|j        }t          |          }t          |          }t                                          | ||          }t          ||          st          d          |t          dd          vrt          d          ||f|_        |j        dz   |j        |         z   x|_        |_        d	|z   |_        ||_        ||_        |S )
Nr   )
CoordSys3Dzx{}zx_{}zsystem should be a CoordSys3D   zInvalid index specified.. )sympy.vector.coordsysrectr   format
isinstancer   namer   super__new__	TypeErrorrange
ValueError_id_name_variable_names_pretty_form_latex_form_system)clsindexsystem
pretty_str	latex_strr   obj	__class__s          3lib/python3.11/site-packages/sympy/vector/scalar.pyr   zBaseScalar.__new__   s?   888888 	)e,,JJ
F++ 	)#J 	'e,,II	6** 	'!I&!!ggooc5&11&*-- 	=;<<<a# 	97888&/%|c1F4J54QQQ	CH
?#
    Tc                     | hS N selfs    r&   free_symbolszBaseScalar.free_symbols-   s	    vr'   c                 >    | |k    rt           j        S t           j        S r)   )r   OneZero)r,   ss     r&   _eval_derivativezBaseScalar._eval_derivative3   s    19 	5Lvr'   c                     | j         S r)   )r   r,   printers     r&   _latexzBaseScalar._latex8   s    r'   c                 *    t          | j                  S r)   )r   r   r4   s     r&   _prettyzBaseScalar._pretty;   s    $+,,,r'   Atomc                     | j         S r)   )r   r+   s    r&   r!   zBaseScalar.system@   s
    |r'   c                     | j         S r)   )r   r4   s     r&   	_sympystrzBaseScalar._sympystrD   s
    zr'   )NNr)   )__name__
__module____qualname____doc__r   is_commutative	is_symbolpropertyr-   	_diff_wrtr2   r6   r8   r   
precedencer!   r<   __classcell__)r%   s   @r&   r
   r
      s              6 NI  X I  
       - - - - F#J  X      r'   r
   N)
sympy.corer   r   r   sympy.core.sympifyr    sympy.printing.pretty.stringpictr   sympy.printing.precedencer   r
   r*   r'   r&   <module>rK      s    , , , , , , , , , , ' ' ' ' ' ' 7 7 7 7 7 7 0 0 0 0 0 0> > > > > > > > > >r'   