VF_powexpVD_powexpVE_powexp
VFx_powexpVDx_powexpVEx_powexp
Funktionreelle Potenz, multipliziert mit Exponentialfunktion
Syntax C/C++#include <VFmath.h>
int VF_powexp( fVector Y, fVector X, ui size, float Expo );
int VFx_powexp( fVector Y, fVector X, ui size, float Expo, float A, float B, float C );
C++ VecObj#include <OptiVec.h>
int vector<T>::powexp( const vector<T>& X, const T& Expo );
int vector<T>::x_powexp( const vector<T>& X, const T& Expo, const T& A, const T& B, const T& C );
Pascal/Delphiuses VFmath;
function VF_powexp( Y, X:fVector; size:UIntSize; Expo:Single ): IntBool;
function VFx_powexp( Y, X:fVector; size:UIntSize; Expo, A, B, C:Single ): IntBool;
CUDA-Funktion C/C++#include <cudaVFmath.h>
int cudaVF_powexp( fVector d_Y, fVector d_X, ui size, float Expo );
int cudaVFx_powexp( fVector d_Y, fVector d_X, ui size, float Expo, float A, float B, float C );
int cusdVFx_powexp( fVector d_Y, fVector d_X, ui size, float Expo, float *_dA, float *d_B, float *d_C );
int VFcu_powexp( fVector h_Y, fVector h_X, ui size, float Expo );
int VFxcu_powexp( fVector h_Y, fVector h_X, ui size, float Expo, float A, float B, float C );
CUDA-Funktion Pascal/Delphiuses VFmath;
function cudaVF_powexp( d_Y, d_X:fVector; size:UIntSize; Expo:Single ): IntBool;
function cudaVFx_powexp( d_Y, d_X:fVector; size:UIntSize; Expo:Single; A, B, C:Single ): IntBool;
function cusdVFx_powexp( d_Y, d_X:fVector; size:UIntSize; Expo:Single; d_A, d_B, d_C:PSingle ): IntBool;
function VFcu_powexp( h_Y, h_X:fVector; size:UIntSize; Expo:Single ): IntBool;
function VFxcu_powexp( h_Y, h_X:fVector; size:UIntSize; Expo:Single; A, B, C:Single ): IntBool;
Beschreibungeinfache Versionen: Yi = XiExpo * exp(Xi)
erweiterte Versionen: Yi = C * (XiExpo) * exp(A*Xi+B)
Man beachte, dass die erweiterten Versionen (A*Xi+B) nur als Argument der Exponentialfunktion verwenden, die Potenzfunktion aber für (Xi) berechnen. Die Implementation dieser Funktion garantiert den korrekten Ausgleich eventueller gleichzeitiger Über- und Unterläufe in den beiden Faktoren (d.h. für große Xi, wenn entweder Expo oder A*Xi negativ sind, so dass entweder die Potenzfunktion oder die Exponentialfunktion sehr klein wird, während die jeweils andere sehr groß wird).
Anders als bei VF_pow werden negative X-Werte in der Potenzfunktion stets als DOMAIN-Fehler behandelt; es findet also keine Prüfung statt, ob der Exponent vielleicht ganzzahlig ist und das Ergebnis daher doch berechenbar wäre.
FehlerbehandlungDOMAIN-Fehler entstehen für negative Xi. Das vorgeschlagene Ergebnis ist NAN ("not-a-number"). SING-Fehler entstehen durch negative Potenzen von 0. Das vorgeschlagene Resultat ist hier ±HUGE_VAL, ebenso wie für OVERFLOW-Fehler.
RückgabewertFALSE (0), wenn fehlerfrei, andernfalls TRUE (≠ 0)
QuerverweisVF_pow,   VF_poly,   VF_exp pow,  exp

VectorLib Inhaltsverzeichnis  OptiVec Home