| 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. |  
  | 
 |