Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

La librairie <math.h> (<cmath> en C++)

Les fonctions acos


Accès rapide :
Types et gestion des erreurs
Macros de classification et de comparaison
Fonctions trigonométriques et hyperboliques
Fonctions exponentielles et logarithmiques
Fonctions d'erreur et gamma
Fonctions de calculs d'arrondis et de conversions
Fonctions de calcul de restes
Fonctions de manipulation des représentations flottantes
Fonctions de minimum, maximum et différence
Fonctions de puissances et racines
Autres fonctions numériques
Fonctions ISO/IEC 60559 optionnelles
Fonctions POSIX/XSI
Types, macros et constantes symboliques

Cet entête C standard permet de définir les principales fonctions mathématiques usuelles, ainsi que plusieurs macros utiles pour classifier les valeurs flottantes et contrôler certains comportements d'arrondi. Il est à noter que, si vous compilez avec le compilateur GCC, l'option -lm sera nécessaire pour linker correctement les fonctions de cette librairie.

Les fonctions sont présentées par familles. Pour rester lisible, seules les variantes double, float et long double sont regroupées sur une même page. Les fonctions POSIX/XSI et les macros disposent de leurs propres entrées.

Types et gestion des erreurs

Nom Depuis Description
double_t C99 Ce type réel flottant est au moins aussi large que double et au moins aussi large que float_t.
float_t C99 Ce type réel flottant est au moins aussi large que float. Il permet à l'implémentation d'utiliser le type le plus efficace pour les évaluations flottantes.
FP_FAST_FMA C99 Macro optionnelle indiquant que fma est généralement aussi rapide qu'une multiplication suivie d'une addition.
FP_FAST_FMAF C99 Macro optionnelle indiquant que fmaf est généralement aussi rapide qu'une multiplication suivie d'une addition.
FP_FAST_FMAL C99 Macro optionnelle indiquant que fmal est généralement aussi rapide qu'une multiplication suivie d'une addition.
FP_ILOGB0 C99 Valeur entière susceptible d'être renvoyée par ilogb quand son argument vaut zéro.
FP_ILOGBNAN C99 Valeur entière susceptible d'être renvoyée par ilogb quand son argument est NaN.
FP_INFINITE C99 Classification utilisée par fpclassify pour représenter une valeur infinie.
FP_INT_DOWNWARD C23 Direction d'arrondi vers -infini pour les fonctions fromfp et ufromfp.
FP_INT_TONEAREST C23 Direction d'arrondi vers l'entier le plus proche pour les fonctions fromfp et ufromfp.
FP_INT_TONEARESTFROMZERO C23 Direction d'arrondi vers l'entier le plus proche, les demi-valeurs étant éloignées de zéro.
FP_INT_TOWARDZERO C23 Direction d'arrondi vers zéro pour les fonctions fromfp et ufromfp.
FP_INT_UPWARD C23 Direction d'arrondi vers +infini pour les fonctions fromfp et ufromfp.
FP_NAN C99 Classification utilisée par fpclassify pour représenter une valeur NaN.
FP_NORMAL C99 Classification utilisée par fpclassify pour représenter une valeur flottante normale.
FP_SUBNORMAL C99 Classification utilisée par fpclassify pour représenter une valeur flottante subnormale.
FP_ZERO C99 Classification utilisée par fpclassify pour représenter une valeur nulle.
MATH_ERREXCEPT C99 Bit indiquant que les erreurs mathématiques peuvent être signalées via les exceptions flottantes.
math_errhandling C99 Expression indiquant le ou les mécanismes de signalement d'erreur pris en charge par la librairie mathématique.
MATH_ERRNO C99 Bit indiquant que les erreurs mathématiques peuvent être signalées via errno.
signgam POSIX Cette variable POSIX/XSI permet de récupérer le signe de la fonction gamma après un appel à lgamma.

Macros de classification et de comparaison

