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