# Expressions

Plot functions which allow mathematical expressions supports the following functions:

`+, -, *, /` | arithmetic operations
`%, mod` | modulo
`( )` | grouping
`^, **` | power
`rad(x), deg(x)` | conversion between radians and degrees
`sin(x),cos(x),tan(x)` | trigonometric functions
`asin(x),acos(x),atan(x)` | inverse trigonometric functions
`sinh(x),cosh(x),tanh(x)` | hyperbolic functions
`rnd(h)` | random number (h = height)
`ln(x),log(x)` | natural and logarithm to base 10
`sqrt(x)` | square root
`cbrt(x)` | cubic root
`frac(x)` | returns the fraction of x
`int(x)` | returns the integer of x
`round(x;n)` | round up and down to the nth place on the right of the decimal point
`gau(x;x0;a;w)` | Gauss (x0 = position, a = amplitude, w = width)
`lor(x;x0;a;w)` | Lorentz (x0 = position, a = amplitude, w = width)
`galo(x;x0;a;w;r)` | Gauss-Lorentz (x0 = position, a = amplitude, w = width, r =Gauss-Lorentz ratio (1.0=pure Gauss,0.0 = pure Lorentz))
`tail(x;x0;a;w;r;t)` | Gauss-Lorentz with exponential Tail (x0 = position, a = amplitude, w = width, r = Gauss-Lorentz ratio(1.0=pure Gauss,0.0 = pure Lorentz)), t = tail exponent factor
`j0(x), j1(x), jn(x,n)` | bessel functions
`y0(x), y1(x), yn(x,n)` | bessel functions
`pi` | 3.14159265359
`e` | 2.71828182846
`xval(b;i)` | x value of point i in buffer b
`yval(b;i)` | y value of point i in buffer b
`xerr(b;i)` | x error value of point i in buffer b
`yerr(b;i)` | y error value of point i in buffer b
`xmin(b)` | minimum x value in buffer b
`xmax(b)` | maximum x value in buffer b
`ymin(b)` | minimum y value in buffer b
`ymax(b)` | maximum y value in buffer b
`txmin (b)` | minimum x value over all buffers
`txmax (b)` | maximum x value over all buffers
`tymin (b)` | minimum y value over all buffers
`tymax (b)` | maximum y value over all buffers
`vxmin(b)` | minimum x value over all visible buffer
`vxmax(b)` | maximum x value over all visible buffer
`vymin(b)` | minimum y value over all visible buffer
`vymax(b)` | maximum y value over all visible buffer
`points(b)` | number of points in buffer b
`xpoint(v;a)` | x screen coordinate of v (a can be 1 for the first or 2 for the second axis).
`xvalue(v;a)` | x value of the screen coordinate v (a can be 1 for the first or 2 for the second axis).
`ypoint(v;a)` | y screen coordinate of v (a can be 1 for the first or 2 for the second axis).
`yvalue(v;a)` | y value of the screen coordinate v (a can be 1 for the first or 2 for the second axis).
`findx(v;b)` | x value which depends to y in buffer b. If there are more than one it returns the first it found.
`findy(v;b)` | y value which depends to x in buffer b. If there are more than one it returns the first it found.