VF_atanVD_atanVE_atan
VCF_atanVCD_atanVCE_atan
VFx_atanVDx_atanVEx_atan
VCFx_atanVCDx_atanVCEx_atan
Functionarcus tangens function
Syntax C/C++#include <VFmath.h>
int VF_atan( fVector Y, fVector X, ui size );
int VFx_atan( fVector Y, fVector X, ui size, float A, float B, float C );
C++ VecObj#include <OptiVec.h>
int vector<T>::atan( const vector<T>& X );
int vector<T>::x_atan( const vector<T>& X, const T& A, const T& B, const T& C );
Pascal/Delphiuses VFmath;
function VF_atan( Y, X:fVector; size:UIntSize ): IntBool;
function VFx_atan( Y, X:fVector; size:UIntSize; A, B, C:Single ): IntBool;
CUDA function C/C++#include <cudaVFmath.h>
int cudaVF_atan( fVector d_Y, fVector d_X, ui size );
int cudaVFx_atan( fVector d_Y, fVector d_X, ui size, float A, float B, float C );
int cusdVFx_atan( fVector d_Y, fVector d_X, ui size, float *d_A, float *d_B, float *d_C );
int VFcu_atan( fVector h_Y, fVector h_X, ui size );
int VFxcu_atan( fVector h_Y, fVector h_X, ui size, float A, float B, float C );
CUDA function Pascal/Delphiuses VFmath;
function cudaVF_atan( d_Y, d_X:fVector; size:UIntSize ): IntBool;
function cudaVFx_atan( d_Y, d_X:fVector; size:UIntSize; A, B, C:Single ): IntBool;
function cusdVFx_atan( d_Y, d_X:fVector; size:UIntSize; d_A, d_B, d_C:PSingle ): IntBool;
function VFcu_atan( h_Y, h_X:fVector; size:UIntSize ): IntBool;
function VFxcu_atan( h_Y, h_X:fVector; size:UIntSize; A, B, C:Single ): IntBool;
Descriptionsimple versions: Yi = arctan ( Xi )
expanded versions: Yi = C * arctan (A*Xi + B )
Error handlingThe real versions should be error-proof as long as the parameter C in the expanded versions is not already near the OVERFLOW limit; this very rare error is neither detected nor handled.
In the complex versions, the result for an argument of {0, −1} is set to {0, -p} without notice (and without the program crash resulting from calling the complex atan with this argument in some compilers).
Return valuealways FALSE (0).
See alsoVF_tan,   VF_asin,   VF_acos,   VF_atan2,   atan,   atan2

VectorLib Table of Contents  OptiVec home