copysign, copysignf, copysignl
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definido en el encabezado
<math.h>
|
||
|
float
copysignf
(
float
x,
float
y
)
;
|
(1) | (desde C99) |
|
double
copysign
(
double
x,
double
y
)
;
|
(2) | (desde C99) |
|
long
double
copysignl
(
long
double
x,
long
double
y
)
;
|
(3) | (desde C99) |
|
Definido en el encabezado
<tgmath.h>
|
||
|
#define copysign(x, y)
|
(4) | (desde C99) |
x
y el signo de
y
.
copysignl
es llamado. De lo contrario, si algún argumento tiene tipo entero o tiene tipo
double
,
copysign
es llamado. De lo contrario,
copysignf
es llamado.
Contenidos |
Parámetros
| x, y | - | valores de punto flotante |
Valor de retorno
Si no ocurren errores, se devuelve el valor de punto flotante con la magnitud de
x
y el signo de
y
.
Si
x
es NaN, entonces se devuelve NaN con el signo de
y
.
Si
y
es -0, el resultado es negativo solo si la implementación admite el cero con signo de manera consistente en las operaciones aritméticas.
Manejo de errores
Esta función no está sujeta a ningún error especificado en
math_errhandling
.
Si la implementación soporta aritmética de punto flotante IEEE (IEC 60559),
- El valor retornado es exacto ( FE_INEXACT nunca se activa) e independiente del modo de redondeo actual.
Notas
copysign
es la única forma portátil de manipular el signo de un valor NaN (para examinar el signo de un NaN,
signbit
también puede usarse).
Ejemplo
Salida posible:
copysign(1.0,+2.0) = +1.0 copysign(1.0,-2.0) = -1.0 copysign(INFINITY,-2.0) = -inf copysign(NAN,-2.0) = -nan
Referencias
- Estándar C23 (ISO/IEC 9899:2024):
-
- 7.12.11.1 Las funciones copysign (p: TBD)
-
- 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: TBD)
-
- F.10.8.1 Las funciones copysign (p: TBD)
- Estándar C17 (ISO/IEC 9899:2018):
-
- 7.12.11.1 Las funciones copysign (p: TBD)
-
- 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: TBD)
-
- F.10.8.1 Las funciones copysign (p: TBD)
- Estándar C11 (ISO/IEC 9899:2011):
-
- 7.12.11.1 Las funciones copysign (p: 255)
-
- 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: 373-375)
-
- F.10.8.1 Las funciones copysign (p: 529)
- Estándar C99 (ISO/IEC 9899:1999):
-
- 7.12.11.1 Las funciones copysign (p: 236)
-
- 7.22 Matemáticas genéricas de tipo <tgmath.h> (p: 335-337)
-
- F.9.8.1 Las funciones copysign (p: 465)
Véase también
|
(C99)
(C99)
|
calcula el valor absoluto de un valor de punto flotante (
\(\small{|x|}\)
|x|
)
(función) |
|
(C99)
|
verifica si el número dado es negativo
(macro de función) |
|
Documentación de C++
para
copysign
|
|