coder.LAPACKCallback class

Пакет: coder
Суперклассы:

Абстрактный класс для определения библиотеки LAPACK и файла заголовка LAPACKE для вызовов LAPACK в сгенерированном коде

Описание

coder.LAPACKCallback - абстрактный класс для определения класса коллбэка LAPACK. Класс коллбэка LAPACK задает библиотеку LAPACK и файл заголовка LAPACKE, которые будут использоваться для вызовов LAPACK в коде, сгенерированном из MATLAB® код. Если вы используете MATLAB Coder™, чтобы сгенерировать автономный код или сгенерировать код для блока MATLAB Function, для определенных вызовов линейной алгебры можно сгенерировать вызовы LAPACK. Для генерации вызовов LAPACK установите соответствующий параметр конфигурации на имя класса коллбэка LAPACK.

  • Для генерации кода с MATLAB Coder codegen команда, задать CustomLAPACKCallback.

  • Для генерации кода с помощью приложения MATLAB Coder установите Custom LAPACK library callback.

  • Для генерации кода для блока MATLAB Function с Simulink® Кодер, установите Custom LAPACK library callback.

Для определения класса коллбэка LAPACK с именем useMyLAPACK, сделайте следующую линию первой линией файла определения класса.

classdef useMyLAPACK < coder.LAPACKCallback

Необходимо определить все методы, перечисленные в Methods. Эти методы являются статическими и не компилируются.

Методы

getHeaderFilenameВозвращает имя файла заголовка LAPACKE
updateBuildInfoОбновите сведения о сборке для ссылки на определенную библиотеку LAPACK

Примеры

свернуть все

В этом примере показано, как записать класс коллбэка LAPACK.

Используйте этот пример класса коллбэка LAPACK в качестве шаблона.

classdef useMyLAPACK < coder.LAPACKCallback
    methods (Static)
        function hn = getHeaderFilename()
            hn = 'mylapacke_custom.h';
        end
        function updateBuildInfo(buildInfo, buildctx)
            buildInfo.addIncludePaths(fullfile(pwd,'include'));
            libName = 'mylapack';
            libPath = fullfile(pwd,'lib');
            [~,linkLibExt] = buildctx.getStdLibInfo();
            buildInfo.addLinkObjects([libName linkLibExt], libPath, ...
                '', true, true);
            buildInfo.addDefines('HAVE_LAPACK_CONFIG_H');
            buildInfo.addDefines('LAPACK_COMPLEX_STRUCTURE');
            buildInfo.addDefines('LAPACK_ILP64'); 
        end
    end
end

Замените useMyLAPACK с именем вашего класса коллбэка.

getHeaderFilename метод возвращает имя файла заголовка для интерфейса LAPACKE C в библиотеку LAPACK. Замените mylapacke_custom.h с именем файла заголовка LAPACKE.

updateBuildInfo метод обновляет информацию о сборке с указанием местоположения заголовочных файлов, а также имени и местоположения библиотеки LAPACK. Замените mylapack с именем библиотеки LAPACK.

Если ваш компилятор поддерживает только комплексные данные типов, которые представлены в виде структур, включите эти линии в updateBuildInfo способ.

buildInfo.addDefines('HAVE_LAPACK_CONFIG_H');
buildInfo.addDefines('LAPACK_COMPLEX_STRUCTURE');

Необходимо указать целые типы, которые использует библиотека LAPACK. Отсутствие указания этого целого типа может привести к неправильному поведению или сбоям. Выполните одно из следующих действий:

  • Включите эти линии в updateBuildInfo способ.

    buildInfo.addDefines('HAVE_LAPACK_CONFIG_H');
    buildInfo.addDefines('LAPACK_ILP64');

  • Кроме того, можно непосредственно задать целый тип, который использует библиотека LAPACK. Для примера, если целый тип long long, включите эту линию в updateBuildInfo способ.

    buildInfo.addDefines('lapack_int=long long');

Введенный в R2016a