Wolfram言語

LibraryLinkにおけるNumericArray

Wolfram言語のNumericArrayオブジェクトおよびByteArrayオブジェクトは,LibraryFunctionとの間でやり取りすることができる.その際これらの関数は,引数としてまたはMNumericArrary型の結果として現れる.MNumericArrayはデータ構造に対するポインタで,参照によって渡される.MNumericArrayのメモリ管理はMTensorのメモリ管理に非常によく似ている.

MNumericArrayコールバック関数族はWolframLibraryDataのnumericarrayLibraryFunctionsフィールドにあり,WolframNumericArrayLibrary.hで宣言されている.

典型的な使い方は次のようになる.

#include "WolframNumericArrayLibrary.h" .... MNumericArray na_in = NULL, na_out = NULL; errcode_t err = 0; numericarray_data_t type = MNumericArray_Type_Undef; WolframNumericArrayLibrary_Functions naFuns = libData->numericarrayLibraryFunctions; ... na_in = MArgument_getMNumericArray(Args[0]); type = naFuns->MNumericArray_getType(na_in); if(type != MNumericArray_Type_Real32) { err = naFuns->MNumericArray_convertType(&na_out, na_in, MNumericArray_Type_Real32, MNumericArray_Convert_Coerce, 1); ... } ...

demo_numericarrayライブラリにある例は,Wolfram言語のNumericArrayオブジェクトおよびByteArrayオブジェクトと一緒にMNumericArray引数と結果を使用する方法を示している.

この例では,NumericArrayに保存されている要素の複素共役の計算の仕方を示している.

デモにある関数readBytesFromFileは,ファイルからのデータの読み方とByteArrayオブジェクトへのデータの保存の仕方を示している.

関連する例

de en es fr ko pt-br zh