Partager via


Primitives à virgule flottante

Fonctions primitives spécifiques à Microsoft utilisées pour implémenter certaines fonctions de bibliothèque de runtime C standard (CRT). Ils sont documentés ici pour l’exhaustivité, mais ne sont pas recommandés pour une utilisation. Certaines de ces fonctions sont notées comme inutilisées, car elles sont connues pour avoir des problèmes de précision, de gestion des exceptions et de conformité au comportement IEEE-754. Elles existent dans la bibliothèque uniquement pour la compatibilité descendante. Pour un comportement correct, la portabilité et l’adhésion aux normes, préférez les fonctions à virgule flottante standard sur ces fonctions.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

_dclass, _ldclass, _fdclass

Syntaxe

short __cdecl _dclass(double x);
short __cdecl _ldclass(long double x);
short __cdecl _fdclass(float x);

Paramètres

x
Argument de fonction à virgule flottante.

Notes

Ces primitives à virgule flottante implémentent les versions C de la macro fpclassify CRT pour les types à virgule flottante. La classification de l’argument x est retournée sous la forme d’une de ces constantes, définie dans math.h :

Value Description
FP_NAN NaN silencieux, signalant ou indéterminé
FP_INFINITE Infini positif ou négatif
FP_NORMAL Valeur non nulle normalisée positive ou négative
FP_SUBNORMAL Valeur subnormale positive ou négative (dénormalisée)
FP_ZERO Valeur nulle positive ou négative

Pour plus de détails, vous pouvez utiliser les fonctions spécifiques _fpclassf à _fpclassMicrosoft. Utilisez la macro ou la fpclassify fonction pour la portabilité.

_dsign, _ldsign, _fdsign

Syntaxe

int __cdecl _dsign(double x);
int __cdecl _ldsign(long double x);
int __cdecl _fdsign(float x);

Paramètres

x
Argument de fonction à virgule flottante.

Notes

Ces primitives à virgule flottante implémentent la macro ou la signbit fonction dans le CRT. Ils retournent une valeur non nulle si le bit de signe est défini dans le significand (mantissa) de l’argument x. Sinon, ils retournent 0 si le bit de signe n’est pas défini.

_dpcomp, _ldpcomp, _fdpcomp

Syntaxe

int __cdecl _dpcomp(double x, double y);
int __cdecl _ldpcomp(long double x, long double y);
int __cdecl _fdpcomp(float x, float y);

Paramètres

x, y
Arguments de fonction à virgule flottante.

Notes

Ces primitives à virgule flottante prennent deux arguments et xyretournent une valeur qui montre leur relation d’ordre, exprimée au niveau du bit ou de ces constantes, définies dans math.h :

Value Description
_FP_LT x peut être considéré comme inférieur à y
_FP_EQ x peut être considéré comme égal à y
_FP_GT x peut être considéré comme supérieur à y

Ces primitives implémentent les isgreaterequalislessgreaterislessislessequalisgreaterfonctions et isunordered macros dans le CRT.

_dtest, _ldtest, _fdtest

Syntaxe

short __cdecl _dtest(double* px);
short __cdecl _ldtest(long double* px);
short __cdecl _fdtest(float* px);

Paramètres

px
Pointeur vers un argument à virgule flottante.

Notes

Ces primitives à virgule flottante implémentent les versions C++ de la fonction fpclassify CRT pour les types à virgule flottante. L’argument x est évalué et la classification est retournée comme l’une de ces constantes, définies dans math.h :

Value Description
FP_NAN NaN silencieux, signalant ou indéterminé
FP_INFINITE Infini positif ou négatif
FP_NORMAL Valeur non nulle normalisée positive ou négative
FP_SUBNORMAL Valeur subnormale positive ou négative (dénormalisée)
FP_ZERO Valeur nulle positive ou négative

Pour plus de détails, vous pouvez utiliser les fonctions spécifiques _fpclassf à _fpclassMicrosoft. Utilisez la fonction pour la fpclassify portabilité.

_d_int, _ld_int, _fd_int

Syntaxe

short __cdecl _d_int(double* px, short exp);
short __cdecl _ld_int(long double* px, short exp);
short __cdecl _fd_int(float* px, short exp);

Paramètres

px
Pointeur vers un argument à virgule flottante.

exp
Exposant en tant que type intégral.

Notes

Ces primitives à virgule flottante prennent un pointeur vers une valeur px à virgule flottante et une valeur expd’exposant, et suppriment la partie fractionnaire de la valeur à virgule flottante sous l’exposant donné, si possible. La valeur retournée est le résultat de fpclassify la valeur d’entrée dans px le cas où il s’agit d’un naN ou d’une infinité, et sur la valeur de sortie dans px le cas contraire.

_dscale, _ldscale, _fdscale

Syntaxe

short __cdecl _dscale(double* px, long exp);
short __cdecl _ldscale(long double* px, long exp);
short __cdecl _fdscale(float* px, long exp);

Paramètres

px
Pointeur vers un argument à virgule flottante.

exp
Exposant en tant que type intégral.

Notes

Ces primitives à virgule flottante prennent un pointeur vers une valeur px à virgule flottante et une valeur expd’exposant, et mettent à l’échelle la valeur par px 2exp, si possible. La valeur retournée est le résultat de fpclassify la valeur d’entrée dans px le cas où il s’agit d’un naN ou d’une infinité, et sur la valeur de sortie dans px le cas contraire. Pour la portabilité, préférez les fonctions , . ldexpfldexplldexp

_dunscale, _ldunscale, _fdunscale

Syntaxe

short __cdecl _dunscale(short* pexp, double* px);
short __cdecl _ldunscale(short* pexp, long double* px);
short __cdecl _fdunscale(short* pexp, float* px);