Nom Depuis Description
fpclassify C99 Cette macro classe une valeur flottante parmi les catégories FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL et FP_ZERO.
iscanonical C23 Cette macro indique si la représentation flottante de son argument est canonique.
iseqsig C23 Cette macro C23 teste l'égalité en signalant les NaN comme une erreur de domaine.
isfinite C99 Cette macro indique si son argument est une valeur finie.
isgreater C99 Cette macro teste si x est strictement supérieur à y, sans lever l'exception invalid pour les NaN silencieux.
isgreaterequal C99 Cette macro teste si x est supérieur ou égal à y, sans lever l'exception invalid pour les NaN silencieux.
isinf C99 Cette macro indique si son argument est une valeur infinie.
isless C99 Cette macro teste si x est strictement inférieur à y, sans lever l'exception invalid pour les NaN silencieux.
islessequal C99 Cette macro teste si x est inférieur ou égal à y, sans lever l'exception invalid pour les NaN silencieux.
islessgreater C99 Cette macro teste si x et y sont ordonnés et différents.
isnan C99 Cette macro indique si son argument est une valeur NaN.
isnormal C99 Cette macro indique si son argument est une valeur normale.
issignaling C23 Cette macro indique si son argument est un NaN signalant.
issubnormal C23 Cette macro indique si son argument est une valeur subnormale.
isunordered C99 Cette macro teste si au moins un argument est NaN, ce qui rend la comparaison non ordonnée.
iszero C23 Cette macro indique si son argument est une valeur zéro, positive ou négative.
signbit C99 Cette macro indique si le bit de signe de son argument est négatif.

Fonctions trigonométriques et hyperboliques

Nom Depuis Description
acos
acosf
acosl
C89
C99
C99
Ces trois fonctions permettent de calculer l'arc cosinus d'une valeur.
acosh
acoshf
acoshl
C99 Ces trois fonctions permettent de calculer l'arc cosinus hyperbolique d'une valeur.
acospi
acospif
acospil
C23 Ces trois fonctions calculent l'arc cosinus de x et expriment le résultat en demi-tours : un résultat de 1 représente donc pi radians.
asin
asinf
asinl
C89
C99
C99
Ces trois fonctions permettent de calculer l'arc sinus d'une valeur.
asinh
asinhf
asinhl
C99 Ces trois fonctions permettent de calculer l'arc sinus hyperbolique d'une valeur.
asinpi
asinpif
asinpil
C23 Ces trois fonctions calculent l'arc sinus de x et expriment le résultat en demi-tours.
atan
atanf
atanl
C89
C99
C99
Ces trois fonctions permettent de calculer l'arc tangente d'une valeur.
atan2
atan2f
atan2l
C89
C99
C99
Ces trois fonctions permettent de calculer l'arc tangente de y/x en tenant compte du quadrant.
atan2pi
atan2pif
atan2pil
C23 Ces trois fonctions calculent l'arc tangente de y/x en tenant compte du quadrant, puis expriment le résultat en demi-tours.
atanh
atanhf
atanhl
C99 Ces trois fonctions permettent de calculer l'arc tangente hyperbolique d'une valeur.
atanpi
atanpif
atanpil
C23 Ces trois fonctions calculent l'arc tangente de x et expriment le résultat en demi-tours.
cos
cosf
cosl
C89
C99
C99
Ces trois fonctions permettent de calculer le cosinus d'un angle donné.
cosh
coshf
coshl
C89
C99
C99
Ces trois fonctions permettent de calculer le cosinus hyperbolique d'une valeur.
cospi
cospif
cospil
C23 Ces trois fonctions calculent le cosinus de pi multiplié par x. Elles sont utiles pour éviter certaines approximations inutiles sur les multiples de pi.
sin
sinf
sinl
C89
C99
C99
Ces trois fonctions permettent de calculer le sinus d'un angle donné.
sinh
sinhf
sinhl
C89
C99
C99
Ces trois fonctions permettent de calculer le sinus hyperbolique d'une valeur.
sinpi
sinpif
sinpil
C23 Ces trois fonctions calculent le sinus de pi multiplié par x.
tan
tanf
tanl
C89
C99
C99
Ces trois fonctions permettent de calculer la tangente d'un angle donné.
tanh
tanhf
tanhl
C89
C99
C99
Ces trois fonctions permettent de calculer la tangente hyperbolique d'une valeur.
tanpi
tanpif
tanpil
C23 Ces trois fonctions calculent la tangente de pi multiplié par x.

