exponenta event banner

Рекомендации по преобразованию с одной точностью

Использовать целые числа для переменных индекса

В коде MATLAB ®, который требуется преобразовать в единичную точность, рекомендуется использовать целые числа для индексных переменных. Однако, если код не использует целые числа для индексных переменных, по возможностиconvertToSingle пытается обнаружить переменные индекса и выбрать int32 типы для них.

Предельное использование assert Заявления

  • Не использовать assert для определения свойств входных аргументов.

  • Не использовать assert для проверки типа переменной. Например, не использовать

    assert(isa(a, 'double'))

Инициализация свойств класса MATLAB в конструкторе

Не инициализировать свойства класса MATLAB в properties блок. Вместо этого используйте конструктор для инициализации свойств класса.

Предоставить тестовый файл, вызывающий функцию MATLAB

Отделите основной алгоритм от другого кода, используемого для тестирования и проверки результатов. Создайте тестовый файл, вызывающий алгоритм MATLAB двойной точности. Тестовый файл можно использовать для:

  • Автоматически определять свойства входов функций верхнего уровня.

  • Убедитесь, что алгоритм двойной точности работает так, как ожидалось. Поведение двойной точности - это базовая линия, по которой сравнивается поведение версий алгоритма с одной точностью.

  • Сравните поведение версии алгоритма с одной точностью с базовой линией с двойной точностью.

Для достижения наилучших результатов тестовый файл должен использовать алгоритм в полном рабочем диапазоне.

Подготовка кода для создания кода

Код MATLAB, который требуется преобразовать в единую точность, должен соответствовать требованиям к созданию кода. См. раздел Языковые функции MATLAB, поддерживаемые для генерации кода C/C + +.

Чтобы определить неподдерживаемые функции или конструкции в коде MATLAB, добавьте %#codegen pragma в верхней части файла MATLAB. При редактировании кода в редакторе MATLAB анализатор кода MATLAB помечает функции и конструкции, которые не поддерживаются при создании кода. См. раздел Проверка кода с помощью анализатора кода MATLAB. При использовании приложения MATLAB Coder™ приложение просматривает код для обеспечения готовности к созданию кода. В строке функции можно использовать инструмент готовности к созданию кода. См. раздел Проверка кода с помощью инструмента готовности к созданию кода.

Используйте -args Параметр для задания входных свойств

При создании кода MATLAB с одинарной точностью, если указан тестовый файл, нет необходимости указывать свойства аргумента с помощью -args вариант. В этом случае генератор кода запускает тестовый файл для определения свойств входных типов. Однако запуск тестового файла может замедлить формирование кода. Рекомендуется передавать свойства в -args вариант так, чтобы convertToSingle не запускает тестовый файл для определения свойств аргумента. При наличии лицензии MATLAB Coder можно использовать coder.getArgTypes для определения свойств аргумента. Например:

types = coder.getArgTypes('myfun_test', 'myfun');
scfg = coder.config('single');
convertToSingle -config scfg -args types myfun

Тестовые номера и данные ввода/вывода журнала

При использовании функции ConvertToSingle для создания кода MATLAB с одинарной точностью включите числовое тестирование и ведение журнала данных ввода-вывода для графиков сравнения. Для использования числового тестирования необходимо предоставить тестовый файл, вызывающий функцию MATLAB. Чтобы включить числовое тестирование и ведение журнала данных ввода-вывода, создайте coder.SingleConfig объект. Установите TestBenchName, TestNumerics, и LogIOForComparisonPlotting свойства. Например:

scfg = coder.config('single');
scfg.TestBenchName = 'mytest';
scfg.TestNumerics = true;
scfg.LogIOForComparisonPlotting = true;