exponenta event banner

Отключить поддержку переполнения целых чисел или нефинитов

Генератор кода создает поддерживающий код для следующих ситуаций:

  • Результат целочисленной операции выходит за пределы диапазона, который может представлять тип данных, называемый переполнением целого числа.

  • Операция генерирует нефинитные значения (inf и NaN).

Если известно, что таких ситуаций не происходит, для уменьшения размера создаваемого кода и увеличения его скорости можно подавить генерацию поддерживающего кода. Однако при подавлении генерации поддерживающего кода и возникновении одной из этих ситуаций поведение созданного кода может не соответствовать поведению исходного кода MATLAB ®.

Отключить поддержку переполнения целых чисел

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

  • В объекте конфигурации генерации кода для MEX или автономного кода (статическая библиотека, динамически связанная библиотека или исполняемая программа) установите SaturateOnIntegerOverflow свойство для false.

  • В приложении MATLAB Coder™ установите для параметра Saturate on integer overflow значение No.

Примечание

Не отключайте поддержку переполнения целых чисел, если не известно, что код не зависит от него. Если отключена поддержка и включена проверка времени выполнения, генерируемый код приводит к ошибке при переполнении целых чисел. При отключении поддержки переполнения целых чисел, а также при отключении проверки выполнения поведение переполнения целых чисел не определено. Большинство компиляторов C переносятся при переполнении.

Чтобы проверить, зависит ли ваш код от поддержки переполнения целых чисел:

  1. Отключить поддержку переполнения целых чисел.

  2. Включить проверки для обнаружения переполнения целых чисел во время выполнения.

  3. Выполните сгенерированный код по всему диапазону входных значений. Если созданный код обнаруживает переполнение целого числа, это приводит к ошибке.

Отключить поддержку неокончательных чисел

По умолчанию для автономного кода (статическая библиотека, динамически связанная библиотека или исполняемая программа) генератор кода создает код для обработки нефинитных чисел (inf и NaN). Если вы знаете, что ваш код не зависит от поддержки нештатных номеров, для повышения производительности созданного кода можно отключить поддержку. Чтобы отключить поддержку, отличную от конечной, выполните следующие действия.

  • В объекте конфигурации создания кода установите значение SupportNonFinite свойство для false.

  • В приложении MATLAB Coder установите для параметра Поддержка нефинитных номеров значение No.

Если отключить поддержку, отличную от конечного, проверьте, что созданный код работает так, как ожидалось.

Связанные темы