Floating-point extensions part 1: binary floating-point arithmetic
Extensiones de punto flotante para C - Parte 1: Aritmética binaria de punto flotante, ISO/IEC TS 18661-1:2014, define los siguientes nuevos componentes para la biblioteca estándar de C, según lo recomendado por ISO/IEC/IEEE 60559:2011 (la revisión actual de IEEE-754)
|
__STDC_IEC_60559_BFP__
|
constante entera de tipo
long
y valor
201ymmL
, reemplaza a
__STDC_IEC_559__
(macro constante) |
|
__STDC_IEC_60559_COMPLEX__
|
constante entera de tipo
long
y valor
201ymmL
, reemplaza a
__STDC_IEC_559_COMPLEX__
(constante macro) |
|
Definido en el encabezado
<limits.h>
|
|
|
CHAR_WIDTH SCHAR_WIDTH UCHAR_WIDTH
SHRT_WIDTH USHRT_WIDTH
INT_WIDTH UINT_WIDTH
LONG_WIDTH ULONG_WIDTH
LLONG_WIDTH ULLONG_WIDTH
(FP Ext 1 TS)
|
ancho, en bits, del tipo correspondiente
(constante de macro) |
|
Definido en el encabezado
<float.h>
|
|
|
(FP Ext 1 TS)
|
las conversiones entre todos los tipos de punto flotante binarios soportados y secuencias de caracteres con como máximo CR_DECIMAL_DIG dígitos decimales significativos son correctamente redondeadas (esto es al menos DECIMAL_DIG + 3)
(constante macro) |
|
Definido en el encabezado
<fenv.h>
|
|
|
femode_t
(FP Ext 1 TS)
|
colección de modos de control de punto flotante dinámicos soportados por la implementación, incluyendo el modo de dirección de redondeo dinámico
(typedef) |
|
FE_DFL_MODE
(FP Ext 1 TS)
|
puntero al femode_t predeterminado
(constante macro) |
|
FE_SNANS_ALWAYS_SIGNAL
(FP Ext 1 TS)
|
definida (como constante entera 1) si los argumentos sNaN hacen que las funciones que suprimen qNaNs, como
hypot
o
fmax
, generen FE_INVALID y devuelvan un qNaN
(constante macro) |
|
(FP Ext 1 TS)
|
establece las banderas de excepción de punto flotante especificadas sin causar los efectos secundarios que su activación produciría
(función) |
|
(FP Ext 1 TS)
|
prueba si las banderas dadas están en una representación guardada de las banderas de excepción de punto flotante
(función) |
|
(FP Ext 1 TS)
|
obtiene y establece todos los modos de control de punto flotante dinámicos de la implementación colectivamente
(función) |
|
Definido en el encabezado
<stdint.h>
|
|
|
INTn_WIDTH UINTn_WIDTH
INT_LEASTn_WIDTH UINT_LEASTn_WIDTH
INT_FASTn_WIDTH UINT_FASTn_WIDTH
INTPTR_WIDTH UINTPTR_WIDTH
INTMAX_WIDTH UINTMAX_WIDTH
PTRDIFF_WIDTH
SIG_ATOMIC_WIDTH
SIZE_WIDTH
WCHAR_WIDTH WINT_WIDTH
(FP Ext 1 TS)
|
ancho, en bits, del tipo correspondiente
(constante macro) |
|
Definido en el encabezado
<stdlib.h>
|
|
|
(FP Ext 1 TS)
|
convierte un único número de punto flotante a cadena usando el formato snprintf especificado
(función) |
|
Definido en el encabezado
<math.h>
|
|
|
FP_INT_UPWARD
FP_INT_DOWNWARD
FP_INT_TOWARDZERO
FP_INT_TONEARESTFROMZERO
FP_INT_TONEAREST
(FP Ext 1 TS)
|
dirección de redondeo para las funciones ceil, floor, trunc, round y roundeven, adecuada para usar con la familia de funciones fromfp
(constante macro) |
|
FP_LLOGB0
(FP Ext 1 TS)
|
valor devuelto por
llogb
si el argumento es cero
(constante macro) |
|
FP_LLOGBNAN
(FP Ext 1 TS)
|
valor devuelto por
llogb
si el argumento es NaN
(constante macro) |
|
(FP Ext 1 TS)
|
representa un NaN señalizador para float, double, long double respectivamente
(constante macro) |
|
FP_FAST_FADD FP_FAST_FADDL FP_FAST_DADDL
FP_FAST_FSUB FP_FAST_FSUBL FP_FAST_DSUBL
FP_FAST_FMUL FP_FAST_FMULL FP_FAST_DMULL
FP_FAST_FDIV FP_FAST_FDIVL FP_FAST_DDIVL
FP_FAST_FFMA FP_FAST_FFMAL FP_FAST_DFMAL
FP_FAST_FSQRT FP_FAST_FSQRTL FP_FAST_DSQRTL
(FP Ext 1 TS)
|
si está definida, indica que la función correspondiente se ejecuta más rápido que la función equivalente en un tipo más grande seguida de una conversión al tipo de destino
(constante macro) |
|
iseqsig
(FP Ext 1 TS)
|
(macro de función) |
|
iscanonical
(FP Ext 1 TS)
|
prueba si el valor de punto flotante es canónico
(macro de función) |
|
issignaling
(FP Ext 1 TS)
|
prueba si el valor de punto flotante es un NaN señalizador
(macro de función) |
|
issubnormal
(FP Ext 1 TS)
|
prueba si el valor de punto flotante es subnormal
(macro de función) |
|
iszero
(FP Ext 1 TS)
|
prueba si el valor de punto flotante es un cero (positivo, negativo, sin signo)
(macro de función) |
|
(FP Ext 1 TS)
|
redondear a entero con signo usando la dirección de redondeo especificada
(función) |
|
(FP Ext 1 TS)
|
redondear a entero sin signo usando la dirección de redondeo especificada
(función) |
|
(FP Ext 1 TS)
|
redondear a entero con signo usando la dirección de redondeo especificada, reportando inexactitud
(función) |
|
(FP Ext 1 TS)
|
redondear a entero sin signo usando la dirección de redondeo especificada, reportando inexactitud
(función) |
|
(FP Ext 1 TS)
|
redondea al más cercano, casos intermedios al par
(función) |
|
(FP Ext 1 TS)
|
equivalente a
logb
excepto que el tipo de retorno es
long
(función) |
|
(FP Ext 1 TS)
|
devuelve el valor de su argumento de magnitud máxima
(función) |
|
(FP Ext 1 TS)
|
devuelve el valor de su argumento de magnitud mínima
(función) |
|
(FP Ext 1 TS)
|
devuelve el siguiente valor representable mayor en punto flotante
(función) |
|
(FP Ext 1 TS)
|
devuelve el siguiente valor representable menor en punto flotante
(función) |
|
(FP Ext 1 TS)
|
calcula x+y como si fuera con precisión infinita y redondeado una vez al tipo de destino
(función) |
|
(FP Ext 1 TS)
|
calcula x-y como si fuera con precisión infinita y redondeado una vez al tipo de destino
(función) |
|
(FP Ext 1 TS)
|
calcula x*y como si fuera en precisión infinita y redondeado una vez al tipo de destino
(función) |
|
(FP Ext 1 TS)
|
calcula x/y como si fuera con precisión infinita y redondeado una vez al tipo de destino
(función) |
|
(FP Ext 1 TS)
|
calcula lo mismo que
fma
como si fuera con precisión infinita y redondeado una vez al tipo de destino
(función) |
|
(FP Ext 1 TS)
|
calcula lo mismo que
sqrt
como si tuviera precisión infinita y redondeado una vez al tipo de destino
(función) |
|
(FP Ext 1 TS)
|
ordena dos valores de punto flotante usando la relación de orden total ISO 60559
(función) |
|
(FP Ext 1 TS)
|
ordena las magnitudes de dos valores de punto flotante usando la relación de orden total ISO 60559
(función) |
|
(FP Ext 1 TS)
|
obtiene la codificación binaria canónica ISO 60559 del valor de punto flotante dado
(función) |
|
(FP Ext 1 TS)
|
extrae el payload del valor NaN dado
(función) |
|
(FP Ext 1 TS)
|
crea un NaN silencioso con la carga útil especificada
(función) |
|
(FP Ext 1 TS)
|
crea un NaN señalizador con la carga útil especificada
(función) |
|
Definido en el encabezado
<tgmath.h>
|
|
|
roundeven
(FP Ext 1 TS)
|
sobrecarga genérica de
roundeven
(función) |
|
llogb
(FP Ext 1 TS)
|
sobrecarga genérica de
llogb
(función) |
|
fmaxmag
(FP Ext 1 TS)
|
sobrecarga genérica de
fmaxmag
(función) |
|
fminmag
(FP Ext 1 TS)
|
sobrecarga genérica de
fminmag
(función) |
|
nextup
(FP Ext 1 TS)
|
sobrecarga genérica de
nextup
(función) |
|
nextdown
(FP Ext 1 TS)
|
sobrecarga genérica de
nextdown
(función) |
|
fromfp
(FP Ext 1 TS)
|
sobrecarga genérica de
fromfp
(función) |
|
ufromfp
(FP Ext 1 TS)
|
sobrecarga genérica de
ufromfp
(función) |
|
fromfpx
(FP Ext 1 TS)
|
sobrecarga genérica de
fromfpx
(función) |
|
ufromfpx
(FP Ext 1 TS)
|
sobrecarga genérica de
ufromfpx
(función) |
|
nextdown
(FP Ext 1 TS)
|
sobrecarga genérica de
nextdown
(función) |
|
totalorder
(FP Ext 1 TS)
|
sobrecarga genérica de
totalorder
(función) |
|
totalordermag
(FP Ext 1 TS)
|
sobrecarga genérica de
totalordermag
(función) |
|
fadd
(FP Ext 1 TS)
|
sobrecarga genérica de
fadd
(función) |
|
dadd
(FP Ext 1 TS)
|
sobrecarga genérica de
dadd
(función) |
|
fsub
(FP Ext 1 TS)
|
sobrecarga genérica de
fsub
(función) |
|
dsub
(FP Ext 1 TS)
|
sobrecarga genérica de
dsub
(función) |
|
fmul
(FP Ext 1 TS)
|
sobrecarga genérica de
fmul
(función) |
|
dmul
(FP Ext 1 TS)
|
sobrecarga genérica de
dmul
(función) |
|
fdiv
(FP Ext 1 TS)
|
sobrecarga genérica de
fdiv
(función) |
|
ddiv
(FP Ext 1 TS)
|
sobrecarga genérica de
ddiv
(función) |
|
ffma
(FP Ext 1 TS)
|
sobrecarga genérica de
ffma
(función) |
|
dfma
(FP Ext 1 TS)
|
sobrecarga genérica de
dfma
(función) |
|
fsqrt
(FP Ext 1 TS)
|
sobrecarga genérica de
fsqrt
(función) |
|
dsqrt
(FP Ext 1 TS)
|
sobrecarga genérica de
dsqrt
(función) |
Notas
Las macros estándar de C __STDC_IEC_559__ y __STDC_IEC_559_COMPLEX__ quedan obsoletas por esta especificación técnica.
Todas las funciones y macros añadidas a la biblioteca C por esta extensión solo se declaran si una macro __STDC_WANT_IEC_60559_BFP_EXT__ está definida antes de que se incluya el encabezado correspondiente.
Además de adiciones a la biblioteca estándar, ISO/IEC TS 18661-1:2014 realiza varios cambios al lenguaje central, notablemente dividiendo el control de punto flotante entre estático (controlado por el nuevo #pragma STDC FENV_ROUND ), y dinámico (controlado por fesetround ). La mayoría de las funciones math.h respetan el modo de redondeo estático, si está establecido, por encima del modo de redondeo dinámico.
|
Esta sección está incompleta
Razón: ¿agregar a la página de pragma o describir el pragma completamente aquí? |