Выражения, используемые в модуле «арифметика над данными», формулах величин зёрен и в аппроксимирующих функциях графиков, имеют синтаксис подобный многим языкам программирования.
Все числа являются действительными (с плавающей точкой), числовые константы используют стандартную нотацию. Примеры правильных чисел: 1, .707, 2.661, 8.2e-34.
Имена функций, постоянных и переменных начинаются с буквы и продолжаются нулём или более букв, цифр и знаков подчёркивания. Примеры правильных идентификаторов: pow10 (функция), Pi (постоянная), d2_2 (переменная).
Приоритет операций сведён в нижеприведённую таблицу.
| Операция | Ассоциативность | Примеры |
|---|---|---|
| скобки | недоступно | (x) |
| вызовы функций и унарные операторы | справа налево | -sqrt 3 |
| оператор степени | справа налево | 2^16 |
| операторы умножения, деления, остатка от деления | слева направо | 9/2 * 8 |
| операторы сложения и вычитания | слева направо | 3 - 4 + 5 |
Следует заметить, что -3^2 равно 9, и равносильно (-3)^2, как в bc, но в отличие от Perl или Python.
Доступные операторы и функции сведены в нижеследующую таблицу.
| Оператор | Смысл |
|---|---|
+ (унарный) | нет операции |
- (унарный) | отрицательное значение |
~ | отрицательное значение (эквивалентно -) |
+ (бинарный) | сложение |
- (бинарный) | вычитание |
* | умножение |
/ | деление |
% | остаток с плавающей точкой |
^ | степень |
abs | модуль |
floor | округление вниз к ближайшему целому (отбрасывание дробной части) |
ceil | округление вверх до ближайшего целого (следующего после вещественного) |
sqrt | квадратный корень |
cbrt | корень кубический |
sin | функция синус |
cos | функция косинус |
tan | функция тангенс |
asin | функция арксинус |
acos | функция арккосинус |
atan | функция арктангенс |
exp | функция экспонента по основанию e |
ln | функция логарифм по основанию e |
log | функция логарифм по основанию e |
pow10 | степенная функция по основанию 10 |
log10 | функция логарифм по основанию 10 |
sinh | функция гиперболический синус |
cosh | функция гиперболический косинус |
tanh | функция гиперболический тангенс |
asinh | инверсия функции гиперболического синуса |
acosh | инверсия функции гиперболического косинуса |
atanh | инверсия функции гиперболического тангенса |
pow | функция степени, pow(x,y) соответствует x^y |
min | минимум двух значений |
max | максимум двух значений |
mod | остаток от деления с плавающей точкой, mod(x,y) эквивалентен x % y |
hypot | Эвклидова функция расстояния, hypot(x,y) соответствует sqrt(x^2+y^2) |
atan2 | функция арктангенса двух переменных |
Помимо этого, есть несколько особенностей, которые могут упростить набор простых выражений:
Знак умножения является необязательным. вместо него можно использовать пробелы (или, в некоторых случаях, ничего не писать). Т.е., 3/4 Pi и 5(4+3)(2+1) являются допустимыми выражениями. Однако, 3a таковым не является, 3e-4 всегда означает 0.0003, а не 3*e - 4.
Нет разницы между вызовом функций и унарными операциями, поэтому скобки можно во многих случаях опустить. Т.е., sqrt 5 и hypot hypot 3,4,5 являются допустимыми выражениями. Последнее может быть приведено скобками к следующему: hypot(hypot(3,4),5).
Следует отметить, однако, что вызов функции имеет более высокий приоритет, чем любой другой оператор, что приводит к тому, что sin Pi/2 является аналогом (sin Pi)/2, а не sin(Pi/2).
Если сомневаетесь. всегда записывайте выражение в полной форме.