К функциям редукции относятся функции SUM (сумма), MULT (произведение), MAX (максимум), MIN (минимум). Результат вычисления этих функций имеет тип DOUBLE. Обращение к этим функциям имеет вид:
Область определяет множество точек области, в которых необходимо вычислить функцию, арифметическое выражение - множество значений, к которым применяется функция.
Пусть необходимо вычислить
Фрагмент этого вычисления на языке Норма:
Пример использования вложенных функций редукции:
Для редукционных функций справедливо правило локализации индексов: область, указанная в качестве аргумента функции редукции, вводит свою систему индексов, область действия которой - арифметическое выражение, заданное в качестве второго аргумента функции редукции. Это означает, что индексы, используемые в арифметическом выражении, можно разделить на два типа: "внутренние", то есть совпадающие с индексами области редукции и определяемые ими, и "внешние", то есть не совпадающие с индексами области редукции, и определяемые внешними областями (например, областями других функций редукции или оператора ASSUME). Множество значений "внутренних" индексов полностью определяется областью, заданной в качестве аргумента функции редукции. Множество значений "внешних" индексов определяется внешними по отношению к функции редукции областями.
Например, оператор
описывает запрос на вычисление
при наличии описаний :
Если внешняя область условная, то условие действует на все внешние индексы арифметического выражения, стоящего под знаком функции редукции. Например, формула
задающая вычисление
..............
может быть записана следующим образом:
В языке Норма запрещены рекурсивные вычисления переменных, используемых в левой части оператора ASSUME и в то же время в аримфетическом выражении в функции редукции. Например, формула
не может быть записана одним оператором ASSUME вида