Expression Syntax For Generic Applets
Expression syntax are used to describe mathematical operations, functions and conditions in applets.
Expression for math functions
In the generic framework, there are predefined expressions for constants of functions that are used to describe the value of a number or function variable. Be aware that you shouldn't use these expressions as names of your variables, as this will cause problems.
| Category |
Syntax |
Examples |
Note |
| Numbers |
0-9 |
42, 2.5, ... |
|
| Number Constants |
pi, e |
pi/2, e (~2.718...) |
|
| Parentheses |
() |
(-x+1)*(x+2) |
|
| Standard Operations |
+,-,/,*,^ |
1+2, pi/2 |
|
| Absolute value |
abs(arg) or |arg| |
abs(x), |
|
| Trigonometric functions |
sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh, atan2 |
sin(2*pi), (cos(x))^2, atan2(-1,1) |
if z is a complex number, atan(z) is the phase of z. It is in the range (-pi, pi], you may use also arcsin, arccos, etc atan2 takes two real arguments x and y separated by a semicolon: atan2(x;y) |
| Signum |
sign(arg) |
sign(x) = 1, x>0; sign(0)=0; sign(x)=-1,x<0 |
If the number field is complex or complex-rational, sign(arg) is only defined for im(arg)=0. |
| Theta/Heaviside |
theta(arg) |
theta(x) = 1,x>=0; theta(x)=0, x<0 |
If the number field is complex or complex-rational, theta(arg) is only defined for im(arg)=0. |
| Dirac delta function (1 for x = 0, 0 otherwise) |
dirac(arg) |
dirac(x) |
If the number field is complex or complex-rational, dirac(arg) is only defined for im(arg)=0. |
| Exponential function |
exp(x) or e^x |
exp(2*x) |
|
|
| minimum/maximum function |
min(arg), max(arg) |
min(myMatrix), min([1;3;-2;5]) |
arg has to be a matrix or row vector: either an identifier or directly described using the python like syntax. Those two functions are not defined for non-real numbers. |
If the number field is chosen to be complex or complex-rational, the imaginary unit is i, and there are the functions re and im for the real and imaginary part, e.g. re(1+2*i) and im (1-i).
Expression for conditions
This is used to described conditions, such as in \randadjustif or in generic visualization's \IFELSE command
It is basically a relation between the values of two Operations or function from the 1st category
| Category |
Syntax |
Examples |
Note |
| Equal |
left=right |
x=0, x=y, |(x)|=1 |
is true if the value of the left side equals the value of the right side |
| Not equal |
left!=right |
x!=0, x!=y |
|
| Greater than |
left>right |
x > y |
|
| Less than |
left < right |
x < y |
|
| Greater than or equal |
left >=right |
x >= y |
|
| Less than or equal |
left <=right |
x <= y, abs(x)<3, sin(x)<0.5 |
|
| Grouping brackets |
[left>=right] |
[abs(x)>3] AND [abs(x)<5] |
use to group a relation |
| Negation |
NOT [left > right] |
NOT [x = y] |
negate the relation in the brackets, returns true if x != y |
| AND |
[cond1] AND [cond2] |
[x>0] AND [x<3] |
|
| OR |
[cond1] OR [cond2] |
[x<0] OR [x>3] |