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