Namespaces
Variants

Floating-point extensions part 1: binary floating-point arithmetic

From cppreference.net

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>
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)
redondear a entero con signo usando la dirección de redondeo especificada
(función)
redondear a entero sin signo usando la dirección de redondeo especificada
(función)
redondear a entero con signo usando la dirección de redondeo especificada, reportando inexactitud
(función)
redondear a entero sin signo usando la dirección de redondeo especificada, reportando inexactitud
(función)
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)
devuelve el valor de su argumento de magnitud máxima
(función)
devuelve el valor de su argumento de magnitud mínima
(función)
devuelve el siguiente valor representable mayor en punto flotante
(función)
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)
ordena dos valores de punto flotante usando la relación de orden total ISO 60559
(función)
ordena las magnitudes de dos valores de punto flotante usando la relación de orden total ISO 60559
(función)
obtiene la codificación binaria canónica ISO 60559 del valor de punto flotante dado
(función)
extrae el payload del valor NaN dado
(función)
crea un NaN silencioso con la carga útil especificada
(función)
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.