**Note**

We are actively expanding the set of operators and are keen to receive feature requests for new operators. Are you missing an operator? Let us know by providing

- a (short) example exercise
- description of the input and output of the operator
- Operator name suggestion

We will quickly get back to you whether we can implement such an operator.

## List of operators

We currently support the following operators in parameter definitions:

### Basic operators

- Random: Generate a random number between two bounds
- Range: Generate a random number between two bounds, with a specified step
- Formula: Perform an arbitrary expression calculation
- Interval: specify an interval (probability theory)
- Select: Extract a value from a list / matrix
- Unique: Return all unique values of the input list
- Length: Return the length of the input list
- Max: Get the maximum value in a list or set
- Min: Get the minimum value in a list or set
- Round: Round a value to a specified number of decimals with one of several available rounding methods

### Calculus

- Imaginair part: Extract the Imaginair part of an expression
- Real part: Extract the real part of an expression
- Integral: Evaluate the integral of an expression
- Derivative: Evaluate the derivative of an expression
- Limit: Calculate the limit of an expression
- Substitute: Substitute variables in an expression

### Linear Algebra

- Determinant: Calculate the determinant of a matrix
- Column space: Calculate the column-space of a matrix
- Null space: Calculate the null-space of a matrix
- Rank: Calculate the rank of a matrix
- Transpose: Transpose a matrix
- RREF: Calculate the Row Reduced Echelon Form of a matrix
- EigenValues: Calculate the Eigenvalues of a matrix
- EigenVectors: Calculate the Eigenvectors of a matrix
- Shape: Calculates the shape of a matrix
- Diagonalize: Calculates the P and D matrices of an input matrix

### Statistics

- Dataset: Upload a dataset to the platform
- Sample: Sample rows from a given dataset
- Correlation: Calculates the correlation between two lists of numeric values
- Linear Regression: Perform Ordinary least squares linear regression
- Mean: Get the mean of the values in a list or set
- Median: Get the median of the values in a list or set
- Mode: Get the mode of the values in a list
- Standard deviation: Get the sample or population standard deviation of the values in the list
- Variance: Get the sample or population variance of the values in the list.

## Detailed descriptions

### Random

*Input*:* *

- min: minimal value for the range
- max: maximum value for the range
- decimals: number of decimals to round the answer to

*Output: *A value between *min* and *max* rounded to *decimals* numbers

### Range

*Input*:* *

- min: minimal value for the range
- step: the step-size between
*min*and*max* - max: maximum value for the range

*Output: *A value out of the set *[min, min+1*step_size, min+2*stepsize, ..., min+n*stepsize, max]*

### Formula

*Input*:* *any expression, such as numbers, formula's, lists, sets, vectors or matrices

*Output: *The results of evaluating and **simplifying** the input.

NOTE: you can specify an interval via the "Interval" operator. See below for more detail.

### Interval

*Input*:* *an interval definition. See for more detail "Interval Syntax"

*Output: *the interval object to use in other operators.

### Select

*Input*:

- value: any formula expression resulting in a Matrix, Vector, list or Dataset
- first index selector: a selector for the first dimension to select (see comments below)
- second index selector: a selector for the second dimension to select (see comments below). This selector is only used of the value has more than 1 dimension.

*Output: *The value of the selected dimensions. Depending on the input this can be a list, a matrix, a vector, or a single value.

Index selectors are either

- a single index value (starting the count at
**1**) - a list of index values separated by a comma (e.g. "[1,3]")
- a '
**:**' to represent the whole range - a range in the form of "range_start:range_end" where the "range_end" can be negative which is a short-hand notation for counting back from length (e.g. "1:4" or "2:-1")

**Unique**

*Input*:* *Any formula expression resulting in a list

*Output: *A list containing all unique values of the input list

### Length

*Input*:* *Any formula expression resulting in a list

*Output: *The number of items in the input list

### Max

*Input*:* *Any formula expression resulting in a list or set

*Output: *Maximum value in input

### Min

*Input*:* *Any formula expression resulting in a list or set

*Output: *Minimum value in input

### Round

*Input*:

- value: any expression which can be evaluated to a numeric value
- decimals: number of decimals to round to (integer value >= 0)
- method: one of the available methods to be used for rounding.

*Output: *a numeric value (integer or floating point value).

The available methods are:

*half away from zero*

Rounds to the closest decimal and for halves it rounds away from zero, making the method symmetric around zero.

This method rounds**1.25 to 1.3**and**-1.25 to -1.3**when rounding to a single decimal.*half towards zero*

Rounds to the closest decimal and for halves it rounds towards zero, making the method symmetric around zero.

This method rounds**1.25 to 1.2**and**-1.25 to -1.2**when rounding to a single decimal.

*half towards even*

Rounds to the closest decimal and for halves it rounds to the nearest even number at the desired precision, making the method symmetric around zero.

This method rounds**1.25 to 1.2**,**-1.25 to -1.2**,**1.35 to 1.4**and**-1.35 to -1.4**when rounding to a single decimal.

*away from zero*

Always rounds away from zero. Similar to rounding up, but this method is symmetric around zero.

This method rounds**1.22 to 1.3**and**-1.22 to -1.3**when rounding to a single decimal.

*towards zero*

Always rounds towards zero. Similar to rounding down, but this method is symmetric around zero.

This method rounds**1.28 to 1.2**and**-1.28 to -1.2**when rounding to a single decimal.

*up (ceil)*

Always rounds up, making this method non-symmetric around zero.

This methods rounds**1.22 to 1.3**and**-1.28 to -1.2**when rounding to a single decimal.

*down (floor)*

Always rounds down, making this method asymmetric around zero.

