VF_fprintVD_fprintVE_fprint
VCF_fprintVCD_fprintVCE_fprint
VPF_fprintVPD_fprintVPE_fprint
VI_fprintVBI_fprintVSI_fprintVLI_fprintVQI_fprint 
VU_fprintVUB_fprintVUS_fprintVUL_fprintVUQ_fprintVUI_fprint
FunktionAusgabe eines Vektors in einen Stream
Syntax C/C++#include <VFstd.h>
void VF_fprint( FILE *stream, fVector X, ui size, unsigned nperline, unsigned linewidth );
C++ VecObj#include <OptiVec.h>
void vector<T>::fprint( FILE *stream, unsigned nperline, unsigned linewidth );
Pascal/Delphiuses VFstd;
procedure VF_fprint( var Stream:Text; X:fVector; size:UIntSize; nperline, linewidth:UInt );
CUDA-Funktion C/C++#include <cudaVFstd.h>
int cudaVF_fprint( FILE *stream, fVector d_X, ui size, unsigned nperline, unsigned linewidth );
int cudaVF_fprint_buf( FILE *stream, fVector d_X, ui size, unsigned nperline, unsigned linewidth, fVector h_Wk );
CUDA-Funktion Pascal/Delphiuses VFstd;
function cudaVF_fprint( var Stream:Text; d_X:fVector; size:UIntSize; nperline, linewidth:UInt ): IntBool;
function cudaVF_fprint_buf( var Stream:Text; d_X:fVector; size:UIntSize; nperline, linewidth:UInt; h_Wk:fVector ): IntBool;
Beschreibungsize Elemente von X werden im ASCII-Format in stream geschrieben, wobei nperline Einträge in jede Zeile der Breite linewidth aufgenommen werden.

Die Ausgabe beginnt immer mit einer neuen Zeile. Man beachte, dass hierdurch Leerzeilen entstehen können. Insbesondere bleibt die erste Zeile einer Datei für eine eventuelle Überschrift reserviert.

Zu Beginn jeder Zeile steht der Index des ersten in diese Zeile geschriebenen Elementes. Danach folgen ein Doppelpunkt und die verlangten nperline Elemente des Vectors X.
Cartesisch-komplexe Zahlen werden in geschweifte Klammern gefaßt, wobei der Imaginärteil durch ein Komma vom Realteil getrennt wird: {Re, Im}. Polar-komplexe Zahlen werden ebenfalls in geschweifte Klammern gefaßt und der Mag- vom Arg-Teil durch ein at-Zeichen getrennt: {Mag @ Arg}.

Anders als bei VF_write und VF_nwrite gibt es bei dieser Familie von Funktion keine Möglichkeit, das Ausgabeformat selbst zu definieren. Die Anzahl pro Element ausgegebener Stellen richtet sich vielmehr nach dem zur Verfügung stehenden Platz, also nach den Parametern linewidth und nperline.
 

nur CUDA-Versionen:cudaV?_fprint_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?_fprint eingespart, so dass cudaV?_fprint_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_fprint, VCE_fprint und VPE_fprint bei GCC nur mit double-Genauigkeit und innerhalb des für doubles möglichen Größenbereiches arbeiten (also Eingabewerte ggf. auf diesen abgeschnitten werden).
FehlerbehandlungWenn linewidth nicht für die geforderten nperline Einträge pro Zeile ausreicht, wird eine Fehlermeldung "Cannot use requested format (too many entries per line)." ausgegeben und die Ausgabe mit der maximal möglichen Anzahl von Einträgen pro Zeile durchgeführt.
Rückgabewertkeiner
QuerverweisVF_cprint,   VF_print,   VF_write,   VF_store,   fprintf

VectorLib Inhaltsverzeichnis  OptiVec Home