# calc выражения

## пример

    max((weight + 2*offset)/time, 50)

где: `max` - функция; `weight`, `offset` и `time` - аргументы

## арифметические операции

- +
- -
- *
- /
- % - деление по модулю
- ^ - возведение в степень
- ** - возведение в степень

## операции сравнения

- <
- <=
- =
- >=
- >
- !=
- -

## логические операции

- &&
- ||

Реализация на примере ||: `(a == 1 && b == 1)? 1 : 0`

## функции

- sin(a)
- cos(a)
- tan(a)
- sinh(a)
- cosh(a)
- tanh(a)
- asin(a)
- acos(a)
- atan(a)
- atan2(a)
- deg(a)
- rad(a)
- abs(a)
- round(a)
- ceil(a)
- floor(a)
- exp(a)
- ln(a)
- log(a)
- sqrt(a)
- min(a, b)
- max(a, b)
- rnd(а) - возвращает случайное значение, которое больше 0 и меньше а.
- sign(a) - если а==0, возвращает 0. Если а<0, то -1. Если а>0, то 1.
- if(с, a, b) - если c==1, то а, иначе b
- AND(a, b) - реализация `(int)a & (int)b`
- OR(a, b) - реализация `(int)a | (int)b`