Article de reference

fonctions mathématiques en C

Environnement à virgule flottante C99 ajoute plusieurs fonctions et types pour un contrôle précis de l'environnement à virgule flottante. Ces fonctions permettent de contrôler d...

Environnement à virgule flottante

C99 ajoute plusieurs fonctions et types pour un contrôle précis de l'environnement à virgule flottante. Ces fonctions permettent de contrôler divers paramètres affectant les calculs à virgule flottante, comme le mode d'arrondi, les conditions de déclenchement des exceptions, la mise à zéro des nombres, etc. Les fonctions et types de l'environnement à virgule flottante sont définis dans <fenv.h>l'en-tête ( <cfenv>en C++ ).

nombres complexes

C99 introduit un nouveau _Complexmot-clé (et complexune macro pratique ; disponible uniquement si l’ <complex.h>en-tête est inclus) qui prend en charge les nombres complexes. Tout type à virgule flottante peut être modifié avec `complex` complex, et est alors défini comme une paire de nombres à virgule flottante. Notez que C99 et C++ n’implémentent pas les nombres complexes de manière compatible ; C++ propose plutôt la classe `complex` .std::complex

Toutes les opérations sur les nombres complexes sont définies dans l' <complex.h>en-tête. Comme pour les fonctions à valeurs réelles, le suffixe «f oul » indique la variante float complex« ou » long double complexde la fonction.

Quelques fonctions plus complexes sont « réservées pour une utilisation future dans C99 ». Les implémentations sont fournies par des projets open-source qui ne font pas partie de la bibliothèque standard.

Fonctions génériques de type

L'en-tête <stdlib.h>( <cstdlib>en C++) définit plusieurs fonctions qui peuvent être utilisées pour la génération de nombres statistiquement aléatoires.

La arc4randomfamille de fonctions de nombres aléatoires n'est pas définie dans la norme POSIX, mais on la retrouve dans certaines libcimplémentations courantes. Elle désignait autrefois le générateur de flux de clés d'une version divulguée du chiffrement RC4 (d'où l'expression « un prétendu RC4 »), mais différents algorithmes, généralement issus d'autres chiffrements comme ChaCha20 , ont depuis été implémentés sous cette même appellation.

La qualité de l'aléatoire générée par `f` randest généralement trop faible pour être considérée comme statistiquement aléatoire, et elle nécessite un initialisation explicite. Il est généralement conseillé d'utiliser `f` arc4randomplutôt que `g` randlorsque cela est possible. Certaines bibliothèques C implémentent rand`f` arc4random_uniformen interne.

Fonctions spéciales

À partir de C++17 , C++ introduit des fonctions spéciales dans l' <cmath>en-tête.

Mises en œuvre

Sous les systèmes POSIX comme Linux et BSD , les fonctions mathématiques (telles que déclarées dans `math.php` <math.h>) sont regroupées séparément dans la bibliothèque mathématique . Par conséquent, si l'une de ces fonctions est utilisée, l'éditeur de liens doit recevoir la directive `math.php` . Il existe différentes implémentations, notamment :libm-lmlibm

  • est une version des fonctions mathématiques C/C++ écrite pour C++ CORE-MATH , correctement arrondi pour la simple et la double précision.
  • Les bibliothèques mathématiques SIMD (vectorisées) comprennent SLEEF , Yeppp! le 14 juillet 2020 sur la Wayback Machine ) et la VCL d' Agner Fog , ainsi que quelques bibliothèques propriétaires comme SVML et DirectXMath.
  • Plus d articles de Worldlex Wiki

    Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

    Explorer l index