nan
double nan(const char *);
#define NAN_FUNCTION nan
__weak_reference(nan, nanl);
lua_pushnumber(L, nan(str));
snan_bit equ 6 signalling nan
signan_bit equ 6 signalling nan bit in mantissa
snan_bit equ 6 signalling nan
signan_bit equ 6 signalling nan bit in mantissa
volatile long double nan = NAN;
ATF_CHECK_MSG(isnan(nan), "nan=%La [0x%s]", nan, formatbitsl(&nan));
(void)issignalling(nan); /* could be quiet or signalling */
ATF_CHECK_MSG(!isinf(nan), "nan=%La [0x%s]", nan, formatbitsl(&nan));
ATF_CHECK_MSG(!isnormal(nan), "nan=%La [0x%s]", nan,
formatbitsl(&nan));
ATF_CHECK_MSG(!issubnormal(nan), "nan=%La [0x%s]", nan,
formatbitsl(&nan));
ATF_CHECK_MSG(!iszero(nan), "nan=%La [0x%s]", nan, formatbitsl(&nan));
ATF_CHECK_EQ_MSG(fpclassify(nan), FP_NAN,
nan, formatbitsl(&nan), fpclassify(nan), FP_NAN);
makequietsignallingl(&nan, NAN, LDBL_QNANBITH);
ATF_CHECK_MSG(isnan(nan), "nan=%La [0x%s]", nan, formatbitsl(&nan));
ATF_CHECK_MSG(!issignalling(nan), "nan=%La [0x%s]", nan,
formatbitsl(&nan));
ATF_CHECK_MSG(!isinf(nan), "nan=%La [0x%s]", nan, formatbitsl(&nan));
ATF_CHECK_MSG(!isnormal(nan), "nan=%La [0x%s]", nan,
formatbitsl(&nan));
ATF_CHECK_MSG(!issubnormal(nan), "nan=%La [0x%s]", nan,
formatbitsl(&nan));
ATF_CHECK_MSG(!iszero(nan), "nan=%La [0x%s]", nan, formatbitsl(&nan));
ATF_CHECK_EQ_MSG(fpclassify(nan), FP_NAN,
nan, formatbitsl(&nan), fpclassify(nan), FP_NAN);
volatile long double y = nan + nan;
makequietsignallingl(&nan, NAN, LDBL_SNANBITH);
ATF_CHECK_MSG(isnan(nan), "nan=%La [0x%s]", nan, formatbitsl(&nan));
ATF_CHECK_MSG(issignalling(nan), "nan=%La [0x%s]", nan,
formatbitsl(&nan));
ATF_CHECK_MSG(!isinf(nan), "nan=%La [0x%s]", nan, formatbitsl(&nan));
ATF_CHECK_MSG(!isnormal(nan), "nan=%La [0x%s]", nan,
formatbitsl(&nan));
ATF_CHECK_MSG(!issubnormal(nan), "nan=%La [0x%s]", nan,
formatbitsl(&nan));
ATF_CHECK_MSG(!iszero(nan), "nan=%La [0x%s]", nan, formatbitsl(&nan));
ATF_CHECK_EQ_MSG(fpclassify(nan), FP_NAN,
nan, formatbitsl(&nan), fpclassify(nan), FP_NAN);
volatile long double z = nan + nan;
nan, formatbitsl(&nan));
volatile float nan = NAN;
ATF_CHECK_MSG(isnan(nan), "nan=%a [0x%s]", nan, formatbitsf(&nan));
(void)issignalling(nan); /* could be quiet or signalling */
ATF_CHECK_MSG(!isinf(nan), "nan=%a [0x%s]", nan, formatbitsf(&nan));
ATF_CHECK_MSG(!isnormal(nan), "nan=%a [0x%s]", nan, formatbitsf(&nan));
ATF_CHECK_MSG(!issubnormal(nan), "nan=%a [0x%s]", nan,
formatbitsf(&nan));
ATF_CHECK_MSG(!iszero(nan), "nan=%a [0x%s]", nan, formatbitsf(&nan));
ATF_CHECK_EQ_MSG(fpclassify(nan), FP_NAN,
nan, formatbitsf(&nan), fpclassify(nan), FP_NAN);
makequietsignallingf(&nan, NAN, FLT_QNANBIT);
ATF_CHECK_MSG(isnan(nan), "nan=%a [0x%s]", nan, formatbitsf(&nan));
ATF_CHECK_MSG(!issignalling(nan), "nan=%a [0x%s]", nan,
formatbitsf(&nan));
ATF_CHECK_MSG(!isinf(nan), "nan=%a [0x%s]", nan, formatbitsf(&nan));
ATF_CHECK_MSG(!isnormal(nan), "nan=%a [0x%s]", nan, formatbitsf(&nan));
ATF_CHECK_MSG(!issubnormal(nan), "nan=%a [0x%s]", nan,
formatbitsf(&nan));
ATF_CHECK_MSG(!iszero(nan), "nan=%a [0x%s]", nan, formatbitsf(&nan));
ATF_CHECK_EQ_MSG(fpclassify(nan), FP_NAN,
nan, formatbitsf(&nan), fpclassify(nan), FP_NAN);
volatile float y = nan + nan;
makequietsignallingf(&nan, NAN, FLT_SNANBIT);
ATF_CHECK_MSG(isnan(nan), "nan=%a [0x%s]", nan, formatbitsf(&nan));
ATF_CHECK_MSG(issignalling(nan), "nan=%a [0x%s]", nan,
formatbitsf(&nan));
ATF_CHECK_MSG(!isinf(nan), "nan=%a [0x%s]", nan, formatbitsf(&nan));
ATF_CHECK_MSG(!isnormal(nan), "nan=%a [0x%s]", nan, formatbitsf(&nan));
ATF_CHECK_MSG(!issubnormal(nan), "nan=%a [0x%s]", nan,
formatbitsf(&nan));
ATF_CHECK_MSG(!iszero(nan), "nan=%a [0x%s]", nan, formatbitsf(&nan));
ATF_CHECK_EQ_MSG(fpclassify(nan), FP_NAN,
nan, formatbitsf(&nan), fpclassify(nan), FP_NAN);
volatile float z = nan + nan;
nan, formatbitsf(&nan));
volatile double nan = NAN;
ATF_CHECK_MSG(isnan(nan), "nan=%a [0x%s]", nan, formatbits(&nan));
(void)issignalling(nan); /* could be quiet or signalling */
ATF_CHECK_MSG(!isinf(nan), "nan=%a [0x%s]", nan, formatbits(&nan));
ATF_CHECK_MSG(!isnormal(nan), "nan=%a [0x%s]", nan, formatbits(&nan));
ATF_CHECK_MSG(!issubnormal(nan), "nan=%a [0x%s]", nan,
formatbits(&nan));
ATF_CHECK_MSG(!iszero(nan), "nan=%a [0x%s]", nan, formatbits(&nan));
ATF_CHECK_EQ_MSG(fpclassify(nan), FP_NAN,
nan, formatbits(&nan), fpclassify(nan), FP_NAN);
makequietsignalling(&nan, NAN, DBL_QNANBIT);
ATF_CHECK_MSG(isnan(nan), "nan=%a [0x%s]", nan, formatbits(&nan));
ATF_CHECK_MSG(!issignalling(nan), "nan=%a [0x%s]", nan,
formatbits(&nan));
ATF_CHECK_MSG(!isinf(nan), "nan=%a [0x%s]", nan, formatbits(&nan));
ATF_CHECK_MSG(!isnormal(nan), "nan=%a [0x%s]", nan, formatbits(&nan));
ATF_CHECK_MSG(!issubnormal(nan), "nan=%a [0x%s]", nan,
formatbits(&nan));
ATF_CHECK_MSG(!iszero(nan), "nan=%a [0x%s]", nan, formatbits(&nan));
ATF_CHECK_EQ_MSG(fpclassify(nan), FP_NAN,
nan, formatbits(&nan), fpclassify(nan), FP_NAN);
volatile double y = nan + nan;
makequietsignalling(&nan, NAN, DBL_SNANBIT);
ATF_CHECK_MSG(isnan(nan), "nan=%a [0x%s]", nan, formatbits(&nan));
ATF_CHECK_MSG(issignalling(nan), "nan=%a [0x%s]", nan,
formatbits(&nan));
ATF_CHECK_MSG(!isinf(nan), "nan=%a [0x%s]", nan, formatbits(&nan));
ATF_CHECK_MSG(!isnormal(nan), "nan=%a [0x%s]", nan, formatbits(&nan));
ATF_CHECK_MSG(!issubnormal(nan), "nan=%a [0x%s]", nan,
formatbits(&nan));
ATF_CHECK_MSG(!iszero(nan), "nan=%a [0x%s]", nan, formatbits(&nan));
ATF_CHECK_EQ_MSG(fpclassify(nan), FP_NAN,
nan, formatbits(&nan), fpclassify(nan), FP_NAN);
volatile double z = nan + nan;
nan, formatbits(&nan));
TEST(nan(""));