coder.LAPACKCallback class

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

Абстрактный класс для определения библиотеки 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® Coder, набор Custom LAPACK library callback.

Задавать класс коллбэка 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 метод возвращает имя заголовочного файла для интерфейса C LAPACKE в библиотеку 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