VF_powVD_powVE_pow
VCF_powVCD_powVCE_pow
VFx_powVDx_powVEx_pow
VCFx_powVCDx_powVCEx_pow
VCF_powReExpoVCD_powReExpoVCE_powReExpo
VCFx_powReExpoVCDx_powReExpoVCEx_powReExpo
VPF_powReExpoVPD_powReExpoVPE_powReExpo
Funktionbeliebige reelle oder komplexe Potenzen
Syntax C/C++#include <VFmath.h>
int VF_pow( fVector Y, fVector X, ui size, float Expo );
int VFx_pow( fVector Y, fVector X, ui size, float Expo, float A, float B, float C );
int VCF_pow( cfVector Y, cfVector X, ui size, fComplex Expo );
int VCFx_pow( cfVector Y, cfVector X, ui size, fComplex Expo, fComplex A, fComplex B, fComplex C );
int VCF_powReExpo( cfVector Y, cfVector X, ui size, float Expo );
int VCFx_powReExpo( cfVector Y, cfVector X, ui size, float Expo, fComplex A, fComplex B, fComplex C );
C++ VecObj#include <OptiVec.h>
int vector<T>::pow( const vector<T>& X, const T& Expo );
int vector<T>::x_pow( const vector<T>& X, const T& Expo, const T& A, const T& B, const T& C );
int vector<complex<T>>::pow( const vector<complex<T>>& X, complex<T> Expo );
int vector<complex<T>>::x_pow( const vector<complex<T>>& X, complex<T> Expo, complex<T> A, complex<T> B, complex<T> C );
int vector<complex<T>>::powReExpo( const vector<complex<T>>& X, const T& Expo );
int vector<complex<T>>::x_powReExpo( const vector<complex<T>>& X, const T& Expo, complex<T> A, complex<T> B, complex<T> C );
Pascal/Delphiuses VFmath;
function VF_pow( Y, X:fVector; size:UIntSize; Expo:Single ): IntBool;
function VFx_pow( Y, X:fVector; size:UIntSize; Expo, A, B, C:Single ): IntBool;
function VCF_pow( Y, X:cfVector; size:UIntSize; Expo:fComplex ): IntBool;
function VCF_powReExpo( Y, X:cfVector; size:UIntSize; Expo:Single ): IntBool;
function VCFx_powReExpo( Y, X:cfVector; size:UIntSize; Expo:Single; A, B, C:fComplex ): IntBool;
CUDA-Funktion C/C++#include <cudaVFmath.h>
int cudaVF_pow( fVector d_Y, fVector d_X, ui size, float Expo );
int cudaVFx_pow( fVector d_Y, fVector d_X, ui size, float Expo, float A, float B, float C );
int cusdVFx_pow( fVector d_Y, fVector d_X, ui size, float Expo, float *_dA, float *d_B, float *d_C );
int VFcu_pow( fVector h_Y, fVector h_X, ui size, float Expo );
int VFxcu_pow( fVector h_Y, fVector h_X, ui size, float Expo, float A, float B, float C );
 
#include <cudaVCFmath.h>
int cudaVCF_pow( cfVector d_Y, cfVector d_X, ui size, fComplex Expo );
int cudaVCFx_pow( cfVector d_Y, cfVector d_X, ui size, fComplex Expo, fComplex A, fComplex B, fComplex C );
int cusdVCFx_pow( cfVector d_Y, cfVector d_X, ui size, fComplex Expo, fComplex *d_A, fComplex *d_B, fComplex *d_C );
int cudaVCF_powReExpo( cfVector d_Y, cfVector d_X, ui size, float Expo );
int cudaVCFx_powReExpo( cfVector d_Y, cfVector d_X, ui size, float Expo, fComplex A, fComplex B, fComplex C );
int cusdVCFx_powReExpo( cfVector d_Y, cfVector d_X, ui size, float Expo, fComplex *d_A, fComplex *d_B, fComplex *d_C );
int VCFcu_pow( cfVector h_Y, cfVector h_X, ui size, fComplex Expo );
int VCFxcu_pow( cfVector h_Y, cfVector h_X, ui size, fComplex Expo, fComplex A, fComplex B, fComplex C );
int VCFcu_powReExpo( cfVector h_Y, cfVector h_X, ui size, float Expo );
int VCFxcu_powReExpo( cfVector h_Y, cfVector h_X, ui size, float Expo, fComplex A, fComplex B, fComplex C );
CUDA-Funktion Pascal/Delphiuses VFmath;
function cudaVF_pow( d_Y, d_X:fVector; size:UIntSize; Expo:Single ): IntBool;
function cudaVFx_pow( d_Y, d_X:fVector; size:UIntSize; Expo:Single; A, B, C:Single ): IntBool;
function cusdVFx_pow( d_Y, d_X:fVector; size:UIntSize; Expo:Single; d_A, d_B, d_C:PSingle ): IntBool;
function VFcu_pow( h_Y, h_X:fVector; size:UIntSize; Expo:Single ): IntBool;
function VFxcu_pow( h_Y, h_X:fVector; size:UIntSize; Expo:Single; A, B, C:Single ): IntBool;
 
uses VCFmath;
int cudaVCF_pow( cfVector d_Y, cfVector d_X, ui size, fComplex Expo );
int cudaVCFx_pow( cfVector d_Y, cfVector d_X, ui size, fComplex Expo, fComplex A, fComplex B, fComplex C );
int cusdVCFx_pow( cfVector d_Y, cfVector d_X, ui size, fComplex Expo, fComplex *d_A, fComplex *d_B, fComplex *d_C );
int cudaVCF_powReExpo( cfVector d_Y, cfVector d_X, ui size, float Expo );
int cudaVCFx_powReExpo( cfVector d_Y, cfVector d_X, ui size, float Expo, fComplex A, fComplex B, fComplex C );
int cusdVCFx_powReExpo( cfVector d_Y, cfVector d_X, ui size, float Expo, fComplex *d_A, fComplex *d_B, fComplex *d_C );
int VCFcu_pow( cfVector h_Y, cfVector h_X, ui size, fComplex Expo );
int VCFxcu_pow( cfVector h_Y, cfVector h_X, ui size, fComplex Expo, fComplex A, fComplex B, fComplex C );
int VCFcu_powReExpo( cfVector h_Y, cfVector h_X, ui size, float Expo );
int VCFxcu_powReExpo( cfVector h_Y, cfVector h_X, ui size, float Expo, fComplex A, fComplex B, fComplex C );
Beschreibungeinfache Versionen: Yi = Xi Expo
erweiterte Versionen: Yi = C * ((A*Xi+B) Expo)
Wenn Expo eine nicht zu große ganze Zahl ist, reicht VF_pow die gestellte Aufgabe an VF_ipow weiter. Effizienter sollte man dies schon beim Programmieren tun.
Die komplexe Version existiert in zwei Varianten: einer für komplexe (VCF_pow) und einer für reelle Exponenten (VCF_powReExpo).
FehlerbehandlungDOMAIN-Fehler entstehen für bruchzahlige Potenzen negativer Zahlen. 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_ipow,   VF_poly,   VF_pow2,   VF_exp,   VF_powexp,   pow

VectorLib Inhaltsverzeichnis  OptiVec Home