Namespaces
Variants

std:: isnormal

From cppreference.net
Common mathematical functions
Nearest integer floating point operations
(C++11)
(C++11)
(C++11) (C++11) (C++11)
Floating point manipulation functions
(C++11) (C++11)
(C++11)
(C++11)
Classification and comparison
(C++11)
(C++11)
(C++11)
(C++11)
isnormal
(C++11)
(C++11)
Types
(C++11)
(C++11)
(C++11)
Macro constants
Definido en el encabezado <cmath>
(1)
bool isnormal ( float num ) ;

bool isnormal ( double num ) ;

bool isnormal ( long double num ) ;
(desde C++11)
(hasta C++23)
constexpr bool isnormal ( /*floating-point-type*/ num ) ;
(desde C++23)
Sobrecarga SIMD (desde C++26)
Definido en el encabezado <simd>
template < /*math-floating-point*/ V >

constexpr typename /*deduced-simd-t*/ < V > :: mask_type

isnormal ( const V & v_num ) ;
(S) (desde C++26)
Definido en el encabezado <cmath>
template < class Integer >
bool isnormal ( Integer num ) ;
(A) (desde C++11)
(constexpr desde C++23)
1) Determina si el número de punto flotante dado num es normal, es decir, no es cero, subnormal, infinito, ni NaN. La biblioteca proporciona sobrecargas para todos los tipos de punto flotante sin calificación cv como el tipo del parámetro num . (since C++23)
S) La sobrecarga SIMD realiza un std::isnormal elemento por elemento en v_num .
(Consulte math-floating-point y deduced-simd-t para sus definiciones.)
(desde C++26)
A) Se proporcionan sobrecargas adicionales para todos los tipos enteros, los cuales son tratados como double .

Contenidos

Parámetros

num - valor de punto flotante o entero
v_num - un objeto de datos paralelos de especialización std::basic_simd donde su tipo de elemento es un tipo de punto flotante

Valor de retorno

1) true si num es normal, false en caso contrario.
S) Un objeto máscara de datos paralelos donde el i th elemento es igual a true si v_num [ i ] es normal o false en caso contrario para todo i en el rango [ 0 , v_num. size ( ) ) .

Notas

Las sobrecargas adicionales no requieren ser proporcionadas exactamente como (A) . Solo necesitan ser suficientes para garantizar que para su argumento num de tipo entero, std :: isnormal ( num ) tenga el mismo efecto que std :: isnormal ( static_cast < double > ( num ) ) .

Ejemplo

#include <cfloat>
#include <cmath>
#include <iostream>
int main()
{
    std::cout << std::boolalpha
              << "isnormal(NaN) = " << std::isnormal(NAN) << '\n'
              << "isnormal(Inf) = " << std::isnormal(INFINITY) << '\n'
              << "isnormal(0.0) = " << std::isnormal(0.0) << '\n'
              << "isnormal(DBL_MIN/2.0) = " << std::isnormal(DBL_MIN / 2.0) << '\n'
              << "isnormal(1.0) = " << std::isnormal(1.0) << '\n';
}

Salida:

isnormal(NaN) = false
isnormal(Inf) = false
isnormal(0.0) = false
isnormal(DBL_MIN/2.0) = false
isnormal(1.0) = true

Véase también

(C++11)
clasifica el valor de punto flotante dado
(función)
(C++11)
verifica si el número dado tiene valor finito
(función)
(C++11)
verifica si el número dado es infinito
(función)
(C++11)
verifica si el número dado es NaN
(función)
Documentación C para isnormal