VF_ipowVD_ipowVE_ipow
VFx_ipowVDx_ipowVEx_ipow
VFu_ipowVDu_ipowVEu_ipow
VFux_ipowVDux_ipowVEux_ipow
VCF_ipowVCD_ipowVCE_ipow
VCFx_ipowVCDx_ipowVCEx_ipow
VCFu_ipowVCDu_ipowVCEu_ipow
VCFux_ipowVCDux_ipowVCEux_ipow
VPF_ipowVPD_ipowVPE_ipow
VPFu_ipowVPDu_ipowVPEu_ipow
Funktionganzzahlige Potenzen
Syntax C/C++#include <VFmath.h>
int VF_ipow( fVector Y, fVector X, ui size, int Expo );
int VFx_ipow( fVector Y, fVector X, ui size, int Expo, float A, float B, float C );
int VFu_ipow( fVector Y, fVector X, ui size, int Expo );
int VFux_ipow( fVector Y, fVector X, ui size, int Expo, float A, float B, float C );
C++ VecObj#include <OptiVec.h>
int vector<T>::ipow( const vector<T>& X );
int vector<T>::x_ipow( const vector<T>& X, const T& A, const T& B, const T& C );
int vector<T>::u_ipow( const vector<T>& X );
int vector<T>::ux_ipow( const vector<T>& X, const T& A, const T& B, const T& C );
Pascal/Delphiuses VFmath;
function VF_ipow( Y, X:fVector; size:UIntSize; ipow:Integer ): IntBool;
function VFx_ipow( Y, X:fVector; size:UIntSize; ipow:Integer; A, B, C:Single ): IntBool;
function VFu_ipow( Y, X:fVector; size:UIntSize; ipow:Integer ): IntBool;
function VFux_ipow( Y, X:fVector; size:UIntSize; ipow:Integer; A, B, C:Single ): IntBool;
CUDA-Funktion C/C++#include <cudaVFmath.h>
int cudaVF_ipow( fVector d_Y, fVector d_X, ui size, int Expo );
int cudaVFx_ipow( fVector d_Y, fVector d_X, ui size, int Expo, float A, float B, float C );
int cusdVFx_ipow( fVector d_Y, fVector d_X, ui size, int Expo, float *_dA, float *d_B, float *d_C );
int cudaVFu_ipow( fVector d_Y, fVector d_X, ui size, int Expo );
int cudaVFux_ipow( fVector d_Y, fVector d_X, ui size, int Expo, float A, float B, float C );
int cusdVFux_ipow( fVector d_Y, fVector d_X, ui size, int Expo, float *_dA, float *d_B, float *d_C );
int VFcu_ipow( fVector h_Y, fVector h_X, ui size, int Expo );
int VFxcu_ipow( fVector h_Y, fVector h_X, ui size, int Expo, float A, float B, float C );
int VFucu_ipow( fVector h_Y, fVector h_X, ui size, int Expo );
int VFuxcu_ipow( fVector h_Y, fVector h_X, ui size, int Expo, float A, float B, float C );
CUDA-Funktion Pascal/Delphiuses VFmath;
function cudaVF_ipow( d_Y, d_X:fVector; size:UIntSize; Expo:Integer ): IntBool;
function cudaVFx_ipow( d_Y, d_X:fVector; size:UIntSize; Expo:Integer; A, B, C:Single ): IntBool;
function cusdVFx_ipow( d_Y, d_X:fVector; size:UIntSize; Expo:Integer; d_A, d_B, d_C:PSingle ): IntBool;
function cudaVFu_ipow( d_Y, d_X:fVector; size:UIntSize; Expo:Integer ): IntBool;
function cudaVFux_ipow( d_Y, d_X:fVector; size:UIntSize; Expo:Integer; A, B, C:Single ): IntBool;
function cusdVFux_ipow( d_Y, d_X:fVector; size:UIntSize; Expo:Integer; d_A, d_B, d_C:PSingle ): IntBool;
function VFcu_ipow( h_Y, h_X:fVector; size:UIntSize; Expo:Integer ): IntBool;
function VFxcu_ipow( h_Y, h_X:fVector; size:UIntSize; Expo:Integer; A, B, C:Single ): IntBool;
function VFucu_ipow( h_Y, h_X:fVector; size:UIntSize; Expo:Integer ): IntBool;
function VFuxcu_ipow( h_Y, h_X:fVector; size:UIntSize; Expo:Integer; A, B, C:Single ): IntBool;
Beschreibungnormale Versionen: Yi = XiExpo
erweiterte Versionen: Yi = C * (A*Xi+B)Expo
Wenn Expo größer als eine gewisse Schwelle ist, leitet VF_ipow die Aufgabe intern zwecks sichererer und schnellerer Bearbeitung an VF_pow weiter.
Die "ungeschützten" Versionen (Präfix VFu_ und VFux_) fangen OVERFLOW-Fehler nicht ab und leiten auch für große Expo keine Aufrufe auf VF_pow um. Durch diese Vereinfachungen sind sie wesentlich schneller, aber auch etwas riskanter und daher nur mit großer Vorsicht anzuwenden.
FehlerbehandlungSING-Fehler entstehen für negative Potenzen von 0. Das Resultat ist ±HUGE_VAL. Dasselbe gilt für OVERFLOW-Fehler.
RückgabewertFALSE (0), wenn fehlerfrei, andernfalls TRUE (!= 0)
QuerverweisVF_pow,   VF_poly,   VF_pow2,   VF_exp,  pow

VectorLib Inhaltsverzeichnis  OptiVec Home