Next: Normalization Functions, Up: Arithmetic Functions
These functions are provided for obtaining the absolute value (or
magnitude) of a number. The absolute value of a real number
x is x if x is positive, −x if x is
negative. For a complex number z, whose real part is x and
whose imaginary part is y, the absolute value is sqrt (
x*
x +
y*
y)
.
Prototypes for abs
, labs
and llabs
are in stdlib.h;
imaxabs
is declared in inttypes.h;
fabs
, fabsf
and fabsl
are declared in math.h.
cabs
, cabsf
and cabsl
are declared in complex.h.
— Function: long int labs (long int number)
— Function: long long int llabs (long long int number)
— Function: intmax_t imaxabs (intmax_t number)
These functions return the absolute value of number.
Most computers use a two’s complement integer representation, in which the absolute value of
INT_MIN
(the smallest possibleint
) cannot be represented; thus,abs (INT_MIN)
is not defined.
llabs
andimaxdiv
are new to ISO C99.See Integers for a description of the
intmax_t
type.
— Function: float fabsf (float number)
— Function: long double fabsl (long double number)
This function returns the absolute value of the floating-point number number.
— Function: float cabsf (complex float z)
— Function: long double cabsl (complex long double z)
These functions return the absolute value of the complex number z (see Complex Numbers). The absolute value of a complex number is:
sqrt (creal (z) * creal (z) + cimag (z) * cimag (z))This function should always be used instead of the direct formula because it takes special care to avoid losing precision. It may also take advantage of hardware support for this operation. See
hypot
in Exponents and Logarithms.