メインコンテンツ

coder.LAPACKCallback クラス

名前空間: coder

生成されたコードでの LAPACK 呼び出しの LAPACK ライブラリおよび LAPACKE ヘッダー ファイルを指定するための抽象クラス

説明

coder.LAPACKCallback は LAPACK コールバック クラスを定義するための抽象クラスです。LAPACK コールバック クラスは、MATLAB® コードから生成されたコードでの LAPACK 呼び出しに使用する LAPACK ライブラリと LAPACKE ヘッダー ファイルを指定します。MATLAB Coder™ を使用してスタンドアロン コードを生成するか、MATLAB Function ブロックのコードを生成する場合、特定の線形代数関数の呼び出しでは、LAPACK 呼び出しを生成できます。LAPACK 呼び出しを生成するには、適切な構成パラメーターを LAPACK コールバック クラスの名前に設定します。

  • MATLAB Codercodegen コマンドを使用したコード生成の場合、CustomLAPACKCallback を設定します。

  • MATLAB Coder アプリを使用したコード生成の場合、[カスタム LAPACK ライブラリのコールバック] を設定します。

  • Simulink® Coder を使用した MATLAB Function ブロックのコード生成の場合、[カスタム LAPACK ライブラリのコールバック] を設定します。

useMyLAPACK という名前の LAPACK コールバック クラスを定義するには、次の行をクラス定義ファイルの最初の行にします。

classdef useMyLAPACK < coder.LAPACKCallback

メソッドにリストされているすべてのメソッドを定義しなければなりません。これらのメソッドは静的で、コンパイルされません。

MathWorks® では、さまざまなプラットフォーム向けの BLAS と LAPACK の一連のコールバック クラスを提供しています。これらのコールバック クラスは、コード生成時に生成されるスタンドアロン コードのパフォーマンスを高めるように設計されています。これらのライブラリは、こちらの GitHub リポジトリからダウンロードできます。

これらのコールバックを使用してコードを生成する方法の詳細については、Speed Up of Standalone Generated Code Using Preconfigured BLAS and LAPACK Callbacksを参照してください。

メソッド

すべて展開する

すべて折りたたむ

以下の例では、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 メソッドは、LAPACK ライブラリへの LAPACKE C インターフェイスのヘッダー ファイルの名前を返します。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 で導入