exponenta event banner

coder.LAPACKCallback класс

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

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

Описание

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

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

  • Для создания кода с помощью приложения MATLAB Coder установите пользовательский обратный вызов библиотеки LAPACK.

  • Для генерации кода для функционального блока MATLAB с кодером Simulink ® установите обратный вызов пользовательской библиотеки LAPACK.

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

classdef useMyLAPACK < coder.LAPACKCallback

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

Методы

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