LIBRARYLINK チュートリアル

リファレンス

Wolfram LibraryLink を使うと,ダイナミックライブラリをWolfram言語カーネルに直接ロードして,ライブラリの関数を即座にWolfram言語内部から呼び出せるようにすることができる.整数,実数,パックアレー,文字列等のCのようなデータ型だけでなく,任意のWolfram言語式も交換することができる.また,エラーを送ったり,Wolfram言語にコールバックしたりするような便利な関数もある.

このセクションでは,機能をまとめる.

Wolfram言語関数

このセクションでは,Wolfram言語からWolfram Librariesとインタラクトするための関数をまとめる.

LibraryFunctionLoadライブラリの関数をロードする
LibraryFunctionライブラリからロードされた関数へのハンドルの表現
LibraryFunctionUnload以前ライブラリからロードされた関数をアンロードする
LibraryUnload以前ライブラリからロードされた関数をすべてアンロードする

Wolfram Librariesの関数をロード,アンロードするためのWolfram言語関数

LibraryFunctionInformationLibraryFunctionについての情報を返す

Wolfram Libraryからロードされた関数についての情報を得るためのWolfram言語関数

$LibraryPathライブラリの検索に使用されるパス
FindLibraryライブラリパス上のライブラリを検索する

Wolfram Librariesを探すためのWolfram言語関数

LibraryLoadライブラリをロードするが関数は呼び出さない

依存関係を解決するためのライブラリをロードするためのWolfram言語関数

CreateManagedLibraryExpressionライブラリデータと関連付けることのできる式を作成する
ManagedLibraryExpressionQ式が管理されたライブラリ式であるかどうかをテストする
ManagedLibraryExpressionID管理されたライブラリ式に関連付けられた正の整数のIDを与える

管理されたライブラリ式のためのWolfram言語関数

$LibraryErrorロードするライブラリからのシステム依存エラー
LibraryVersionInformationライブラリのバージョンについての情報を含む規則
LibraryVersionStringライブラリのバージョン情報の文字列

LibraryLink`パッケージの中のWolfram言語関数

ライブラリコールバック関数

このセクションでは,ライブラリの実装に使われるC言語コールバック関数をまとめる.

MTensor_new新しいMTensorを作成する
MTensor_freeMTensorを解放する
MTensor_disown共有されたMTensorを解放できるようにする
MTensor_disownAll共有されたすべてのMTensorを解放できるようにする
MTensor_cloneMTensorをコピーする

MTensorを作成,解放するコールバック関数

MTensor_getRankMTensorの階数を取得する
MTensor_getDimensionsMTensorの次元を取得する
MTensor_getFlattenedLengthMTensorの要素数を取得する
MTensor_getTypeMTensorの型を取得する

MTensorの構造の情報を取得するためのコールバック関数

MTensor_getInteger整数のMTensorから要素を取得する
MTensor_getReal実数のMTensorから要素を取得する
MTensor_getComplex複素数のMTensorから要素を取得する
MTensor_getMTensorMTensorから部分MTensorを取得する
MTensor_getIntegerData整数のMTensorからデータを取得する
MTensor_getRealData実数のMTensorからデータを取得する
MTensor_getComplexData複素数のMTensorからデータを取得する

MTensorから要素を取得するためのコールバック関数

MTensor_setInteger整数のMTensorの要素を設定する
MTensor_setReal実数のMTensorの要素を設定する
MTensor_setComplex複素数のMTensorの要素を設定する
MTensor_setMTensorMTensorの部分MTensorを設定する

MTensorの要素を設定するためのコールバック関数

MessageWolfram言語内でメッセージを送る
AbortQ放棄の処理中かどうかを確認する

ライブラリ関数のエラーを処理するためのコールバック関数

UTF8String_disown文字列引数が使われなくなったら呼ばれる

文字列を扱うためのコールバック関数

getMathLinkエラー処理バッファを設定する
processMathLinkWolfram言語内でメッセージを送る

ライブラリ関数で MathLink を使うためのコールバック関数

registerLibraryExpressionManagerライブラリ式マネージャを登録する
unregisterLibraryExpressionManagerライブラリ式マネージャの登録を解除する
releaseManagedLibraryExpression管理されたライブラリ式を解放する

管理されたライブラリ式のためのコールバック関数

registerLibraryCallbackManagerライブラリコールバックマネージャを登録する
unregisterLibraryCallbackManagerライブラリコールバックマネージャの登録を解除する
callLibraryCallbackFunction接続されたライブラリコールバック関数を呼ぶ
releaseLibraryCallbackFunctionライブラリコールバック関数を解放する

ライブラリコールバック関数のためのコールバック関数

MSparseArray_fromExplicitPositions指定された位置と値から新規のMSparseArrayを作成する
MSparseArray_fromMTensorMTensorから新規のMSparseArrayを作成する
MSparseArray_cloneMSparseArrayをコピーする
MSparseArray_freeMSparseArrayを解放する
MSparseArray_disown共有されたMSparseArrayを解放することを許可する
MSparseArray_disownAll共有されたすべてのMSparseArraysを解放することを許可する

MSparseArrayを作成したり解放したりするためのコールバック関数

MSparseArray_getRankMSparseArrayの階数を取得する
MSparseArray_getDimensionsMSparseArrayの次元を取得する
MSparseArray_getExplicitPositionsMSparseArrayから,明示的な値を持った位置を取得する
MSparseArray_getColumnIndicesMSparseArrayから列の指標を取得する
MSparseArray_getRowPointersMSparseArrayから行のポインタ配列を取得する

MSparseArrayから構造情報を取得するためのコールバック関数

MSparseArray_getExplicitValuesMSparseArrayから,明示的に指定された位置に対応する値を取得する
MSparseArray_getImplicitValueMSparseArrayから,明示的に指定されていない位置に使われた値を取得する

MSparseArrayから値を得るためのコールバック関数

MSparseArray_toMTensorMSparseArrayから通常のMTensorに変換する
MSparseArray_resetImplicitValue暗示的な値をリセットし,どの位置がMSparseArrayに明示的に保存されているかを再計算する

MSparseArraysを変換するためのコールバック関数

  • Wolfram LibraryLink
  • システムインターフェースと配備
  • 外部プログラムの呼出し
  • 外部操作
  • C/C++言語インターフェース
  • Wolfram LibraryLink ユーザガイド
  • はじめに
  • Libraryの構成
  • Wolfram言語とのインタラクション