**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
- 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

#### 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

## 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*:* *

- formula: any formula expression
- decimals: number of decimals to round the answer to

*Output: *The results of evaluating and **simplifying** the formula, optionally rounded to *decimals* places

#### 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

#### 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.

#### 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

The following operators are planned to be added in the next release.

**Combine**matrices and vectors**Remove**row/column of a matrix

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.