|
|
Syntax C/C++ | #include <VFmath.h>
int VF_sin( fVector Y, fVector X, ui size );
int VFx_sin( fVector Y, fVector X, ui size, float A, float B, float C );
int VFr_sin( fVector Y, fVector X, ui size );
int VFrx_sin( fVector Y, fVector X, ui size, float A, float B, float C ); |
C++ VecObj | #include <OptiVec.h>
int vector<T>::sin( const vector<T>& X );
int vector<T>::x_sin( const vector<T>& X, const T& A, const T& B, const T& C );
int vector<T>::r_sin( const vector<T>& X );
int vector<T>::rx_sin( const vector<T>& X, const T& A, const T& B, const T& C ); |
Pascal/Delphi | uses VFmath;
function VF_sin( Y, X:fVector; size:UIntSize ): IntBool;
function VFx_sin( Y, X:fVector; size:UIntSize; A, B, C:Single ): IntBool;
function VFr_sin( Y, X:fVector; size:UIntSize ): IntBool;
function VFrx_sin( Y, X:fVector; size:UIntSize; A, B, C:Single ): IntBool; |
|
CUDA function C/C++ | #include <cudaVFmath.h>
int cudaVF_sin( fVector d_Y, fVector d_X, ui size );
int cudaVFx_sin( fVector d_Y, fVector d_X, ui size, float A, float B, float C );
int cusdVFx_sin( fVector d_Y, fVector d_X, ui size, float *d_A, float *d_B, float *d_C );
int VFcu_sin( fVector h_Y, fVector h_X, ui size );
int VFxcu_sin( fVector h_Y, fVector h_X, ui size, float A, float B, float C );
|
CUDA function Pascal/Delphi | uses VFmath;
function cudaVF_sin( d_Y, d_X:fVector; size:UIntSize ): IntBool;
function cudaVFx_sin( d_Y, d_X:fVector; size:UIntSize; A, B, C:Single ): IntBool;
function cusdVFx_sin( d_Y, d_X:fVector; size:UIntSize; d_A, d_B, d_C:PSingle ): IntBool;
function VFcu_sin( h_Y, h_X:fVector; size:UIntSize ): IntBool;
function VFxcu_sin( h_Y, h_X:fVector; size:UIntSize; A, B, C:Single ): IntBool;
|
|
Description | simple versions: Yi = sin( Xi )
expanded versions: Yi = C * sin( A*Xi+B )
For large values of Xi, round-off error becomes larger and larger; if the Xi values are representable as fractional multiples of p, it is better to use VF_sinrpi than VF_sin.
If, on the other hand, one can be sure that all Xi are within a reasonable range one can employ the faster reduced-range versions with the prefixes VFr_ and VFrx_. The range requirements for the reduced-range versions are:
64-bit: |Xi| < 232 (roughly 4.2*109)
32-bit: |Xi| ≤ 2p).
These reduced-range functions are not available for CUDA. |
|
Error handling | Precision errors lead to a default result of 0.0 and a non-zero return value, but are ignored otherwise; _matherr is not called.
OVERFLOW errors can only occur in the complex versions and lead to a result of ±HUGE_VAL. |
|
Return value | FALSE (0), if no error occurred, otherwise TRUE (non-zero) |
|
|