A **full list of equations** can be accessed by clicking on the ℹ "info" symbol beside the *Equation* field title. There is a variety of equations that can be used in the application, the most common ones used until today will be shown here. The equations are based on the math.js library

### Circular References

Similar to in excel; brains.app **circular reference** occurs when a formula directly or indirectly refers to its own metric. This causes the formula to use its result in the calculation, which can create errors. **To avoid this brains.app does not accept equation metrics in other equations.**

### Basic Operations (+, -, *, /)

You can add, subtract, multiply and/or divide metrics and/or metric.asset the way you want as long as measurement units make sense.

This can also be done with numbers and by combining operations.

### Absolute value

You can get the absolute value of a metric or a basic operations equation using the “abs()” function.

### IF function

In the app, you can use the “if” function that allows you to make logical comparisons between a value (metrics or numbers) and what you expect. This comparison can be made with the symbols equal (=), less than (<) and greater than (>). Then you can have two results, if your comparison is “true” and if your comparison is “false”; to get this you must add after your comparison a “?” which mean “if your comparison is true then return” followed by a metric or a number or even a NaN, and finally add a “:” which mean “otherwise if your comparison is false return” followed by what you expect.

You can also add the logic symbols “and”, “or”, like “&” and “|” when you want that two comparisons are both true or false; or when you want that one comparison or the other comparison are true or false.

### isNaN function

The isNaN() function determines whether a value is an “Not-a-Number”, you can use it to determine the NaN values in a metric and then change that NaN values for numbers or metrics using the if function above.

### Time shift function

The time shift function allows you to use the values contained in metrics at different times using the “time()” command by adding the number of **minutes** you want to move the timeline, backward (-) or forward; that is, e.g. if you want to use a value contained in "t-n" at time "t", “n” real number in minutes, and move the entire timeline, you must add “.time(-n)”.

time in equations:

- entering 60 or +60 shifts time backwards 60 minutes
- entering -60 shifts time forwards minutes

### Rolling Average

Using the time function, the user can create rolling average metrics, below is an example of 10 minute rolling average equation for metric(8)

- (metric(8)+metric(8).time(-1)+metric(8).time(-2)+metric(8).time(-3)+metric(8).time(-4)+metric(8).time(-5)+metric(8).time(-6)+metric(8).time(-7)+metric(8).time(-8)+metric(8).time(-9))/10