VF_cosVD_cosVE_cos
VFx_cosVDx_cosVEx_cos
VFr_cosVDr_cosVEr_cos
VFrx_cosVDrx_cosVErx_cos
VCF_cosVCD_cosVCE_cos
VCFx_cosVCDx_cosVCEx_cos
FunktionCosinus-Funktion
Syntax C/C++#include <VFmath.h>
int VF_cos( fVector Y, fVector X, ui size );
int VFx_cos( fVector Y, fVector X, ui size, float A, float B, float C );
int VFr_cos( fVector Y, fVector X, ui size );
int VFrx_cos( fVector Y, fVector X, ui size, float A, float B, float C );
C++ VecObj#include <OptiVec.h>
int vector<T>::cos( const vector<T>& X );
int vector<T>::x_cos( const vector<T>& X, const T& A, const T& B, const T& C );
int vector<T>::r_cos( const vector<T>& X );
int vector<T>::rx_cos( const vector<T>& X, const T& A, const T& B, const T& C );
Pascal/Delphiuses VFmath;
function VF_cos( Y, X:fVector; size:UIntSize ): IntBool;
function VFx_cos( Y, X:fVector; size:UIntSize; A, B, C:Single ): IntBool;
function VFr_cos( Y, X:fVector; size:UIntSize ): IntBool;
function VFrx_cos( Y, X:fVector; size:UIntSize; A, B, C:Single ): IntBool;
CUDA-Funktion C/C++#include <cudaVFmath.h>
int cudaVF_cos( fVector d_Y, fVector d_X, ui size );
int cudaVFx_cos( fVector d_Y, fVector d_X, ui size, float A, float B, float C );
int cusdVFx_cos( fVector d_Y, fVector d_X, ui size, float *d_A, float *d_B, float *d_C );
int VFcu_cos( fVector h_Y, fVector h_X, ui size );
int VFxcu_cos( fVector h_Y, fVector h_X, ui size, float A, float B, float C );
CUDA-Funktion Pascal/Delphiuses VFmath;
function cudaVF_cos( d_Y, d_X:fVector; size:UIntSize ): IntBool;
function cudaVFx_cos( d_Y, d_X:fVector; size:UIntSize; A, B, C:Single ): IntBool;
function cusdVFx_cos( d_Y, d_X:fVector; size:UIntSize; d_A, d_B, d_C:PSingle ): IntBool;
function VFcu_cos( h_Y, h_X:fVector; size:UIntSize ): IntBool;
function VFxcu_cos( h_Y, h_X:fVector; size:UIntSize; A, B, C:Single ): IntBool;
Beschreibungeinfache Versionen: Yi = cos ( Xi )
erweiterte Versionen: Yi = C * cos ( A*Xi + B )

Für große Werte von Xi nehmen Rundungsfehler überhand. Wenn sich die X-Werte als gebrochenzahlige Vielfache von p darstellen lassen, sollte man lieber VF_cosrpi als VF_cos verwenden.

Falls man andererseits sicher ist, dass sich alle Eingabewerte innerhalb eines "vernünftigen" Bereiches befinden, so können die schnelleren Funktionen mit reduziertem Eingabe-Bereich eingesetzt werden (Präfix VFr_ und VFrx_). Sie verlangen folgende Begrenzungen:
64-bit: |Xi| < 232 (ungefähr 4.2*109)
32-bit: |Xi| ≤ 2p).
Die Funktionen mit reduziertem Eingabe-Bereich existieren nur für die CPU, nicht für CUDA.

FehlerbehandlungGenauigkeits-Fehler führen in den reellen Funktionen zum Resultat 1.0 (als ob das Argument 0.0 wäre) und zu einem Rückgabewert TRUE (ungleich 0). Ansonsten werden diese Fehler ignoriert. _matherr wird daher nicht aufgerufen.
OVERFLOW-Fehler können nur in den komplexen Versionen auftreten und führen zum Resultat ±HUGE_VAL.
RückgabewertFALSE (0), wenn fehlerfrei, andernfalls TRUE (≠ 0).
QuerverweisVF_cos2,   VF_cosrpi,   VF_sin,   VF_cosh,   VF_acos,   cos

VectorLib Inhaltsverzeichnis  OptiVec Home