Wolfram Language

NumericArray in LibraryLink

NumericArray und ByteArray-Objekte in der Wolfram Language können an eine oder von einer LibraryFunction übergeben werden, wo sie als Argumente oder Ergebnisse vom Typ MNumericArray erscheinen. MNumericArray ist der Zeiger einer Datenstruktur und wird durch eine Referenz übergeben. Die Speicherverwaltung für MNumericArray ist der Speicherverwaltung für MTensor sehr ähnlich.

Die Familie der MNumericArray-Callbackfunktionen befindet sich im numericarrayLibraryFunctions-Feld von WolframLibraryData, und ist deklariert in WolframNumericArrayLibrary.h.

Eine typische Anwendung sieht wie folgt aus.

#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); ... } ...

Beispiele in der demo_numericarray-Library veranschaulichen, wie man MNumericArray-Argumente und -Ergebnisse mit NumericArray- und ByteArray-Objekten in der Wolfram Language verwendet.

Dieses Beispiel zeigt, wie man das komplexe Konjugat der in einem NumericArray gespeicherten Elemente berechnet.

Die Funktion readBytesFromFile aus der Demo zeigt, wie man Daten aus einer Datei liest und in einem ByteArray-Objekt speichert.

Verwandte Beispiele

en es fr ja ko pt-br zh