Fonctions exponentielles et logarithmiques

Nom Depuis Description
exp
expf
expl
C89
C99
C99
Ces trois fonctions permettent de calculer la valeur de e exposant x.
exp10
exp10f
exp10l
C23 Ces trois fonctions permettent de calculer une puissance de 10.
exp10m1
exp10m1f
exp10m1l
C23 Ces trois fonctions permettent de calculer 10 exposant x, moins 1.
exp2
exp2f
exp2l
C99 Ces trois fonctions permettent de calculer une puissance de 2.
exp2m1
exp2m1f
exp2m1l
C23 Ces trois fonctions permettent de calculer 2 exposant x, moins 1.
expm1
expm1f
expm1l
C99 Ces trois fonctions permettent de calculer e exposant x, moins 1.
frexp
frexpf
frexpl
C89
C99
C99
Ces trois fonctions décomposent une valeur en mantisse et puissance de 2.
ilogb
ilogbf
ilogbl
C99 Ces trois fonctions extraient l'exposant entier d'une valeur flottante.
ldexp
ldexpf
ldexpl
C89
C99
C99
Ces trois fonctions multiplient une valeur par 2 exposant exp.
llogb
llogbf
llogbl
C23 Ces trois fonctions extraient un exposant entier long d'une valeur flottante.
log
logf
logl
C89
C99
C99
Ces trois fonctions calculent le logarithme naturel.
log10
log10f
log10l
C89
C99
C99
Ces trois fonctions calculent le logarithme décimal.
log10p1
log10p1f
log10p1l
C23 Ces trois fonctions calculent le logarithme décimal de 1 plus l'argument.
log2
log2f
log2l
C99 Ces trois fonctions calculent le logarithme en base 2.
log2p1
log2p1f
log2p1l
C23 Ces trois fonctions calculent le logarithme en base 2 de 1 plus l'argument.
logb
logbf
logbl
C99 Ces trois fonctions extraient un exposant sous forme flottante.
log1p/logp1
log1pf/logp1f
log1pl/logp1l
C99/C23 Ces fonctions calculent le logarithme naturel de 1 plus l'argument.
scalbln
scalblnf
scalblnl
C99 Ces trois fonctions multiplient une valeur par FLT_RADIX exposant exp, exp étant de type long.
scalbn
scalbnf
scalbnl
C99 Ces trois fonctions multiplient une valeur par FLT_RADIX exposant exp.

Fonctions d'erreur et gamma

Nom Depuis Description
erf
erff
erfl
C99 Ces trois fonctions calculent la fonction d'erreur, très utilisée en probabilités, en statistiques et dans certains calculs numériques.
erfc
erfcf
erfcl
C99 Ces trois fonctions calculent la fonction d'erreur complémentaire.
lgamma
lgammaf
lgammal
C99 Ces trois fonctions calculent le logarithme naturel de la valeur absolue de la fonction gamma.
tgamma
tgammaf
tgammal
C99 Ces trois fonctions calculent la fonction gamma.

Fonctions de calculs d'arrondis et de conversions

