VI_abs | VBI_abs | VSI_abs | VLI_abs | VQI_abs |
|
|
Syntax C/C++ | #include <VFmath.h>
int VF_abs( fVector Y, fVector X, ui size );
(similarly VD_, VE_, VBI_, VSI_, VI_, VLI_, VQI_)
int VCF_abs( fVector Y, cfVector X, ui size );
(similarly VCD_, VCE_, VPF_, VPD_, VPE_) |
C++ VecObj | #include <OptiVec.h>
int vector<T>::abs( const vector<T>& X );
int vector<T>::abs( const vector<complex<T>>& X ); |
Pascal/Delphi | uses VFmath;
function VF_abs( Y, X:fVector; size:UIntSize ): IntBool;
(similarly VD_, VE_, VSI_, VI_, VLI_, VQI_)
function VCF_abs( Y:fVector; X:cfVector; size:UIntSize ): IntBool;
(similarly VCD_, VCE_, VPF_, VPD_, VPE_) |
|
CUDA function C/C++ | #include <cudaVFmath.h>
int cudaVF_abs( fVector d_Y, fVector d_X, ui size );
int VFcu_abs( fVector h_Y, fVector h_X, ui size ); |
CUDA function Pascal/Delphi | uses VFmath;
function cudaVF_abs( d_Y, d_X:fVector; size:UIntSize ): IntBool;
function VFcu_abs( h_Y, h_X:fVector; size:UIntSize ): IntBool;
|
|
Description | Real and integer versions: Yi = | Xi |
VBI_, VSI_, VI_, and VLI_ versions only: due to the implicit modulo-2n arithmetics, the absolute value of the most negative numbers possible ( -32768 for short/SmallInt, -2147483648 for long/LongInt) is stored as the same negative (!) number (-32768 or -2147483648, resp.). Complex versions: Yi = sqrt( Xi.Re2 + Xi.Im2 )
For the complex versions, note that the result is real-valued. For the cartesian complex functions (VC?_abs), the same result may also be obtained slightly faster, but without error handling, using VF_CtoAbs. |
|
Error handling | Real and integer versions: no errors should occur;
Complex versions: OVERFLOW errors lead to the default result +HUGE_VAL. |
|
Return value | Floating-point versions: FALSE (0), if error-free, otherwise TRUE (≠ 0).
The integer versions have no return value. |
|
|