Un article de Wikipédia, l’encyclopédie gratuite.
math.h est un groupe de fonctions du Bibliothèque C standard Cela permet d’utiliser un certain nombre de fonctions mathématiques de base[1],[2]Avec Nombres à virgule flottante. Les différentes normes C les implémentent différemment, mais restent toujours compatibles vers le bas. La plupart de ces fonctions sont également disponibles dans le Bibliothèque standard C ++bien que dans un en-tête différent (les en-têtes C sont inclus, mais uniquement pour des raisons de compatibilité).
La plupart des fonctions sont contenues dans l’en-tête math.h (ou dans l’en-tête cmath en C ++). Fonctions qui fonctionnent avec des nombres entiers, telles que Section, Laboratoires, div, ou ldiv cependant, sont donnés en stdlib.h ((cstdlib et C ++).
Toutes les fonctions qui affectent les angles utilisent les radians comme unité[3].
Toutes les fonctions ne sont pas disponibles dans la version C89 de la norme C. Pour ceux qui le sont, les fonctionnalités n’acceptent que le type double pour les opérations avec des nombres à virgule flottante. Dans la norme C99, cette restriction a été supprimée par l’introduction d’un nouvel ensemble de fonctions fonctionnant avec des paramètres de type flotter ou long double. Ces fonctions sont identifiées chacune par le suffixe F ou l[4].
une fonction | la description | |
---|---|---|
abs labs llabs
|
calculer ça valeur absolue un nombre entier | |
fabs
|
Calculer la valeur absolue d’un certain nombre de types de flottants | |
div ldiv lldiv
|
Calculez le quotient et le reste de la division euclidienne | |
fmod
|
Reste de la division des nombres à virgule flottante | |
remainder
|
a signé le reste de l’opération de division | |
remquo
|
reste signé ainsi que les trois derniers bits de l’opération de fractionnement | |
fma
|
Multiplication Puis addition (multiplier-accumuler) | |
fmax
|
un maximum de deux valeurs à virgule flottante | |
fmin
|
au moins deux valeurs à virgule flottante | |
fdim
|
différence positive entre deux valeurs à virgule flottante | |
nan nanf nanl
|
Renvoie un pas de numéro (NaN) | |
Fonctions exponentielles | exp
|
revenir e élevé à la puissance demandée |
exp2
|
renvoie 2 à la puissance demandée | |
expm1
|
renvoie e à la puissance du moins 1 demandé | |
log
|
calculer ça un algorithme naturel (basé sur) | |
log2
|
Calculez le logarithme binaire (en base 2). | |
log10
|
calculer ça Logarithme décimal (en base 10) | |
log1p
|
Calculer le logarithme naturel (base e) de 1 plus le nombre donné | |
ilogb
|
extrait l’exposant d’un nombre | |
logb
|
extrait l’exposant d’un nombre | |
Fonctions de puissance | sqrt
|
calculer ça racine carrée |
cbrt
|
Calculer la racine cubique | |
hypot
|
Calculer la racine carrée de la somme des carrés des deux nombres donnés | |
pow
|
Augmenter un nombre à la puissance donnée | |
Fonctions trigonométriques | sin
|
Calculer le sinus |
cos
|
calculer ça cosinus | |
tan
|
calculer ça tangente | |
asin
|
Calculer l’arc sinus | |
acos
|
Calculer l’arc cosinus | |
atan
|
Calculer l’arc tangent | |
atan2
|
Utilisez le signe pour calculer l’arc tangent afin de déterminer le quadrant | |
Fonctions hyperboliques | sinh
|
Calculer le sinus hyperbolique |
cosh
|
Calculer le cosinus hyperbolique | |
tanh
|
Calculer la tangente hyperbolique | |
asinh
|
Calculer la courbe sinusale hyperbolique | |
acosh
|
Calculer l’arc cosinus hyperbolique | |
atanh
|
Calculer l’arc tangente hyperbolique | |
Fonction d’erreur et fonction gamma | erf
|
Calculer la fonction d’erreur |
erfc
|
calculer ça fonction d’erreur complémentaire | |
lgamma
|
Calculer le logarithme naturel de la valeur absolue de Fonction gamma | |
tgamma
|
Calculer la fonction gamma | |
Opérations d’arrondi | ceil
|
renvoie l’entier supérieur suivant |
floor
|
renvoie le nombre entier inférieur suivant | |
trunc
|
Renvoie l’entier le plus proche dont la valeur absolue est inférieure | |
round lround llround
|
Renvoie l’entier le plus proche selon les règles d’arrondi | |
nearbyint
|
Renvoie l’entier le plus proche en utilisant la méthode d’arrondi actuelle | |
rint lrint llrint
|
Renvoie l’entier le plus proche en utilisant la méthode d’arrondi actuelle sauf lorsque le résultat est différent | |
Fonctions d’édition des nombres à virgule flottante | frexp
|
Décomposer le paramètre en un nombre et une puissance de 2 |
ldexp
|
Multipliez un nombre par un nombre qui augmente à une puissance de deux | |
modf
|
divise un nombre en un nombre entier et sa fraction. | |
scalbn scalbln
|
Multipliez un nombre par FLT_RADIX élevé à une puissance spécifique | |
nextafter nexttoward
|
Renvoie la valeur suivante qui peut être représentée sous forme de virgule flottante | |
copysign
|
copie le signe d’un nombre à virgule flottante | |
classification | fpclassify
|
catégorise une valeur à virgule flottante |
isfinite
|
vérifie si le nombre spécifié a une valeur finie | |
isinf
|
vérifie si le nombre spécifié a une valeur infinie | |
isnan
|
Vérifiez que le numéro fourni est NaN | |
isnormal
|
Vérifiez si le nombre donné est normal | |
signbit
|
vérifie si le nombre spécifié est négatif |
Environnement en virgule flottante[modifier | modifier le code]
C99 ajoute diverses fonctions et types pour contrôler plus précisément l’environnement en virgule flottante[5]. Ces fonctions peuvent être utilisées pour contrôler un certain nombre de paramètres qui affectent le calcul avec des nombres à virgule flottante, par ex. B. Mode d’arrondi lorsque les nombres doivent être réinitialisés, etc. Ces fonctions sont définies dans l’en-tête fenv.h ((cfenv dans le C ++).
une fonction | la description |
---|---|
feclearexcept
|
Supprimer les exceptions (C99) |
fegetenv
|
enregistre l’environnement actuel (C99) |
fegetexceptflag
|
Enregistrer les indicateurs d’état (C99) |
fegetround
|
obtenir la direction d’arrondi actuelle (C99) |
feholdexcept
|
Enregistrez l’environnement actuel et nettoyez les exceptions (C99). |
feraiseexcept
|
lever une exception (C99) |
fesetenv
|
met en place un environnement (C99) |
fesetexceptflag
|
met en place un indicateur d’état (C99) |
fesetround
|
choisir le sens de l’arrondi (C99) |
fetestexcept
|
Tester si certaines exceptions ont été déclenchées (C99) |
feupdateenv
|
Restauration d’un environnement en conservant les exceptions levées (C99) |
Nombres complexes[modifier | modifier le code]
C99 ajoute un nouveau mot-clé _Complexe (et la macro complexe pour plus de simplicité) qui peut gérer des nombres complexes. Ceux-ci se présentent sous la forme de deux nombres à virgule flottante.
C ++ ne fournit pas de compatibilité descendante pour les nombres complexes, mais la classe std :: complexe.
Toutes les opérations sur les nombres complexes sont définies dans l’en-tête complex.h. Suffixes pour les fonctions sur des nombres entiers F et l sont les variantes de la fonction que chaque type utilise Complexe de flotteurs et long double complexe.
une fonction | la description | |
---|---|---|
Opérations de base | cabs
|
Calculer la valeur absolue (C99) |
carg
|
Calculer l’argument (C99) | |
cimag
|
renvoie la partie imaginaire d’un nombre complexe (C99) | |
creal
|
Renvoie le Partie réelle un nombre complexe (C99) | |
conj
|
Renvoie le conjuguer un nombre complexe (C99) | |
cproj
|
Calculer la projection du nombre complexe sur la sphère de Riemann (C99) | |
Opérations exponentielles | cexp
|
Calculer l’exponentielle d’un nombre complexe (C99) |
clog
|
calculer ça logarithme un nombre complexe (C99) | |
csqrt
|
calculer ça racine carrée un nombre complexe (C99) | |
cpow
|
calculer ça Puissance un nombre complexe (C99) | |
Opérations trigonométriques | csin
|
Calculer le sinus d’un nombre complexe (C99) |
ccos
|
Calculer le cosinus d’un nombre complexe (C99) | |
ctan
|
Calculer la tangente d’un nombre complexe (C99) | |
casin
|
Calculer l’arc sinus d’un nombre complexe (C99) | |
cacos
|
Calculer l’arc cosinus d’un nombre complexe (C99) | |
catan
|
calculer çaArc tangent un nombre complexe (C99) | |
Opérations hyperboliques | csinh
|
Calculer le sinus hyperbolique d’un nombre complexe (C99) |
ccosh
|
Calculer le cosinus hyperbolique d’un nombre complexe (C99) | |
ctanh
|
calculer ça tangente hyperbolique un nombre complexe (C99) | |
casinh
|
Calculez le sinus hyperbolique d’un nombre complexe (C99). | |
cacosh
|
Calculez l’arc cosinus hyperbolique d’un nombre complexe (C99). | |
catanh
|
Calculez l’arc tangente hyperbolique d’un nombre complexe (C99). |
Génération de nombres aléatoires[modifier | modifier le code]
Entête stdlib.h ((cstdlib en C ++) définit plusieurs fonctions qui peuvent être utilisées pour générer des nombres aléatoires statiques[6].
Sous Linux et FreeBSD, fonctions mathématiques (telles que déclarées dans math.h) sont regroupés séparément dans la bibliothèque mathématique libm. Ainsi, lorsqu’une de ces fonctions est utilisée, la directive -lm doit être ajouté à l’éditeur de liens.
- (dans le) Spécification ISO / CEI 9899: 1999 ((Lire en ligne), p. 212, § 7.12.
- (dans le) Stephen Parlez, C-Primer plus: contient un index, Sams Publishing, 959 p. ((ISBN 0-672-32696-5), Annexe B, Section V: La bibliothèque standard ANSI C avec des ajouts C99.
- (dans le) Spécification ISO / CEI 9899: 1999 ((Lire en ligne), p. 212, § 7.12.
- Stephen Parlez, C-Primer plus: contient un index, Sams Publishing, 959 p. ((ISBN 0-672-32696-5), Annexe B, Section VIII: Améliorations du calcul numérique C99.
- (dans le) Stephen Parlez, C-Primer plus: contient un index, Sams Publishing, 959 p. ((ISBN 0-672-32696-5), Annexe B, Section VIII: Améliorations du calcul numérique C99.
- « La bibliothèque GNU C – ISO aléatoire » (consulté le 18 juillet 2018).