Документация Engee

Сложение

Выполняет сложение или вычитание входных сигналов.

Add

add

Sum of Elements

sum of elements

Описание

Блок Сложение выполняет сложение или вычитание входных сигналов. Этот блок может складывать или вычитать скалярные, векторные или матричные сигналы. Он также может суммировать элементы сигнала.

Операции блока задаются с помощью параметра Порядок знаков. Доступные операции и символы:

  • Сложение ( +).

  • Вычитание ().

  • Количество символов + и равно количеству входных портов блока.

    Например, если указать для параметра Порядок знаков значение +−+, блок будет иметь три входных порта. Блок вычитает второй (средний) входной сигнал из первого (верхнего), а затем прибавляет третий (нижний).

  • Если выполняется только сложение, то можно задать числовое значение, равное количеству входных данных.

Вычисление выходного значения

Вычисление выходного значения для блока Сложение зависит от количества входов блока и знака входных портов:

Если у блока И…​ Формула для расчета выходного значения…​ Где…​

Один входной порт

Знак входного порта +

y = e[0]+e[1]+e[2]…​+ e[m]

e[i]i-й элемент входа u

Знак входного порта

y = 0.0–e[0]–e[1]–e[2]…​–e[m]

Два или более входных порта

Все знаки входного порта являются

y = 0.0–u[0]–u[1]–u[2]…​–u[n]

u[i] — вход в i-й входной порт

k-й входной порт — это первый порт со знаком +

y = u[k]–u[0]–u[1]–u[2]–u[k–1] (+/–) u[k+1]…​ (+/–) u[n]

Порты

Выход

# OUT_1 — выходной сигнал
скаляр | вектор | матрица

Details

Выходной сигнал, полученный в результате операций сложения и/или вычитания. Выходной сигнал имеет тот же размер, что и входные сигналы.

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

Поддержка комплексных чисел

Да

Вход

# In_1 — первый входной сигнал
скаляр | вектор | матрица

Details

Входной сигнал для операции сложения или вычитания. Если имеется только один входной сигнал, то сложение или вычитание выполняется для всех его элементов.

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

Поддержка комплексных чисел

Да

# In_n — n-ый входной сигнал операнда
скаляр | вектор | матрица

Details

n-й входной сигнал для операций. Количество входных сигналов соответствует количеству знаков в параметре Порядок знаков. Блок применяет операции к входным данным в указанном порядке.

Все нескалярные входные данные должны иметь одинаковые размерности. Скалярные входные данные расширяются, чтобы иметь те же размерности, что и другие входные данные.

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

Поддержка комплексных чисел

Да

Параметры

Основные

# Порядок знаков — операции, выполняемые над входными данными

Details

Введите операции сложения и вычитания, выполняемые на входных данных. Для каждой операции создается входной порт.

Сложение — это операция по умолчанию. Операции выполняются в указанном порядке.

Для одного векторного входа + или − складывает или вычитает элементы по всем измерениям.

Если выполняется только сложение, то можно задать числовое значение, равное количеству входных данных.

Значение по умолчанию

Имя для программного использования

Inputs

Настраиваемый

Нет

Вычисляемый

Да

Настройки аккумулятора

# Тип данных аккумулятора — тип данных накопителя
Наследовать автоматически | Наследовать от первого входа | Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Фиксированная точка

Details

Выберите тип данных для накопителя.

Значения

Inherit: auto | Same as first input | Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Fixed-point

Значение по умолчанию

Inherit: auto

Имя для программного использования

AccumDataTypeStr

Настраиваемый

Нет

Вычисляемый

Нет

# Тип накопителя в фиксированной точке — тип данных с фиксированной точкой для накопителя
Тип данных

Details

Укажите тип данных с фиксированной точкой для накопителя.

Зависимости

Чтобы использовать этот параметр, установите для параметра Тип данных аккумулятора значение Фиксированная точка.

Значение по умолчанию

fixdt(1, 16, 0)

Имя для программного использования

AccumDataTypeStrFixed

Настраиваемый

Нет

Вычисляемый

Да

Настройки выхода

# Тип данных выхода — тип выходных данных
Наследовать автоматически | Наследовать от накопителя | Наследовать от первого входа | Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Фиксированная точка

Details

Выберите тип для выходных данных.

Значения

Inherit: auto | Same as accumulator | Same as first input | Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Fixed-point

Значение по умолчанию

Inherit: auto

Имя для программного использования

OutDataTypeStr

Настраиваемый

Нет

Вычисляемый

Нет

# Тип выхода в фиксированной точке — тип выходных данных с фиксированной точкой
Тип данных

Details

Укажите тип данных с фиксированной точкой для выходных данных.

Зависимости

Чтобы использовать этот параметр, установите для параметра Тип данных выхода значение Фиксированная точка.

Значение по умолчанию

fixdt(1, 16, 0)

Имя для программного использования

OutDataTypeStrFixed

Настраиваемый

Нет

Вычисляемый

Да

Main

# Метод округления до целого — режим округления для операций с фиксированной точкой
К большему | Конвергентный | К меньшему | К ближайшему | Математическое | К нулю

Details

Выберите режим округления для операций с фиксированной точкой. Вы можете выбрать:

  • К меньшему — округляет как положительные, так и отрицательные числа в меньшую сторону (в сторону отрицательной бесконечности).

  • К большему — округляет как положительные, так и отрицательные числа в большую сторону (в сторону положительной бесконечности).

  • Конвергентный — округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, число округляется до ближайшего четного целого числа.

  • К ближайшему — округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, число округляется в большую сторону (в сторону положительной бесконечности).

  • Математическое — округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, положительные числа округляются в большую сторону (в сторону положительной бесконечности), а отрицательные – в меньшую (в сторону отрицательной бесконечности).

  • К нулю — округляет число в сторону нуля.

Параметры блока всегда округляют до ближайшего представимого значения.

Значения

Ceiling | Convergent | Floor | Nearest | Round | Zero

Значение по умолчанию

Floor

Имя для программного использования

RndMeth

Настраиваемый

Нет

Вычисляемый

Нет

# Ограничить при переполнении целого — метод действия при переполнении
Логический тип

Details

При установке этого флажка насыщение применяется ко всем внутренним операциям блока, а не только к выходу или результату.

Действие Причины для принятия этого решения Что происходит при переполнении Пример

Установите этот флажок.

В вашей модели возможно переполнение, и вам нужна явная защита от насыщения в генерируемом коде.

Переполнения насыщаются до минимального или максимального значения, которое может представлять данный тип данных.

Переполнение, связанное со знаковым 8-битным целым числом, может насытиться до -128 или 127.

Не устанавливайте этот флажок.

Вы хотите оптимизировать эффективность генерируемого кода.
Вы хотите избежать чрезмерного уточнения того, как блок обрабатывает сигналы, выходящие за пределы диапазона.

Переполнения оборачиваются в соответствующее значение, которое может быть представлено типом данных.

Число 130 не помещается в знаковое 8-битное целое число и сворачивается в -126

Значение по умолчанию

false (выключено)

Имя для программного использования

SaturateOnIntegerOverflow

Настраиваемый

Нет

Вычисляемый

Нет

Дополнительные возможности

Генерация Си кода: Да

Примеры