U
    L?h                     @   sL   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 deZ
dS )    )
AtomicExprSymbolS)_sympify)
prettyForm)
PRECEDENCEc                       sr   e Zd ZdZd fdd	ZdZdZedd ZdZ	dd	 Z
dd
dZdddZed Zedd Zdd Z  ZS )
BaseScalarzb
    A coordinate symbol/base scalar.

    Ideally, users should not instantiate this class.

    Nc                    s   ddl m} |d kr d|}nt|tr0|j}|d krDd|}nt|trT|j}t|}t|}t | ||}t||st	d|t
ddkrtd||f|_|jd |j|   |_|_d	| |_||_||_|S )
Nr   )
CoordSys3Dzx{}zx_{}zsystem should be a CoordSys3D   zInvalid index specified.. )Zsympy.vector.coordsysrectr	   format
isinstancer   namer   super__new__	TypeErrorrange
ValueErrorZ_id_nameZ_variable_names_pretty_form_latex_form_system)clsindexsystem
pretty_strZ	latex_strr	   obj	__class__ E/var/www/html/venv/lib/python3.8/site-packages/sympy/vector/scalar.pyr      s,    




zBaseScalar.__new__Tc                 C   s   | hS Nr    selfr    r    r!   free_symbols-   s    zBaseScalar.free_symbolsc                 C   s   | |krt jS t jS r"   )r   ZOneZZero)r$   sr    r    r!   _eval_derivative3   s    zBaseScalar._eval_derivativec                 C   s   | j S r"   )r   r$   printerr    r    r!   _latex8   s    zBaseScalar._latexc                 C   s
   t | jS r"   )r   r   r(   r    r    r!   _pretty;   s    zBaseScalar._prettyZAtomc                 C   s   | j S r"   )r   r#   r    r    r!   r   @   s    zBaseScalar.systemc                 C   s   | j S r"   )r   r(   r    r    r!   	_sympystrD   s    zBaseScalar._sympystr)NN)N)N)__name__
__module____qualname____doc__r   Zis_commutativeZ	is_symbolpropertyr%   Z	_diff_wrtr'   r*   r+   r   
precedencer   r,   __classcell__r    r    r   r!   r      s   



r   N)Z
sympy.corer   r   r   Zsympy.core.sympifyr   Z sympy.printing.pretty.stringpictr   Zsympy.printing.precedencer   r   r    r    r    r!   <module>   s   