�
��g/ � �� � d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl m
Z
ddlmZm
Z
i dd �d
d�dd
�dd�dd�dd�dd�dd�dd�dd�dd�dd�d d!�d"d#�d$d%�d&d'�d(d)�d*d+d,d-d.��Z G d/� d0e
� � Zd4d2�Zd3� Zd1S )5z�
Javascript code printer
The JavascriptCodePrinter converts single SymPy expressions into single
Javascript expressions, using the functions defined in the Javascript
Math object where possible.
� )�annotations)�Any)�S)�equal_valued)�CodePrinter)�
precedence�
PRECEDENCE�AbszMath.abs�acosz Math.acos�acoshz
Math.acosh�asinz Math.asin�asinhz
Math.asinh�atanz Math.atan�atan2z
Math.atan2�atanhz
Math.atanh�ceilingz Math.ceil�coszMath.cos�coshz Math.cosh�expzMath.exp�floorz
Math.floor�logzMath.log�MaxzMath.max�MinzMath.min�signz Math.signzMath.sinz Math.sinhzMath.tanz Math.tanh)�sin�sinh�tan�tanhc �� � e Zd ZU dZdZdZ eej fi di dd���Zde d<