VirtualBox

Changeset 96222 in vbox for trunk/include


Ignore:
Timestamp:
Aug 15, 2022 1:53:49 PM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
153033
Message:

iprt/types.h,strtonum.cpp: QNAN values does not need to have bit zero set as they have the relevant highest bit set. bugref:10261

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/types.h

    r96192 r96222  
    997997#define RTFLOAT32U_INIT_SNAN_EX(a_fSign, a_uVal)    RTFLOAT32U_INIT((a_fSign), (a_uVal) ? (a_uVal) : 1, RTFLOAT32U_EXP_MAX)
    998998#define RTFLOAT32U_INIT_SIGNALLING_NAN(a_fSign)     RTFLOAT32U_INIT_SNAN(a_fSign)
    999 #define RTFLOAT32U_INIT_QNAN(a_fSign)               RTFLOAT32U_INIT((a_fSign), 1 | RT_BIT_32(RTFLOAT32U_FRACTION_BITS - 1), RTFLOAT32U_EXP_MAX)
    1000 #define RTFLOAT32U_INIT_QNAN_EX(a_fSign, a_uVal)    RTFLOAT32U_INIT((a_fSign), ((a_uVal) ? (a_uVal) : 1) | RT_BIT_32(RTFLOAT32U_FRACTION_BITS - 1), RTFLOAT32U_EXP_MAX)
     999#define RTFLOAT32U_INIT_QNAN(a_fSign)               RTFLOAT32U_INIT((a_fSign), RT_BIT_32(RTFLOAT32U_FRACTION_BITS - 1), RTFLOAT32U_EXP_MAX)
     1000#define RTFLOAT32U_INIT_QNAN_EX(a_fSign, a_uVal)    RTFLOAT32U_INIT((a_fSign), RT_BIT_32(RTFLOAT32U_FRACTION_BITS - 1) | (a_uVal), RTFLOAT32U_EXP_MAX)
    10011001#define RTFLOAT32U_INIT_QUIET_NAN(a_fSign)          RTFLOAT32U_INIT_QNAN(a_fSign)
    10021002#define RTFLOAT32U_INIT_NAN_EX(a_fQuiet, a_fSign, a_uVal) \
    10031003    RTFLOAT32U_INIT((a_fSign), \
    1004                     ((a_uVal) ? (a_uVal) : 1) | ((a_fQuiet) ? RT_BIT_32(RTFLOAT32U_FRACTION_BITS - 1) : 0), \
     1004                    ((a_uVal) || (a_fQuiet) ? (a_uVal) : 1) | ((a_fQuiet) ? RT_BIT_32(RTFLOAT32U_FRACTION_BITS - 1) : 0), \
    10051005                    RTFLOAT32U_EXP_MAX)
    10061006
     
    11181118#define RTFLOAT64U_INIT_SNAN_EX(a_fSign, a_uVal)    RTFLOAT64U_INIT((a_fSign), (a_uVal) ? (a_uVal) : UINT64_C(1), RTFLOAT64U_EXP_MAX)
    11191119#define RTFLOAT64U_INIT_SIGNALLING_NAN(a_fSign)     RTFLOAT64U_INIT_SNAN(a_fSign)
    1120 #define RTFLOAT64U_INIT_QNAN(a_fSign)               RTFLOAT64U_INIT((a_fSign), UINT64_C(1) | RT_BIT_64(RTFLOAT64U_FRACTION_BITS - 1), RTFLOAT64U_EXP_MAX)
    1121 #define RTFLOAT64U_INIT_QNAN_EX(a_fSign, a_uVal)    RTFLOAT64U_INIT((a_fSign), ((a_uVal) ? (a_uVal) : UINT64_C(1)) | RT_BIT_64(RTFLOAT64U_FRACTION_BITS - 1), RTFLOAT64U_EXP_MAX)
     1120#define RTFLOAT64U_INIT_QNAN(a_fSign)               RTFLOAT64U_INIT((a_fSign), RT_BIT_64(RTFLOAT64U_FRACTION_BITS - 1), RTFLOAT64U_EXP_MAX)
     1121#define RTFLOAT64U_INIT_QNAN_EX(a_fSign, a_uVal)    RTFLOAT64U_INIT((a_fSign), RT_BIT_64(RTFLOAT64U_FRACTION_BITS - 1) | (a_uVal), RTFLOAT64U_EXP_MAX)
    11221122#define RTFLOAT64U_INIT_QUIET_NAN(a_fSign)          RTFLOAT64U_INIT_QNAN(a_fSign)
    11231123#define RTFLOAT64U_INIT_NAN_EX(a_fQuiet, a_fSign, a_uVal) \
    11241124    RTFLOAT64U_INIT((a_fSign), \
    1125                     ((a_uVal) ? (a_uVal) : UINT64_C(1)) | ((a_fQuiet) ? RT_BIT_64(RTFLOAT64U_FRACTION_BITS - 1) : UINT64_C(0)), \
     1125                    ((a_uVal) || (a_fQuiet) ? (a_uVal) : UINT64_C(1)) | ((a_fQuiet) ? RT_BIT_64(RTFLOAT64U_FRACTION_BITS - 1) : UINT64_C(0)), \
    11261126                    RTFLOAT64U_EXP_MAX)
    11271127
     
    12531253# define RTFLOAT80U_INIT_SNAN_EX(a_fSign, a_uVal)   RTFLOAT80U_INIT((a_fSign), RT_BIT_64(63) | (a_uVal), RTFLOAT80U_EXP_MAX)
    12541254# define RTFLOAT80U_INIT_QUIET_NAN(a_fSign)         RTFLOAT80U_INIT_QNAN((a_fSign))
    1255 # define RTFLOAT80U_INIT_QNAN(a_fSign)              RTFLOAT80U_INIT((a_fSign), RT_BIT_64(63) | RT_BIT_64(62) | 1, RTFLOAT80U_EXP_MAX)
     1255# define RTFLOAT80U_INIT_QNAN(a_fSign)              RTFLOAT80U_INIT((a_fSign), RT_BIT_64(63) | RT_BIT_64(62), RTFLOAT80U_EXP_MAX)
    12561256# define RTFLOAT80U_INIT_QNAN_EX(a_fSign, a_uVal)   RTFLOAT80U_INIT((a_fSign), RT_BIT_64(63) | RT_BIT_64(62) | (a_uVal), RTFLOAT80U_EXP_MAX)
    12571257#define RTFLOAT80U_INIT_NAN_EX(a_fQuiet, a_fSign, a_uVal) \
    12581258    RTFLOAT80U_INIT((a_fSign), \
    1259                     ((a_uVal) ? (a_uVal) : UINT64_C(1)) | ((a_fQuiet) ? RT_BIT_64(63) | RT_BIT_64(62) : RT_BIT_64(63)), \
     1259                    ((a_uVal) || (a_fQuiet) ? (a_uVal) : UINT64_C(1)) | ((a_fQuiet) ? RT_BIT_64(63) | RT_BIT_64(62) : RT_BIT_64(63)), \
    12601260                    RTFLOAT80U_EXP_MAX)
    12611261# define RTFLOAT80U_INIT_INDEFINITE(a_fSign)        RTFLOAT80U_INIT((a_fSign), RT_BIT_64(63) | RT_BIT_64(62), RTFLOAT80U_EXP_MAX)
     
    15901590#define RTFLOAT128U_INIT_SIGNALLING_NAN(a_fSign)     RTFLOAT128U_INIT_SNAN(a_fSign)
    15911591#define RTFLOAT128U_INIT_QNAN(a_fSign) \
    1592     RTFLOAT128U_INIT((a_fSign), RT_BIT_64(RTFLOAT128U_FRACTION_BITS - 1 - 64), UINT64_C(1), RTFLOAT128U_EXP_MAX)
     1592    RTFLOAT128U_INIT((a_fSign), RT_BIT_64(RTFLOAT128U_FRACTION_BITS - 1 - 64), UINT64_C(0), RTFLOAT128U_EXP_MAX)
    15931593#define RTFLOAT128U_INIT_QNAN_EX(a_fSign, a_uValHi, a_uValLo) \
    1594     RTFLOAT128U_INIT((a_fSign), RT_BIT_64(RTFLOAT128U_FRACTION_BITS - 1 - 64) | (a_uValHi), \
    1595                      (a_uValLo) || (a_uValHi) ? (a_uValLo) : UINT64_C(1), RTFLOAT128U_EXP_MAX)
     1594    RTFLOAT128U_INIT((a_fSign), RT_BIT_64(RTFLOAT128U_FRACTION_BITS - 1 - 64) | (a_uValHi), (a_uValLo), RTFLOAT128U_EXP_MAX)
    15961595#define RTFLOAT128U_INIT_QUIET_NAN(a_fSign)          RTFLOAT128U_INIT_QNAN(a_fSign)
    15971596#define RTFLOAT128U_INIT_NAN_EX(a_fQuiet, a_fSign, a_uValHi, a_uValLo) \
    15981597    RTFLOAT128U_INIT((a_fSign), \
    15991598                     ((a_fQuiet) ? RT_BIT_64(RTFLOAT128U_FRACTION_BITS - 1 - 64) : 0) | (a_uValHi), \
    1600                      (a_uValLo) || (a_uValHi) || (a_fQuiet) /*?*/ ? (a_uValLo) : UINT64_C(1), \
     1599                     (a_uValLo) || (a_uValHi) || (a_fQuiet) ? (a_uValLo) : UINT64_C(1), \
    16011600                     RTFLOAT128U_EXP_MAX)
    16021601
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette