VCF_write | VCD_write | VCE_write |
VPF_write | VPD_write | VPE_write |
VI_write | VBI_write | VSI_write | VLI_write | VQI_write | |
VU_write | VUB_write | VUS_write | VUL_write | VUQ_write | VUI_write |
|
Funktion | Vektor im ASCII-Format in einen Stream schreiben |
|
Syntax C/C++ | #include <VFstd.h>
void VF_write( FILE *stream, fVector X, ui size ); |
C++ VecObj | #include <OptiVec.h>
void vector<T>::write( FILE *stream ); |
Pascal/Delphi | uses VFstd;
procedure VF_write( var Stream:Text; X:fVector; size:UIntSize ); |
|
CUDA-Funktion C/C++ | #include <cudaVFstd.h>
int cudaVF_write( FILE *stream, fVector d_X, ui size );
int cudaVF_write_buf( FILE *stream, fVector d_X, ui size, fVector h_Wk );
|
CUDA-Funktion Pascal/Delphi | uses VFstd;
function cudaVF_write( var Stream:Text; d_X:fVector; size:UIntSize ): IntBool;
function cudaVF_write_buf( var Stream:Text; d_X:fVector; size:UIntSize; h_Wk:fVector ): IntBool;
|
|
Beschreibung | size Elemente von X werden im ASCII-Format in stream geschrieben. Standardmäßig wird ein Element pro Zeile ausgegeben. Um diese Funktion benutzen zu können, muss stream bereits für Schreib-Operationen im Textformat geöffnet sein.
Ausgabeformat und Trennzeichen lassen sich über die Funktionen VF_setWriteFormat (nur C/C++) bzw. VF_setWriteSeparate verändern.
Daten im ASCII-Format zu speichern ist nützlich, wenn sie für das menschliche Auge lesbar gemacht oder in andere Programme exportiert werden sollen, die zum direkten Datenaustausch oder zum Einlesen im Maschinenformat nicht in der Lage sind. Wenn man es vermeiden kann, sollte man diese Funktion nicht zum Zwischenspeichern von Resultaten verwenden, die später noch einmal eingelesen werden sollen. Für diesen Zweck sind die Funktionen-Paare der VF_store / VF_recall-Familie besser geeignet, da sie weniger Speicherplatz verbrauchen, schneller und nicht mit Rundungsfehlern behaftet sind. |
nur CUDA-Versionen: | cudaV?_write_buf übernimmt einen Host-Vektor h_Wk als zusätzliches Argument. Dieser dient als Pufferspeicher und muss (mindestens) dieselbe Größe haben wie X. Hierdurch wird die interne Bereitstellung von Pufferspeicher bei cudaV?_write eingespart, so dass cudaV?_write_buf etwas schneller ist.
|
GCC-Windows-spezifisch: | Zwar unterstützt GCC auch in der Windows-Portierung den 80-bit-Fließkomma-Typ long double. Die I/O-Routinen verwenden aber die Laufzeitbibliothek von Visual C++, wo 80-bit-long doubles schon seit langem nicht mehr vorkommen. Dies bedeutet, dass VE_write, VCE_write und VPE_write bei GCC nur mit double-Genauigkeit und innerhalb des für doubles möglichen Größenbereiches arbeiten (also ggf. auf diesen abgeschnitten werden). |
|
|
|
|