DeclareCompiledComponent

DeclareCompiledComponent["name",decls]

コンパイル済みコンポーネント"name"に宣言 decls を加える.

DeclareCompiledComponent["name",fieldspec]

コンパイル済みコンポーネント"name"の指定されたフィールドに指定 spec を加える.

詳細

  • コンパイル済みコンポーネントを使ってコンパイル済み宣言の名前付きのグループを表すことができる.
  • コンパイル済みコンポーネントを使って共有ライブラリに組み込むコンパイル済み機能を表すことができる.
  • コンパイル済みコンポーネントはパクレットに埋め込むことができる.
  • DeclareCompiledComponent["name",...]は,コンパイル済みコンポーネント"name"がすでに存在していなければこれを作成する.
  • CreateCompilerEnvironmentおよびCompilerEnvironmentAppendToを使ってコンパイル済みコンポーネントからの宣言をコンパイラ環境に加えることができる.
  • コンパイル済みコンポーネントからの宣言はインストールされた関数とライブラリ関数のビルドの際に使われる.
  • インストールされた関数とライブラリ関数を含むライブラリはBuildCompiledComponentでビルドできる.
  • インストールされた関数とライブラリ関数を含むライブラリはLoadCompiledComponentでロードできる.
  • field の次の値を使うことができる.
  • "Declarations"コンポーネントで使う宣言
    "InstalledFunctions"コンパイルする関数と結果をインストールするシンボル
    "LibraryFunctions"コンパイルする関数.LoadCompiledComponentで復元される
    "RawLibraryFunctions"ライブラリエキスポートとして利用可能なコンパイル関数
    "LoadingEpilogs"LoadCompiledComponentがコンポーネントをロードした後で実行される関数
    "ExternalLibraries"LoadCompiledComponentがコンポーネントをロードする前にロードされるライブラリ
  • "Declarations"は単一の宣言としてあるいは宣言のリストとして与えることができる.
  • "InstalledFunctions"は,ビルドされたコンポーネントがロードされた際に func のコンパイル済みバージョンをシンボル sym にインストールするように指定する規則 symfunc として与えることができる."InstalledFunctions"は規則の連想も取る.
  • "InstalledFunctions"はシンボル sym を与えることができる.このシンボルは,事実上,インストールされた関数 symsym を宣言する.sym が(コンポーネントで定義されたものを含む)コンパイル可能な関数の名前ならこれはコンパイルされ,コンパイル済みコードの外で使用できるようにシンボル sym にインストールされる.シンボルのリストを与えることもできる. »
  • "LibraryFunctions"func のコンパイル済みバージョンがLoadCompiledComponentの結果で"name"という名前で使えるように指定する規則"name"func として与えることができる."LibraryFunctions"は規則の連想も取る.
  • "RawLibraryFunctions"の項目は,"name"Typed[funcName,ty]の形の規則として与えられる.これは,ty 型の funcName のコンパイル済みバージョンが,そのコンポーネントのためにビルドされたライブラリによってエキスポートされるように指示する.コンパイルにCompiledComponentRawInterfaceのコンポーネントが使われている場合,それらは funcName を直接参照できる.
  • "LoadingEpilogs"は単一の関数または関数のリストとして与えることができる.
  • "ExternalLibraries"は単一のライブラリ指定としてあるいはライブラリ指定のリストとして与えることができる.ライブラリ指定はFindLibraryで解決されなければならない.
  • "InstalledFunctions"フィールドおよび"LibraryFunctions"フィールドはコンパイルされるソースを含んでいる.BuildCompiledComponentはそのソースをビルドして結果を動的ライブラリに保存する.動的ライブラリはLoadCompiledComponentでロードしてコンパイルの結果を復元できる.
  • "RawLibraryFunctions"の名前は,動的ライブラリの形式によって制限される.

例題

すべて開くすべて閉じる

  (2)

宣言を含むコンパイル済みコンポーネント"demo" を作成する:

結果のコンポーネントを見る:

FunctionCompileの呼出しに"demo" を使う:

コンポーネントをクリアする:

コンパイル済みコンポーネントの宣言を与える:

コンパイル済みコンポーネントオブジェクトはコンポーネントについての情報を返す:

コンパイル済みコンポーネントオブジェクトは以下の特性を持つ:

コンポーネントに追加された宣言を見る:

スコープ  (5)

コンポーネント内の宣言のリストを宣言する:

ライブラリ関数を宣言する:

インストールされた関数を宣言する:

コンポーネントの全特性を抽出する:

コンポーネントの特性:

コンポーネントの宣言:

コンポーネントをクリアする:

DeclareCompiledComponentはライブラリにコンパイルする関数を与えることができる:

ライブラリを構築する:

ライブラリをロードする:

ライブラリからコード関数を呼び出す:

DeclareCompiledComponentはシンボルを定義してインストールされたコードを取得することができる:

関数がコンポーネント内に存在すると宣言する:

名前しか与えられない場合にコンパイラ内の定義を検索してインストールされた関数を追加する:

コンポーネントライブラリを構築する:

コンポーネントライブラリを,ライブラリ内のインストールされた関数を呼び出すことで自動的にロードする:

DeclareCompiledComponentは,インストールされたコードを取得するためのシンボルが定義できる:

コンポーネント内に存在する関数を宣言する:

名前だけを指定してインストールされた関数を追加し,コンパイラで定義を検索する:

コンポーネントライブラリを構築する:

コンポーネントライブラリのインストールされた関数を呼び出すことで,これを自動的にロードする:

DeclareCompiledComponentは,他のコンパイル済みコードで使用するための生のライブラリインターフェースを作成することができる:

コンポーネントライブラリを構築する:

コンポーネントライブラリをロードして初期化する:

ライブラリの関数の宣言:

このライブラリを使う関数をコンパイルする:

このライブラリを呼び出す計算を行う:

LibraryFunctionDeclarationを使う代わりに,コンポーネントの生のインターフェースを直接使うこともできる:

コンポーネントからの宣言はライブラリを再度コンパイルすることなしに使えるので便利である.

"RawLibraryFunctions"で構築されたコンポーネントライブラリはForeignFunctionLoadで使うことができる:

Wolfram Research (2022), DeclareCompiledComponent, Wolfram言語関数, https://reference.wolfram.com/language/ref/DeclareCompiledComponent.html.

テキスト

Wolfram Research (2022), DeclareCompiledComponent, Wolfram言語関数, https://reference.wolfram.com/language/ref/DeclareCompiledComponent.html.

CMS

Wolfram Language. 2022. "DeclareCompiledComponent." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/DeclareCompiledComponent.html.

APA

Wolfram Language. (2022). DeclareCompiledComponent. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/DeclareCompiledComponent.html

BibTeX

@misc{reference.wolfram_2024_declarecompiledcomponent, author="Wolfram Research", title="{DeclareCompiledComponent}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/DeclareCompiledComponent.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_declarecompiledcomponent, organization={Wolfram Research}, title={DeclareCompiledComponent}, year={2022}, url={https://reference.wolfram.com/language/ref/DeclareCompiledComponent.html}, note=[Accessed: 22-November-2024 ]}