Nom Depuis Description
ceil
ceilf
ceill
C89
C99
C99
Ces trois fonctions calculent l'arrondi supérieur.
floor
floorf
floorl
C89
C99
C99
Ces trois fonctions calculent l'arrondi inférieur.
fromfp
fromfpf
fromfpl
C23 Ces trois fonctions arrondissent x selon une direction d'arrondi mathématique, puis vérifient que le résultat tient dans une largeur entière signée.
fromfpx
fromfpxf
fromfpxl
C23 Ces trois fonctions se comportent comme fromfp, mais elles lèvent l'exception flottante d'inexactitude si l'arrondi modifie la valeur.
llrint
llrintf
llrintl
C99 Ces trois fonctions arrondissent x selon le mode d'arrondi courant et convertissent le résultat en type long long.
llround
llroundf
llroundl
C99 Ces trois fonctions arrondissent x à l'entier le plus proche, les demi-valeurs étant éloignées de zéro, puis convertissent le résultat en type long long.
lrint
lrintf
lrintl
C99 Ces trois fonctions arrondissent x selon le mode d'arrondi courant et convertissent le résultat en type long.
lround
lroundf
lroundl
C99 Ces trois fonctions arrondissent x à l'entier le plus proche, les demi-valeurs étant éloignées de zéro, puis convertissent le résultat en type long.
nearbyint
nearbyintf
nearbyintl
C99 Ces trois fonctions arrondissent x vers un entier représenté en virgule flottante, en respectant le mode d'arrondi courant.
rint
rintf
rintl
C99 Ces trois fonctions arrondissent x vers un entier représenté en virgule flottante, en respectant le mode d'arrondi courant.
round
roundf
roundl
C99 Ces trois fonctions calculent l'arrondi au plus proche, les demi-valeurs étant éloignées de zéro.
roundeven
roundevenf
roundevenl
C23 Ces trois fonctions arrondissent à l'entier le plus proche en choisissant l'entier pair lorsque la valeur est exactement à mi-chemin.
trunc
truncf
truncl
C99 Ces trois fonctions tronquent la partie décimale.
ufromfp
ufromfpf
ufromfpl
C23 Ces trois fonctions arrondissent x vers une valeur entière non signée, sans effectuer de wrapping en cas de dépassement.
ufromfpx
ufromfpxf
ufromfpxl
C23 Ces trois fonctions se comportent comme ufromfp, mais elles lèvent l'exception flottante d'inexactitude si l'arrondi modifie la valeur.

Fonctions de calcul de restes

Nom Depuis Description
fmod
fmodf
fmodl
C89/C99/C99 Ces trois fonctions calculent le reste flottant de la division de x par y. Le quotient utilisé est tronqué vers zéro.
remainder
remainderf
remainderl
C99 Ces trois fonctions calculent le reste flottant ISO/IEC 60559 de x divisé par y.
remquo
remquof
remquol
C99 Ces trois fonctions calculent le même reste que remainder et stockent en plus quelques bits du quotient dans un entier.

Fonctions de manipulation des représentations flottantes

Nom Depuis Description
canonicalize
canonicalizef
canonicalizel
C23 Ces trois fonctions tentent de stocker une représentation canonique de la valeur flottante source.
copysign
copysignf
copysignl
C99 Ces trois fonctions produisent une valeur ayant la magnitude de x et le signe de y.
modf
modff
modfl
C89
C99
C99
Ces trois fonctions séparent la partie entière et la partie fractionnaire.
nan
nanf
nanl
C99 Ces trois fonctions produisent une valeur NaN silencieuse, éventuellement annotée par une chaîne de caractères dépendante de l'implémentation.
nextafter
nextafterf
nextafterl
C99 Ces trois fonctions renvoient la prochaine valeur représentable après x, dans la direction de y.
nextdown
nextdownf
nextdownl
C23 Ces trois fonctions renvoient la prochaine valeur représentable strictement plus petite que x, sauf aux bornes du type.
nexttoward
nexttowardf
nexttowardl
C99 Ces trois fonctions renvoient la prochaine valeur représentable après x, dans la direction de y, y étant évalué en long double.
nextup
nextupf
nextupl
C23 Ces trois fonctions renvoient la prochaine valeur représentable strictement plus grande que x, sauf aux bornes du type.

Fonctions de minimum, maximum et différence

