file.tm
file.tm
WSTPのテンプレートファイルである.
詳細
- WSTPテンプレートファイルには,外部C関数をWolfram言語関数にリンクするためのテンプレートが含まれている.
- 個々のテンプレートには以下のものを含むことができる:
-
:Begin: 特定の関数のためのテンプレートを始める :Function: 外部プログラムでの関数名 :Pattern: 関数を呼び出すために定義されなければならないパターン :Arguments: 関数の引数 :ArgumentTypes: 関数の引数の形式 :ReturnType: 関数から返される値の形式 :End: テンプレートを終了する :Evaluate: 関数がインストールされた場合に評価するためのWolfram言語入力 ::text コメントとして扱う - 任意のCコードは,.tm ファイルの中のテンプレート間に散在されることが可能である.
- 下記の引数と戻り値のタイプ指定を使用することが可能である:
-
Integer16 short Integer32 int Integer64 mlint64 Real32 float Real64 double Real128 mlextended_double Integer16List short*,int(長さ) Integer32List int*,int(長さ) Integer64List mlint64*,int(長さ) Real32List float*,int(長さ) Real64List double*,int(長さ) Real128List mlextended_double*,int(長さ) String char* ByteString unsigned char*とint(長さ) UCS2String unsigned short* UTF8String unsigned char*,int(バイト),int(文字) UTF16String unsigned short*,int(長さ),int(文字) UTF32String unsigned int*とint(長さ) Symbol char* ByteSymbol unsigned char*,int(長さ) UCS2Symbol unsigned short*,int(長さ) UTF8Symbol unsigned char*,int(バイト),int(文字) UTF16Symbol unsigned short*,int(長さ),int(文字) UTF32Symbol unsigned int*,int(長さ) ThisLink WSLINK $CurrentLink WSLINK Manual void - UCS2String,UCS2Symbol,UTF8String,UTF8Symbol,UTF16String,UTF16Symbol,UTF32String,UTF32Symbolを戻り値のタイプとして使うためには,プログラマはUnicodeの文字列の代りに返されるようにWSUnicodeContainerオブジェクトを割り当てなければならない.
- WSUnicodeContainerオブジェクトとは,テンプレートファイル内の関数間でUnicodeの文字列を簡単に渡すことができるように,Unicodeの文字列のコピーとその長さを含むラッパーである.
- wsprepは,戻り値のタイプがリストされているUnicodeの文字列あるいは記号のタイプの1つである場合にのみ,戻り値のタイプとしてWSUnicodeContainerを含む関数のシグネチャを生成する.wsprepは,引数の1つがUnicodeの文字列あるいは記号のタイプである場合に,引数としてWSUnicodeContainerオブジェクトを関数に渡すコードは生成しない.
- WSTPテンプレートファイルはwsprepを使ってCコードに変換される.またこれらのファイルは,wsccが使える場合には自動的に処理される.