**Syntax to define a mathematical function**
============================================

In a mathematical function, used for example in field definition, it's possible to use the predifined function (an object parser is used to evaluate the functions) :


+---------+----------------------------------------------------------------------------+
| ABS     | absolute value function                                                    |
+---------+----------------------------------------------------------------------------+
| COS     | cosine function                                                            |
+---------+----------------------------------------------------------------------------+
| SIN     | sine function                                                              |
+---------+----------------------------------------------------------------------------+
| TAN     | tangent function                                                           |
+---------+----------------------------------------------------------------------------+
| ATAN    | arctangent function                                                        |
+---------+----------------------------------------------------------------------------+
| EXP     | exponential function                                                       |
+---------+----------------------------------------------------------------------------+
| LN      | natural logarithm function                                                 |
+---------+----------------------------------------------------------------------------+
| SQRT    | square root function                                                       |
+---------+----------------------------------------------------------------------------+
| INT     | integer function                                                           |
+---------+----------------------------------------------------------------------------+
| ERF     | error function                                                             |
+---------+----------------------------------------------------------------------------+
| RND(x)  | random function (values between 0 and x)                                   |
+---------+----------------------------------------------------------------------------+
| COSH    | hyperbolic cosine function                                                 |
+---------+----------------------------------------------------------------------------+
| SINH    | hyperbolic sine function                                                   |
+---------+----------------------------------------------------------------------------+
| TANH    | hyperbolic tangent function                                                |
+---------+----------------------------------------------------------------------------+
| ACOS    | inverse cosine function                                                    |
+---------+----------------------------------------------------------------------------+
| ASIN    | inverse sine function                                                      |
+---------+----------------------------------------------------------------------------+
| ATANH   | inverse hyperbolic tangent function                                        |
+---------+----------------------------------------------------------------------------+
| NOT(x)  | NOT x (returns 1 if x is false, 0 otherwise)                               |
+---------+----------------------------------------------------------------------------+
| SGN(x)  | SGN x (returns 1 if x is positive, -1 if negative, 0 if zero)              |
+---------+----------------------------------------------------------------------------+
| x_AND_y | boolean logical operation AND (returns 1 if both x and y are true, else 0) |
+---------+----------------------------------------------------------------------------+ 
| x_OR_y  | boolean logical operation OR (returns 1 if x or y is true, else 0)         |
+---------+----------------------------------------------------------------------------+
| x_GT_y  | greater than (returns 1 if :math:`x>y`, else 0)                            |
+---------+----------------------------------------------------------------------------+
| x_GE_y  | greater than or equal to                                                   |
+---------+----------------------------------------------------------------------------+
| x_LT_y  | less than (returns 1 if x<y, else 0)                                       |
+---------+----------------------------------------------------------------------------+
| x_LE_y  | less than or equal to                                                      |
+---------+----------------------------------------------------------------------------+
| x_MIN_y | returns the smallest of x and y                                            |
+---------+----------------------------------------------------------------------------+
| x_MAX_y | returns the largest of x and y                                             |
+---------+----------------------------------------------------------------------------+
| x_MOD_y | modular division of x per y                                                |
+---------+----------------------------------------------------------------------------+
| x_EQ_y  | equal to (returns 1 if x==y, else 0)                                       |
+---------+----------------------------------------------------------------------------+
| x_NEQ_y | not equal to (returns 1 if x!=y, else 0)                                   |
+---------+----------------------------------------------------------------------------+


You can also use the following operations:

+------+--------------------------+
| \+   | addition                 |
+------+--------------------------+
| \-   | subtraction              |
+------+--------------------------+
| /    | division                 |
+------+--------------------------+
| \*   | multiplication           |
+------+--------------------------+
| \%   | modulo                   |
+------+--------------------------+
| \$   | max                      |
+------+--------------------------+
| \^   | power                    |
+------+--------------------------+
| <    | less than                |
+------+--------------------------+
| >    | greater than             |
+------+--------------------------+
| [    | less than or equal to    |
+------+--------------------------+
| ]    | greater than or equal to |
+------+--------------------------+


You can also use the following constants:

+------+----------------------+
| Pi   | pi value (3,1415...) |
+------+----------------------+



The variables which can be used are:

+--------+-------------+
| x,y,z  | coordinates |
+--------+-------------+
| t      | time        |
+--------+-------------+



Examples:
---------

Champ_front_fonc_txyz 2 cos(y+x\^2) t+ln(y)

Champ_fonc_xyz dom 2 tanh(4*y)*(0.95+0.1*rnd(1)) 0.



Possible errors:
----------------

Error 1:
........

   Champ_fonc_txyz 1 cos(10*t)*(1<x<2)*(1<y<2)

   Previous line is wrong. It should be written as:

   Champ_fonc_txyz 1 cos(10*t)*(1<x)*(x<2)*(1<y)*(y<2)

Error 2:
........

   Champ_front_fonc_xyz 1 20*(x<-2)+10*(y]-5)+3*(z>0)

   Previous line is wrong because negative values are not written between parentheses. It should be written as:

   Champ_front_fonc_xyz 1 20*(x<(-2))+10*(y](-5))+3*(z>0)