Paramètres

pexp
Pointeur vers un exposant en tant que type intégral.

px
Pointeur vers un argument à virgule flottante.

Notes

Ces primitives à virgule flottante décomposent la valeur à virgule flottante pointée par px un significand (mantissa) et un exposant, si possible. Le significand est mis à l’échelle de sorte que la valeur absolue soit supérieure ou égale à 0,5 et inférieure à 1,0. L’exposant est la valeur n, où la valeur à virgule flottante d’origine est égale à la valeur significificand mise à l’échelle 2n. Cet exposant n entier est stocké à l’emplacement vers lequel pointe pexp. La valeur retournée est le résultat de la valeur d’entrée fpclassify dans px le cas où il s’agit d’un naN ou d’une infinité, et dans la valeur de sortie sinon. Pour la portabilité, préférez les fonctions , . frexpffrexplfrexp

_dexp, _ldexp, _fdexp

Syntaxe

short __cdecl _dexp(double* px, double y, long exp);
short __cdecl _ldexp(long double* px, long double y, long exp);
short __cdecl _fdexp(float* px, float y, long exp);

Paramètres

y
Argument de fonction à virgule flottante.

px
Pointeur vers un argument à virgule flottante.

exp
Exposant en tant que type intégral.

Notes

Ces primitives à virgule flottante construisent une valeur à virgule flottante dans l’emplacement pointé par px égal à y * 2exp. La valeur retournée est le résultat de fpclassify la valeur d’entrée dans y le cas où il s’agit d’un naN ou d’une infinité, et sur la valeur de sortie dans px le cas contraire. Pour la portabilité, préférez les fonctions , . ldexpfldexplldexp

_dnorm, _fdnorm

Syntaxe

short __cdecl _dnorm(unsigned short* ps);
short __cdecl _fdnorm(unsigned short* ps);

Paramètres

ps
Pointeur vers la représentation au niveau du bit d’une valeur à virgule flottante exprimée sous la forme d’un tableau de unsigned short.

Notes

Ces primitives à virgule flottante normalisent la partie fractionnaire d’une valeur à virgule flottante sous-flux et ajustent la caractéristique, ou l’exposant biaisé, pour qu’elles correspondent. La valeur est passée en tant que représentation au niveau du bit du type à virgule flottante convertie en tableau de unsigned short l’union _double_val_ldouble_valde type , ou _float_val de type-punning union déclarée dans math.h. La valeur de retour est le résultat de la valeur à fpclassify virgule flottante d’entrée s’il s’agit d’un naN ou d’un infini, et de la valeur de sortie dans le cas contraire.

_dpoly, _ldpoly, _fdpoly

Syntaxe

double __cdecl _dpoly(double x, double const* table, int n);
long double __cdecl _ldpoly(long double x, long double const* table, int n);
float __cdecl _fdpoly(float x, _float const* table, int n);

Paramètres

x
Argument de fonction à virgule flottante.

table
Pointeur vers une table de coefficients constants pour un polynomial.

n
Ordre de la polynomiale à évaluer.

Notes

Ces primitives à virgule flottante retournent l’évaluation dans x le polynomial de l’ordre n dont les coefficients sont représentés par les valeurs constantes correspondantes dans table. Par exemple, si table[0] = 3.0, table[1] = 4.0, table[2] = 5.0 et n = 2, il représente le polynomial 5.0x2 + 4.0x + 3.0. Si cette polynomiale est évaluée pour x 2,0, le résultat est 31,0. Ces fonctions ne sont pas utilisées en interne.

_dlog, _dlog, _dlog

Syntaxe

double __cdecl _dlog(double x, int base_flag);
long double __cdecl _ldlog(long double x, int base_flag);
float __cdecl _fdlog(float x, int base_flag);

Paramètres

x
Argument de fonction à virgule flottante.

base_flag
Indicateur qui contrôle la base à utiliser, 0 pour la base e et non zéro pour la base 10.

Notes

Ces primitives à virgule flottante retournent le journal naturel de x (ln(x) ou de loge(x)), quand est base_flag 0. Ils retournent la base de journal 10 de x, ou journal10(x), lorsqu’il base_flag n’est pas égal à zéro. Ces fonctions ne sont pas utilisées en interne. Pour la portabilité, préférez les fonctions log, , logflogl, log10, log10f, et log10l.

_dsin, _ldsin, _fdsin

Syntaxe

double __cdecl _dsin(double x, unsigned int quadrant);
long double __cdecl _ldsin(long double x, unsigned int quadrant);
float __cdecl _fdsin(float x, unsigned int quadrant);

Paramètres

x
Argument de fonction à virgule flottante.

quadrant
Décalage de quadrant de 0, 1, 2 ou 3 à utiliser pour produire sin, cos, , -sinet -cos les résultats.

Notes

Ces primitives à virgule flottante retournent le sinus de x décalage par le quadrant modulo 4. En fait, ils retournent le sinus, le cosinus, le sinus et -cosinus de x quand quadrant modulo 4 est 0, 1, 2 ou 3, respectivement. Ces fonctions ne sont pas utilisées en interne. Pour la portabilité, préférez les fonctions , sinlcoscosfsinfsin, . cosl

Spécifications

En-tête : <math.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Voir aussi

Prise en charge mathématique et à virgule flottante
fpclassify
_fpclass, _fpclassf
isfinite, _finite, _finitef
isinf
isnan, _isnan, _isnanf
isnormal
cos, cosf, cosl
frexp, frexpf, frexpl
ldexp, ldexpf, ldexpl
log, logf, logl, log10, log10f, log10l
sin, sinf, sinl