MF_store MD_store ME_store
MCF_store MCD_store MCE_store
MI_storeMBI_storeMSI_storeMLI_storeMQI_store
MU_storeMUB_storeMUS_storeMUL_storeMUQ_store
FunktionMatrix im Binärformat in einem Stream speichern
Syntax C/C++#include <MFstd.h>
int MF_store( FILE *stream, fMatrix MA, ui ht, ui len );
C++ MatObj#include <OptiVec.h>
int matrix<T>::store( FILE *stream );
Pascal/Delphiuses MFstd;
function MF_store( var Stream:FILE; MA:fMatrix; ht, len:UIntSize ): Integer;
CUDA-Funktion C/C++#include <cudaMFstd.h>
int cudaMF_store( FILE *stream, fMatrix d_MA, ui ht, ui len );
int cudaMF_store_buf( FILE *stream, fMatrix d_MA, ui ht, ui len, fVector h_Wk );
CUDA-Funktion Pascal/Delphiuses MFstd;
function cudaMF_store( var Stream:File; d_MA:fMatrix; ht, len:UIntSize ): IntBool;
function cudaMF_store_buf( var Stream:File; d_MA:fMatrix; ht, len:UIntSize; h_Wk:fVector ): IntBool;
BeschreibungDie Matrix A mit ht*len Elementen wird im Binärformat in stream gespeichert. stream muss bereits für binäre Schreib-Operationen geöffnet sein.

nur CUDA-Versionen: cudaM?_store_buf übernimmt einen Host-Vektor h_Wk als zusätzliches Argument. Dieser dient als Pufferspeicher und muss (mindestens) dieselbe Größe (ht*len) haben wie d_MA. Hierdurch wird die interne Bereitstellung von Pufferspeicher bei cudaM?_store eingespart, so dass cudaM?_store_buf etwas schneller ist.

Nur GCC und CLang: GCC und CLang (einschließlich BCC32C) erweitern den 10-byte Datentyp long double zu 12 oder 16 bytes im Speicher (12 byte in 32-bit, 16 byte in 64 bit). Um für Kompatibilität zwischen den mit den verschiedenen Compilern erzeugten Dateien zu sorgen, schreiben und lesen die Funktionspaare ME_store / ME_recall und MCE_store / MCE_recall stets im 10-byte-Format.

Thread-SicherheitVerschiedene Threads können gefahrlos mehrere Funktionen der VF_ / MF_store- und VF_ / MF_recall-Familien gleichzeitig aufrufen, solange sie auf verschiedene Streams zugreifen. Falls sie allerdings auf ein- und denselben Stream zugreifen, müssen unbedingt durch geeignete Maßnahmen (Critical Sections, Mutexes) Race-Conditions verhindert werden.
Fehlerbehandlungwird durch die C-Funktion fwrite bzw. die Delphi-Funktion BlockWrite durchgeführt, auf der MF_store etc. basieren
Rückgabewert0, wenn fehlerfrei; ansonsten 1. Um mehr Information im Falle eines Fehlers zu erhalten, inspiziere man errno (C/C++) oder IOResult (Delphi).
QuerverweisMF_recall,  Kap. 14

MatrixLib Inhaltsverzeichnis  OptiVec Home