Неправильное поведение стандартных математических функций библиотеки

Проблема

В ваших результатах верификации стандартная математическая функция библиотеки не ведет себя как ожидалось.

Например, оператор assert(isinf(x)) не ограничивает значение x к положительной или отрицательной бесконечности в последующих операторах.

Причина

Если Polyspace® не может найти определения математической функции, верификация использует реализации Polyspace стандартных математических функций библиотеки.

В некоторых случаях, реализация Polyspace функциональной силы не совпадают с функциональной спецификацией. Обратите внимание на то, что в таких случаях, реализация Polyspace сверхаппроксимирует функциональное поведение. Например, после оператора assert(isinf(x)), область значений значений x включает положительную и отрицательную бесконечность. Поэтому такое поведение не приводит к зеленым проверкам на операции, которые могут вызвать ошибки времени выполнения.

Решение

Явным образом обеспечьте путь к нативным заголовочным файлам своего компилятора так, чтобы верификация использовала реализации вашего компилятора функций. Например, некоторые компиляторы реализуют функции, такие как isinf как макросы в их заголовочных файлах.

Если вы используете кросс-компилятор и создаете проект Polyspace из вашей системы сборки, проект использует заголовочные файлы, обеспеченные вашим компилятором.