Nom Depuis Description
fdim
fdimf
fdiml
C99 Ces trois fonctions calculent la différence positive.
fmax
fmaxf
fmaxl
C99 Ces trois fonctions calculent le maximum numérique de deux valeurs.
fmaximum
fmaximumf
fmaximuml
C23 Ces trois fonctions déterminent la valeur maximale de leurs arguments. Elles définissent notamment +0 comme supérieur à -0.
fmaximum_mag
fmaximum_magf
fmaximum_magl
C23 Ces trois fonctions déterminent l'argument dont la magnitude est la plus grande.
fmaximum_mag_num
fmaximum_mag_numf
fmaximum_mag_numl
C23 Ces trois fonctions déterminent l'argument numérique de plus grande magnitude et choisissent le nombre si l'autre argument est NaN.
fmaximum_num
fmaximum_numf
fmaximum_numl
C23 Ces trois fonctions déterminent le maximum numérique de leurs arguments et choisissent le nombre si l'autre argument est NaN.
fmin
fminf
fminl
C99 Ces trois fonctions calculent le minimum numérique de deux valeurs.
fminimum
fminimumf
fminimuml
C23 Ces trois fonctions déterminent la valeur minimale de leurs arguments. Elles définissent notamment -0 comme inférieur à +0.
fminimum_mag
fminimum_magf
fminimum_magl
C23 Ces trois fonctions déterminent l'argument dont la magnitude est la plus petite.
fminimum_mag_num
fminimum_mag_numf
fminimum_mag_numl
C23 Ces trois fonctions déterminent l'argument numérique de plus petite magnitude et choisissent le nombre si l'autre argument est NaN.
fminimum_num
fminimum_numf
fminimum_numl
C23 Ces trois fonctions déterminent le minimum numérique de leurs arguments et choisissent le nombre si l'autre argument est NaN.

Fonctions de puissances et racines

Nom Depuis Description
cbrt
cbrtf
cbrtl
C99 Ces trois fonctions calculent la racine cubique.
compoundn
compoundnf
compoundnl
C23 Ces trois fonctions calculent un facteur de composition : (1 + x) élevé à la puissance n.
pow
powf
powl
C89
C99
C99
Ces trois fonctions élèvent une valeur à une puissance donnée.
pown
pownf
pownl
C23 Ces trois fonctions élèvent x à une puissance entière.
powr
powrf
powrl
C23 Ces trois fonctions élèvent x à la puissance y en suivant la définition exp(y * log(x)).
rootn
rootnf
rootnl
C23 Ces trois fonctions calculent la racine principale n-ième de x.
rsqrt
rsqrtf
rsqrtl
C23 Ces trois fonctions calculent l'inverse de la racine carrée non négative de x.
sqrt
sqrtf
sqrtl
C89
C99
C99
Ces trois fonctions calculent la racine carrée.

Autres fonctions numériques

Nom Depuis Description
fabs
fabsf
fabsl
C89/C99/C99 Ces trois fonctions calculent la valeur absolue d'une valeur flottante.
fma
fmaf
fmal
C99 Ces trois fonctions calculent x * y + z comme une opération fusionnée, avec un seul arrondi final.
hypot
hypotf
hypotl
C99 Ces trois fonctions calculent la longueur de l'hypoténuse d'un triangle rectangle de côtés x et y.

Fonctions ISO/IEC 60559 optionnelles

Nom Depuis Description
totalorder
totalorderf
totalorderl
C23 Ces trois fonctions testent la relation d'ordre total définie par ISO/IEC 60559 pour la paire *x, *y.
totalordermag
totalordermagf
totalordermagl
C23 Ces trois fonctions testent la relation d'ordre total sur les magnitudes des valeurs pointées par x et y.
getpayload
getpayloadf
getpayloadl
C23 Ces trois fonctions extraient le payload d'une valeur NaN silencieuse ou signalante, lorsque l'implémentation expose cette information.
setpayload
setpayloadf
setpayloadl
C23 Ces trois fonctions créent un NaN silencieux avec le payload demandé et le stockent dans l'objet pointé par res.
setpayloadsig
setpayloadsigf
setpayloadsigl
C23 Ces trois fonctions créent un NaN signalant avec le payload demandé et le stockent dans l'objet pointé par res.