This method rounds**1.28 to 1.2**and**-1.22 to -1.3**when rounding to a single decimal.

### Imaginair part

*Input:* Any formula expression

*Output: *The imaginary part of the expression

For more details on the implementation see the underlying function documentation.

### Real part

*Input:* Any formula expression

*Output: *The real part of the expression

For more details on the implementation see the underlying function documentation.

### Integral

*Input:*

- Formula: the formula to integrate
- Argument: the variable which to integrate to
- sub (optional): the lower bounds of the interval to integrate on
- sup (optional): the upper bounds of the interval to integrate on

*Output: *The integrated formula

For more details on the implementation see the underlying function documentation.

### Derivative

*Input:*

- Formula: the formula to differentiate
- Argument: the variable which to differentiate to

*Output: *The differentiated formula

For more details on the implementation see the underlying function documentation.

### Limit

*Input:*

- Formula: the formula to calculate the limit of
- Argument: the variable to calculate the limit of
- C: the value which
*argument*approaches - direction (optional, either
**+**or**-**): the direction in which the limit should be calculated

*Output: *The limit of *formula* of *argument* as *argument* approaches *C*

For more details on the implementation see the underlying function documentation.

### Substitute

*Input:*

- Formula: the formula to substitute values in
- substitutions: a list of tuples (pattern, replacement)

*Output: *The *formula* in which all *patterns* are substituted by *replacements *(in the specified order)

For more details on the implementation see the underlying function documentation.

### Determinant

*Input:* A matrix

*Output: *The determinant of *matrix*

For more details on the implementation see the underlying function documentation.

### Column space

*Input:* A matrix

*Output: *List of column vectors that span the column space of the matrix

For more details on the implementation see the underlying function documentation.

### Null space

*Input:* A matrix

*Output: *List of column vectors that span the null space of the matrix

For more details on the implementation see the underlying function documentation.

### Rank

*Input:* A matrix

*Output: *The rank of the input *matrix*

For more details on the implementation see the underlying function documentation.

### Transpose

*Input:* A matrix

*Output: *The transpose of the input *matrix*

For more details on the implementation see the underlying function documentation.

### RREF

*Input:* A matrix

*Output: *The Row Reduced Echelon Form of the input *matrix*

For more details on the implementation see the underlying function documentation. Note that we only return a m*atrix*, not the tuple of index columns.

### EigenValues

*Input:* A matrix

*Output: *A list with the EigenValues of the input *matrix*

For more details on the implementation see the underlying function documentation. Note that we return the EigenValues in the same order as the EigenVectors

### EigenVectors

*Input:* A matrix

*Output: *A list with the EigenVectors of the input *matrix*

For more details on the implementation see the underlying function documentation. Note that we return the EigenVectors in the same order as the EigenValues

### Shape

*Input:* A matrix

*Output: *Two values, one for the number of rows of the matrix and one for the number of columns of the matrix. These values can be selected as separate placeholder names.

### Diagonalize

*Input:* A matrix

*Output: *Two values, one matrix ** D** which is diagonal, and a matrix

**such that 𝑃𝐷𝑃^-1 gives the input matrix.**

*P*For more details on the implementation see the underlying function documentation.

### Mean

*Input*:* *Any formula expression resulting in a list or set

*Output: *Mean value of the input

### Median

*Input*:* *Any formula expression resulting in a list or set

*Output: *Median value of the input

### Mode

*Input*:* *Any formula expression resulting in a list

*Output: *Mode value of the input

IMPORTANT: you can **not apply** this operator on multi-modal distributions (e.g. [1,2,2,3,3]). This will result in an error and a warning message.

### Variance

*Input:*

- Value: Any formula expression resulting in a list or set
- Method:
**sample**(default) or**population**

*Output: *the variance of the list or set using the method specified

### Standard Deviation

*Input:*

- Value: Any formula expression resulting in a list or set
- Method:
**sample**(default) or**population**

*Output: *the standard deviation of the list or set using the method specified

### Dataset

*Input*: A file with comma separated values. This file should have column names in the first row, no missing values, and should be less than 2MB in size.

*Output*: A dataset variable which can be used in other dataset-based operators

### Sample

*Input*:

- A dataset based variable
- The size of the samples

*Output*: A dataset variable which can be used in other dataset-based operators

### Correlation

*Input:*

- Two lists of numeric values. These values can be the result of mathematical expressions, or result of selecting a single column of a dataset using the Select operator.

Note: all values of the lists should be numeric and available. The current operator cannot deal with missing data. - The method of correlation to use

*Output*: Two values:

- the estimate of the correlation
- the p-value of the correlation

These values can be selected as separate placeholder names.

### Linear Regression

*Input:*

- A list of numeric values for the dependent variable,
- A list of lists of numeric values, one for each coefficient B1 ... Bn

These values can be the result of mathematical expressions, or result of selecting a single column of a dataset using the Select operator.

Note: all values of the lists should be numeric and available. The current operator cannot deal with missing data.

*Output:* Multiple values:

- The coefficient of the constant
- The standard deviation of the coefficient of the constant
- The coefficient of each of B1 ... Bn
- The standard deviation of each coefficient B1 ... Bn
- The R-Squared value of the model
- The adjusted R-Squared value of the model
- The residual standard error of the model

These values can be selected as separate placeholder names.

## New operators

We are actively expanding the set of operators and are keen to receive feature requests for new operators. Are you missing an operator? Let us know by providing

- a (short) example exercise
- description of the input and output of the operator
- Operator name suggestion

We will quickly get back to you whether we can implement such an operator.

If you have any questions regarding operators or other functionality, please reach out to us via the chat icon in the bottom right.