exponenta event banner

Методы обработки переполнения и округления

Маркеры для обработки переполнения и методов округления

API для написанных пользователем S-функций с фиксированной точкой предоставляет функции для некоторых математических операций, таких как преобразования. При выполнении этих операций может произойти потеря точности или переполнение. Маркеры в следующих таблицах позволяют управлять тем, как функция API обрабатывает потерю точности и переполнение. Тип данных методов обработки переполнения: fxpModeOverflow. Тип данных режимов округления: fxpModeRounding.

Маркеры обработки переполнения

Символ

Описание

FXP_OVERFLOW_SATURATE

Насыщение перетоков

FXP_OVERFLOW_WRAP

Переполнение обертки

Маркеры метода округления

Символ

Описание

FXP_ROUND_CEIL

Округление до ближайшего представимого числа в направлении положительной бесконечности

FXP_ROUND_CONVERGENT

Округление к ближайшему целому числу с округлением связей до ближайшего чётного целого числа

FXP_ROUND_FLOOR

Округление до ближайшего представимого числа в направлении отрицательной бесконечности

FXP_ROUND_NEAR

Округлить до ближайшего представимого числа, при этом точная середина округляется в направлении положительной бесконечности

FXP_ROUND_NEAR_ML

Круглая ближе всего. Связи вокруг к отрицательной бесконечности для отрицательных чисел и к положительной бесконечности для положительных чисел

FXP_ROUND_SIMPLEST

Автоматический выбор между скруглением по направлению к полу и скруглением по направлению к нулю для создания сгенерированного кода, который является максимально эффективным

FXP_ROUND_ZERO

Скругление до ближайшего представимого числа в направлении нуля

Структура регистрации переполнения

Математические функции API, такие как ssFxpConvert, может столкнуться с переполнением при выполнении операции. Эти функции обеспечивают механизм регистрации возникновения переполнений и сообщения о них вызывающему абоненту.

В S-функции можно использовать структуру регистрации переполнения с фиксированной точкой путем определения переменной типа данных. fxpOverflowLogs. Некоторые функции API, такие как ssFxpConvert, принять указатель на эту структуру в качестве аргумента. Функция инициализирует структуру регистрации и поддерживает подсчет каждого из следующих событий, которые происходят во время выполнения функции:

  • Переполнение

  • Насыщенность

  • Делить на нули

При вызове функции, которая принимает указатель на структуру регистрации, функция инициализирует счетчики событий структуры до нуля. Затем выполняются запрошенные математические операции. Каждый раз при обнаружении события соответствующее число событий увеличивается на единицу.

Следующие поля содержат информацию о количестве событий в структуре:

  • OverflowOccurred

  • SaturationOccurred

  • DivisionByZeroOccurred