La valeur absolue
Le compilateur GNU C proposent de nombreuses fonction pour le traitement de valeur absolue de nombre. La valeur absolue d'un nombre réel x est x si x est positif, -x si x est négatif. Pour un nombre complexe z dont la partie réelle est x et la partie imaginaire est y, la valeur absolue est représenté par la formulation «sqrt(x * x + y * y)».
Les prototypes pour abs, labs et llabs sont indiquer dans l'entête stdlib.h; imaxabs est déclaré dans l'entête inttypes.h; tandis que la fonction fabs est déclarées dans l'entête math.h; les fonctions cabs, cabsf, cabsl sont déclarées dans l'entête complex.h.
Nombre entier
int abs(int number); | Entier |
long int labs(long int number); | Entier long |
long long int llabs(long long int number) | Entier très long |
intmax_t imaxabs(intmax_t number); | Entier avec un maximum |
Contexte préliminaire : MT-Safe, AS-Safe ou AC-Safe
Ces fonctions renvoient tous la valeur absolue du nombre. La plupart des ordinateurs utilisent une représentation d'un complément complémentaire, dans laquelle la valeur absolue de INT_MIN (le plus petit possible int) ne peut pas être représentée; ainsi, abs(INT_MIN) n'est pas défini.
Les fonctions llabs et imaxdiv sont nouveaux dans ISO C99.
Nombre réel
Pour les valeurs absolues de nombres réels (nombre à virgule flottante) :
double fabs(double number); | Nombre réel de double précision |
float fabsf(float number) | Nombre réel |
long double fabsl(long double number) | Nombre réel de double précision long |
_FloatN fabsfN(_FloatN number) | Nombre réel |
_FloatNx fabsfNx(_FloatNx number) | Nombre réel |
Contexte préliminaire : MT-Safe, AS-Safe, AC-Safe
Nombre complexe
Pour les valeurs absolues de nombres complexes :
double cabs(complex double z) | Nombre complexe de double précision |
float cabsf(complex float z) | Nombre complexe |
long double cabsl(complex long double z) | Nombre complexe de double précision long |
_FloatN cabsfN(complex _FloatN z) | Nombre complexe |
_FloatNx cabsfNx(complex _FloatNx z) | Nombre complexe |
La valeur absolue d'un nombre complexe est :
sqrt (creal (z) * creal (z) + cimag (z) * cimag (z))Cette fonction doit toujours être utilisée à la place de la formule directe car elle peut également tirer parti du support matériel pour cette opération.