API для написанных пользователем S-функций с фиксированной точкой предоставляет функции для некоторых математических операций, таких как преобразования. При выполнении этих операций может произойти потеря точности или переполнение. Маркеры в следующих таблицах позволяют управлять тем, как функция API обрабатывает потерю точности и переполнение. Тип данных методов обработки переполнения: fxpModeOverflow. Тип данных режимов округления: fxpModeRounding.
Маркеры обработки переполнения
Символ | Описание |
|---|---|
| Насыщение перетоков |
| Переполнение обертки |
Маркеры метода округления
Символ | Описание |
|---|---|
| Округление до ближайшего представимого числа в направлении положительной бесконечности |
| Округление к ближайшему целому числу с округлением связей до ближайшего чётного целого числа |
| Округление до ближайшего представимого числа в направлении отрицательной бесконечности |
| Округлить до ближайшего представимого числа, при этом точная середина округляется в направлении положительной бесконечности |
| Круглая ближе всего. Связи вокруг к отрицательной бесконечности для отрицательных чисел и к положительной бесконечности для положительных чисел |
| Автоматический выбор между скруглением по направлению к полу и скруглением по направлению к нулю для создания сгенерированного кода, который является максимально эффективным |
| Скругление до ближайшего представимого числа в направлении нуля |
Математические функции API, такие как ssFxpConvert, может столкнуться с переполнением при выполнении операции. Эти функции обеспечивают механизм регистрации возникновения переполнений и сообщения о них вызывающему абоненту.
В S-функции можно использовать структуру регистрации переполнения с фиксированной точкой путем определения переменной типа данных. fxpOverflowLogs. Некоторые функции API, такие как ssFxpConvert, принять указатель на эту структуру в качестве аргумента. Функция инициализирует структуру регистрации и поддерживает подсчет каждого из следующих событий, которые происходят во время выполнения функции:
Переполнение
Насыщенность
Делить на нули
При вызове функции, которая принимает указатель на структуру регистрации, функция инициализирует счетчики событий структуры до нуля. Затем выполняются запрошенные математические операции. Каждый раз при обнаружении события соответствующее число событий увеличивается на единицу.
Следующие поля содержат информацию о количестве событий в структуре:
OverflowOccurred
SaturationOccurred
DivisionByZeroOccurred