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