copysign, copysignf, copysignl
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Défini dans l'en-tête
<math.h>
|
||
|
float
copysignf
(
float
x,
float
y
)
;
|
(1) | (depuis C99) |
|
double
copysign
(
double
x,
double
y
)
;
|
(2) | (depuis C99) |
|
long
double
copysignl
(
long
double
x,
long
double
y
)
;
|
(3) | (depuis C99) |
|
Défini dans l'en-tête
<tgmath.h>
|
||
|
#define copysign(x, y)
|
(4) | (depuis C99) |
x
et le signe de
y
.
copysignl
est appelé. Sinon, si un argument a un type entier ou le type
double
,
copysign
est appelé. Sinon,
copysignf
est appelé.
Table des matières |
Paramètres
| x, y | - | valeurs à virgule flottante |
Valeur de retour
Si aucune erreur ne se produit, la valeur à virgule flottante avec la magnitude de
x
et le signe de
y
est retournée.
Si
x
est NaN, alors NaN avec le signe de
y
est retourné.
Si
y
est -0, le résultat est uniquement négatif si l'implémentation prend en charge le zéro signé de manière cohérente dans les opérations arithmétiques.
Gestion des erreurs
Cette fonction n'est sujette à aucune erreur spécifiée dans
math_errhandling
.
Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559),
- La valeur retournée est exacte ( FE_INEXACT n'est jamais déclenchée) et indépendante du mode d'arrondi actuel.
Notes
copysign
est le seul moyen portable de manipuler le signe d'une valeur NaN (pour examiner le signe d'un NaN,
signbit
peut également être utilisé).
Exemple
Sortie possible :
copysign(1.0,+2.0) = +1.0 copysign(1.0,-2.0) = -1.0 copysign(INFINITY,-2.0) = -inf copysign(NAN,-2.0) = -nan
Références
- Norme C23 (ISO/CEI 9899:2024) :
-
- 7.12.11.1 Les fonctions copysign (p: TBD)
-
- 7.25 Mathématiques génériques <tgmath.h> (p: TBD)
-
- F.10.8.1 Les fonctions copysign (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.12.11.1 Les fonctions copysign (p: TBD)
-
- 7.25 Mathématiques génériques <tgmath.h> (p: TBD)
-
- F.10.8.1 Les fonctions copysign (p: TBD)
- Norme C11 (ISO/IEC 9899:2011) :
-
- 7.12.11.1 Les fonctions copysign (p: 255)
-
- 7.25 Mathématiques génériques <tgmath.h> (p: 373-375)
-
- F.10.8.1 Les fonctions copysign (p: 529)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.12.11.1 Les fonctions copysign (p: 236)
-
- 7.22 Mathématiques génériques de type <tgmath.h> (p: 335-337)
-
- F.9.8.1 Les fonctions copysign (p: 465)
Voir aussi
|
(C99)
(C99)
|
calcule la valeur absolue d'une valeur en virgule flottante (
\(\small{|x|}\)
|x|
)
(fonction) |
|
(C99)
|
vérifie si le nombre donné est négatif
(macro de fonction) |
|
Documentation C++
pour
copysign
|
|