VF_absHugeVD_absHugeVE_absHuge
FunktionErsatz von negativen Polstellen (−HUGE_VAL) durch positive (+HUGE_VAL)
Syntax C/C++#include <VFmath.h>
void VF_absHuge( fVector Y, fVector X, ui size );
C++ VecObj#include <OptiVec.h>
void vector<T>::absHuge( const vector<T>& X );
Pascal/Delphiuses VFmath;
procedure VF_absHuge( Y, X:fVector; size:UIntSize );
CUDA-FunKtion C/C++#include <cudaVFmath.h>
int cudaVF_absHuge( fVector d_Y, fVector d_X, ui size );
void VFcu_absHuge( fVector h_Y, fVector h_X, ui size );
CUDA-Funktion Pascal/Delphiuses VFmath;
function cudaVF_absHuge( d_Y, d_X:fVector; size:UIntSize ): IntBool;
procedure VFcu_absHuge( h_Y, h_X:fVector; size:UIntSize );
BeschreibungYi = Xi , wenn Xi > −HUGE
Yi = Max, wenn Xi ≤ −HUGE_VAL
(wobei HUGE je nach Datentyp FLT_MAX, DBL_MAX oder LDBL_MAX bedeutet)
Etliche mathematische Funktionen wie z.B. Kehrwert, Tangens o.a. weisen divergierende Polstellen auf (z.B., 1/+0 = +INF, aber 1/−0 = −INF, wobei INF, um Folgefehler zu vermeiden, meist, aber nicht immer, als HUGE_VAL dargestellt wird). In solchen Fällen wird der kleinste Rundungsfehler darüber entscheiden, ob das Ergebnis +INF oder −INF wird. Gelegentlich wird man um der Konsistenz der Ergebnisse willen 1/−0 und 1/+0 identisch behandeln, also den negativen Pol durch einen positiven ersetzen wollen. Dies ist die Aufgabe von VF_absHuge. Man beachte, dass sowohl −HUGE_VAL als auch −INF zu +HUGE_VAL geändert werden, während +INF unverändert bleibt.
Fehlerbehandlungkeine
Rückgabewertkeiner
QuerverweisVF_replaceNAN,   VF_maxC,   VF_minC,   VF_min,   VF_flush0,   VF_limit

VectorLib Inhaltsverzeichnis  OptiVec Home