Fonctions POSIX/XSI

Nom Depuis Description
j0 POSIX Cette fonction calcule la fonction de Bessel de première espèce, d'ordre 0.
j1 POSIX Cette fonction calcule la fonction de Bessel de première espèce, d'ordre 1.
jn POSIX Cette fonction calcule la fonction de Bessel de première espèce, pour un ordre entier n.
y0 POSIX Cette fonction calcule la fonction de Bessel de seconde espèce, d'ordre 0.
y1 POSIX Cette fonction calcule la fonction de Bessel de seconde espèce, d'ordre 1.
yn POSIX Cette fonction calcule la fonction de Bessel de seconde espèce, pour un ordre entier n.

Types, macros et constantes symboliques

Nom Depuis Description
HUGE_VAL
HUGE_VALF
HUGE_VALL
C89
C99
C99
Ces macros représentent de très grandes valeurs flottantes positives.
INFINITY C99 Cette macro représente une valeur flottante infinie.
M_1_PI POSIX Cette macro POSIX/XSI définit l'inverse de pi. La variante M_1_PIl correspond au même concept en précision long double.
M_1_SQRTPI POSIX Cette macro POSIX/XSI définit l'inverse de la racine carrée de pi. La variante M_1_SQRTPIl correspond au même concept en précision long double.
M_2_PI POSIX Cette macro POSIX/XSI définit 2 divisé par pi. La variante M_2_PIl correspond au même concept en précision long double.
M_2_SQRTPI POSIX Cette macro POSIX/XSI définit 2 divisé par la racine carrée de pi. La variante M_2_SQRTPIl correspond au même concept en précision long double.
M_EGAMMA POSIX Cette macro POSIX/XSI définit la constante d'Euler-Mascheroni. La variante M_EGAMMAl correspond au même concept en précision long double.
M_LN10 POSIX Cette macro POSIX/XSI définit le logarithme naturel de 10. La variante M_LN10l correspond au même concept en précision long double.
M_LN2 POSIX Cette macro POSIX/XSI définit le logarithme naturel de 2. La variante M_LN2l correspond au même concept en précision long double.
M_LOG10E POSIX Cette macro POSIX/XSI définit le logarithme décimal de e. La variante M_LOG10El correspond au même concept en précision long double.
M_LOG2E POSIX Cette macro POSIX/XSI définit le logarithme en base 2 de e. La variante M_LOG2El correspond au même concept en précision long double.
M_PHI POSIX Cette macro POSIX/XSI définit le nombre d'or. La variante M_PHIl correspond au même concept en précision long double.
M_PI_2 POSIX Cette macro POSIX/XSI définit pi divisé par 2. La variante M_PI_2l correspond au même concept en précision long double.
M_PI_4 POSIX Cette macro POSIX/XSI définit pi divisé par 4. La variante M_PI_4l correspond au même concept en précision long double.
M_SQRT1_2 POSIX Cette macro POSIX/XSI définit l'inverse de la racine carrée de 2. La variante M_SQRT1_2l correspond au même concept en précision long double.
M_SQRT1_3 POSIX Cette macro POSIX/XSI définit l'inverse de la racine carrée de 3. La variante M_SQRT1_3l correspond au même concept en précision long double.
M_SQRT2 POSIX Cette macro POSIX/XSI définit la racine carrée de 2. La variante M_SQRT2l correspond au même concept en précision long double.
M_SQRT3 POSIX Cette macro POSIX/XSI définit la racine carrée de 3. La variante M_SQRT3l correspond au même concept en précision long double.
NAN C99 Cette macro représente une non-valeur NaN.

POSIX/XSI - signifie que cet élément n'est pas défini dans le standard C ISO, mais par POSIX/XSI.



Les fonctions acos




Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé