Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/posix/include/posix/float.h

    ra3da2b2 r68bacce  
    3636#define POSIX_FLOAT_H_
    3737
    38 /* Empty. Just to satisfy preprocessor. */
     38/* Rouding direction -1 - unknown */
     39#define FLT_ROUNDS (-1)
     40
     41/* define some standard C constants in terms of GCC built-ins */
     42#ifdef __GNUC__
     43        #undef DBL_MANT_DIG
     44        #define DBL_MANT_DIG __DBL_MANT_DIG__
     45        #undef DBL_MIN_EXP
     46        #define DBL_MIN_EXP __DBL_MIN_EXP__
     47        #undef DBL_MAX_EXP
     48        #define DBL_MAX_EXP __DBL_MAX_EXP__
     49        #undef DBL_MAX
     50        #define DBL_MAX __DBL_MAX__
     51        #undef DBL_MAX_10_EXP
     52        #define DBL_MAX_10_EXP __DBL_MAX_10_EXP__
     53        #undef DBL_MIN_10_EXP
     54        #define DBL_MIN_10_EXP __DBL_MIN_10_EXP__
     55        #undef DBL_MIN
     56        #define DBL_MIN __DBL_MIN__
     57        #undef DBL_DIG
     58        #define DBL_DIG __DBL_DIG__
     59        #undef DBL_EPSILON
     60        #define DBL_EPSILON __DBL_EPSILON__
     61        #undef LDBL_EPSILON
     62        #define LDBL_EPSILON __LDBL_EPSILON__
     63        #undef FLT_RADIX
     64        #define FLT_RADIX __FLT_RADIX__
     65        #undef FLT_MIN
     66        #define FLT_MIN __FLT_MIN__
     67        #undef FLT_MAX
     68        #define FLT_MAX __FLT_MAX__
     69        #undef FLT_EPSILON
     70        #define FLT_EPSILON __FLT_EPSILON__
     71        #undef FLT_MANT_DIG
     72        #define FLT_MANT_DIG __FLT_MANT_DIG__
     73        #undef LDBL_MIN
     74        #define LDBL_MIN __LDBL_MIN__
     75        #undef LDBL_MAX
     76        #define LDBL_MAX __LDBL_MAX__
     77        #undef LDBL_MANT_DIG
     78        #define LDBL_MANT_DIG __LDBL_MANT_DIG__
     79#else
     80/* For something else than GCC, following definitions are provided.
     81 * They are intentionally guarded by the given macro to ensure that anyone
     82 * who wants them states this explicitly.
     83 *
     84 * The values are the ones GCC prints when compiled on i686 Linux.
     85 *
     86 * WARNING: the values are not accurate (especially the long double ones)!
     87 *
     88 */
     89#ifdef FLOAT_H_YES_I_REALLY_WANT_LIMITS
     90/* float limits */
     91#define FLT_MIN 1.1754943508222875079687365372222456778186655567720875215087517062784172594547271728515625e-38
     92#define FLT_MAX 340282346638528859811704183484516925440
     93
     94/* double limits */
     95#define DBL_MIN 2.2250738585072013830902327173324040642192159804623318305533274168872044348139181958542831590125110205640673397310358110051524341615534601088560123853777188211307779935320023304796101474425836360719216e-308
     96#define DBL_MAX 1.7976931348623157081452742373170435679807056752584499659891747680315726078002853876058955863276687817154045895351438246423432132688946418276846754670353751698604991057655128207624549009038932894407587e+308
     97
     98/* long double limits */
     99#define LDBL_MIN 3.3621031431120935062626778173217526025980793448464712401088272298087426993907289670430927063650562228625019066688234732270901114717276781407474941951906317291667263914849985862188944930687409323125832e-4932L
     100#define LDBL_MAX 1.1897314953572317650212638530309702051690633222946242004403237338917370055229707226164102903365288828535456978074955773144274431536702884341981255738537436786735932007069732632019159182829615243655295e+4932L
     101
     102/* epsilons */
     103#define FLT_EPSILON 1.1920928955078125e-07
     104#define DBL_EPSILON 2.220446049250313080847263336181640625e-16
     105#define LDBL_EPSILON 1.08420217248550443400745280086994171142578125e-19L
     106
     107/* float radix */
     108#define FLT_RADIX 2
     109
     110/* mantisa */
     111#define FLT_MANT_DIG 24
     112#define DBL_MANT_DIG 53
     113#define LDBL_MANT_DIG 64
     114
     115/* exponents */
     116#define DBL_MIN_EXP -1021
     117#define DBL_MAX_EXP 1024
     118
     119#endif
     120
     121#endif /* __GNUC__ */
    39122
    40123#endif /* POSIX_FLOAT_H_ */
Note: See TracChangeset for help on using the changeset viewer.