VF_median | VD_median | VE_median |
VI_median | VBI_median | VSI_median | VLI_median | VQI_median | |
VU_median | VUB_median | VUS_median | VUL_median | VUQ_median | VUI_median |
|
Funktion | Median einer eindimensionalen Verteilung |
|
Syntax C/C++ | #include <VFmath.h>
float VF_median( fVector X, ui size );
double VD_median( dVector X, ui size );
float VBI_median( biVector X, ui size );
float VUB_median( ubVector X, ui size );
float VSI_median( siVector X, ui size );
float VUS_median( usVector X, ui size );
double VI_median( iVector X, ui size );
double VU_median( uVector X, ui size );
extended VQI_median( qiVector X, ui size );
extended VUQ_median( uqVector X, ui size );
Für Windows (long = dword-Ganzzahlen):
double VLI_median( liVector X, ui size );
double VUL_median( ulVector X, ui size );
Für Linux (long = qword-Ganzzahlen):
extended VLI_median( liVector X, ui size );
extended VUL_median( ulVector X, ui size );
|
C++ VecObj | #include <OptiVec.h>
T vector<T>::median(); // floating-point variants
float vector<T>::median(); // byte- and word-sized integer variants
double vector<T>::median(); // dword-sized integer variants
extended vector<T>::median(); // qword-sized integer variants
|
Pascal/Delphi | uses VFmath;
function VF_median( X:fVector; size:UIntSize ): Single;
function VD_median( X:dVector; size:UIntSize ): Double;
function VBI_median( X:biVector; size:UIntSize ): Single;
function VUB_median( X:ubVector; size:UIntSize ): Single;
function VSI_median( X:siVector; size:UIntSize ): Single;
function VUS_median( X:usVector; size:UIntSize ): Single;
function VI_median( X:iVector; size:UIntSize ): Double;
function VU_median( X:uVector; size:UIntSize ): Double;
function VQI_median( X:qiVector; size:UIntSize ): Extended;
function VUQ_median( X:uqVector; size:UIntSize ): Extended;
Für Windows (long = dword-Ganzzahlen):
function VLI_median( X:liVector; size:UIntSize ): Double;
function VUL_median( X:ulVector; size:UIntSize ): Double;
Für Linux (long = qword-Ganzzahlen):
function VLI_median( X:liVector; size:UIntSize ): Extended;
function VUL_median( X:ulVector; size:UIntSize ): Extended;
|
|
CUDA-Funktion C/C++ | #include <cudaVFstd.h>
int cudaVF_median( float *h_RetVal, fVector d_X, ui size );
int cusdVF_median( float *d_RetVal, fVector d_X, ui size );
float VFcu_median( fVector h_X, ui size );
int cudaVBI_median( float *h_RetVal, biVector d_X, ui size );
int cusdVBI_median( float *d_RetVal, biVector d_X, ui size );
float VBIcu_median( biVector h_X, ui size );
(analog VUB_, VSI_, VUS_)
int cudaVI_median( double *h_RetVal, iVector d_X, ui size );
int cusdVI_median( double *d_RetVal, iVector d_X, ui size );
double VIcu_median( iVector h_X, ui size );
(analog VU_, VLI_, VLU_, VQI_, VUQ_)
|
CUDA-Funktion Pascal/Delphi | uses VFstd;
function cudaVF_median( var h_RetVal:Single; d_X:fVector; size:UIntSize ): IntBool;
function cusdVF_median( d_RetVal:PSingle; d_X:fVector; size:UIntSize ): IntBool;
function VFcu_median( h_X:fVector; size:UIntSize ): Single;
function cudaVBI_median( var h_RetVal:Single; d_X:biVector; size:UIntSize ): IntBool;
function cusdVBI_median( d_RetVal:PSingle; d_X:biVector; size:UIntSize ): IntBool;
function VBIcu_median( h_X:biVector; size:UIntSize ): Single;
(analog VUB_, VSI_, VUS_)
function cudaVI_median( var h_RetVal:Double; d_X:iVector; size:UIntSize ): IntBool;
function cusdVI_median( d_RetVal:PDouble; d_X:iVector; size:UIntSize ): IntBool;
function VIcu_median( h_X:iVector; size:UIntSize ): Double;
(analog VU_, VLI_, VLU_, VQI_, VUQ_)
|
|
Beschreibung | Der Median einer Verteilung ist als derjenige Wert definiert, für den gilt, dass Werte oberhalb von ihm mit gleicher Wahrscheinlichkeit vorkommen wie Werte unterhalb von ihm. Wenn die Tabelle X geordnet ist, ist der Median also das Element mit dem Index (size-1)/2 (wenn size ungerade ist) oder der Mittelwert zwischen den beiden Elementen im Zentrum der Tabelle (wenn size gerade ist). Für nicht-geordnete Tabellen findet VF_median den Median durch mehrfaches Durchsuchen der Tabelle, ohne tatsächlich eine Sortierung vorzunehmen. Der Rückgabewert der Ganzzahl-Versionen ist immer eine Fließkomma-Zahl, da der Median in der Mitte zwischen zwei Tabellenwerten liegen und also einen Abstand von 0.5 zu dem nächsten Ganzzahl-Wert besitzen kann. Für die 8-byte-Ganzzahl-Versionen (VQI_median und VUQ_median) führt dies allerdings zu einer wichtigen Einschränkung: Ganzzahlen können durch Fließkommazahlen nur bis zu einer bestimmten Grenze exakt dargestellt werden. Für double liegt diese Grenze bei ±253, für extended bei ±263. Deshalb wird der Rückgabewert von VQI_median und VUQ_median nur dann exakt sein, wenn er innerhalb dieser Bereiche liegt. |
|
|
Rückgabewert | der gefundene Median |
|
|