DataLab is a compact statistics package aiming at exploratory data analysis. Please visit the DataLab Web site for more information....


Mathematical Expressions in Import Scripts

The commands calc and emit in data extraction scripts may contain a mathematical or logical expression. This expression is not case sensitive. An expression may contain any number of user-defined variables, provided that the variable names are not equal to any of the reserved function names (see below). A user-defined variable always starts with a letter and may consist of any number of digits and letters and the underscore character ('_').

Care should be taken to avoid improper mixing of boolean and arithmetic subexpressions, for example:

(a>5) and (b=0) yields a boolean result, while
(a+5) and (b=0) yields an integer value (the and operator is used as a bitwise and)

The expression may use the following pre-defined constants, operators, and functions:

--- Constants ---
true logical true (or -1, if used as number)
false logical false (or 0, if used as number)
pi the number Pi (3.14159...)
--- Arithmetic Operators ---
+ sum: x+y
- difference: x-y
* product: x*y
/ division: x/y
# modulo: round(x) mod round(y)
^ power: exponentiation x^y , x>0, y..any real values
--- Logic Operators ---
> greater than
>= greater than or equal
= equal
>< not equal
< less than
<= less than or equal
and boolean or bitwise and
not boolean or bitwise not
or boolean or bitwise or
xor boolean or bitwise exclusive or
--- Functions ---
abs absolute value: abs(x), x..any real value
arccos inverse cosine: arccos(x), x..angle in radians
arcsin inverse sine: arcsin(x), x..angle in radians
arctan inverse tangens: arctan(x), x..angle in radians
cos cosine: cos(x), x..angle in radians
exp exponential function: exp(x)
frac fraction: frac(x) = x - int(x)
gauss gauss creates normally distributed random numbers with zero mean and unit standard deviation
int round towards zero: int(x)
lg decadic logarithm: lg(x)
ln natural logarithm: ln(x)
max returns the maximum of a list of columns or rows; max(list), the list contains a list of columns or rows separated by commas; a range of neighboring columns/rows may be abbreviated by the ':' sign. The list may contain constant values, as well. Example: max(c3,c5,100) calculates the maximum of the columns 3 and 5 and the value 100 (i.e. whenever both the column 3 and the column 5 contain a value below 100 the function returns a value of 100).
mean returns the mean of a list of variables: mean(list), with list containing a list of variables separated by commas; a range of numbered variables may be abbreviated by the ':' sign (i.e. "xx8:11" expands to "xx8, xx9, xx10, xx11").
min returns the minimum of a list of columns or rows; min(list), the list contains a list of columns or rows separated by commas; a range of neighboring columns/rows may be abbreviated by the ':' sign. The list may contain constant values, as well. Example: min(c2:4,c7) calculates the minimum of the columns 2, 3, 4 and 7.
nddens density of the standard normal distribution: nddens(x)
ndint integral of the standard normal distribution from -infinity to x: ndint(x)
ndquant quantile of the standard normal distribution for a probability x: ndquant(x)
rand uniformly distributed random numbers: random(x), x..amplitude of noise (mean = 0.0)
round round to the nearest integer: round(x)
sign sign of x: sign(x)
sin sinus: sin(x)
sqr square: sqr(x)
sqrt square root: sqrt(x)
sum returns the sum of a list of variables: sum(list), with list containing a list of variables separated by commas; a range of numbered variables may be abbreviated by the ':' sign (i.e. "zz1:3" expands to "zz1, zz2, zz3").
tan tangens: tan(x)
var returns the variance of a list of variables: var(list), with list containing a list of variables separated by commas; a range of numbered variables may be abbreviated by the ':' sign (i.e. "xx8:10,aux4,y1:3" expands to "xx8, xx9, xx10, aux4, y1, y2, y3").

Hint: Please note that the mathematical expressions available for import scripts are quite similar to the expressions used for Math Transformations, except for predefined constants and variable identifiers.