209 lines
6.6 KiB
C
209 lines
6.6 KiB
C
|
/*------------------------------------------------------*/
|
||
|
/* SH SERIES C Compiler Ver. 1.0 */
|
||
|
/* Copyright (c) 1992 Hitachi,Ltd. */
|
||
|
/* Licensed material of Hitachi,Ltd. */
|
||
|
/*------------------------------------------------------*/
|
||
|
/*****************************************************************/
|
||
|
/* SPEC ; */
|
||
|
/* NAME = float : */
|
||
|
/* FUNC = limit about float type and double type ; */
|
||
|
/* */
|
||
|
/* */
|
||
|
/* END ; */
|
||
|
/*****************************************************************/
|
||
|
#ifndef _FLOAT
|
||
|
#define _FLOAT
|
||
|
|
||
|
extern const float _FLT_MAX_VAL;
|
||
|
extern const float _FLT_MIN_VAL;
|
||
|
extern const double _DBL_MAX_VAL;
|
||
|
extern const double _DBL_MIN_VAL;
|
||
|
extern const long double _LDBL_MAX_VAL;
|
||
|
extern const long double _LDBL_MIN_VAL;
|
||
|
|
||
|
#ifndef _FPD
|
||
|
|
||
|
#define FLT_RADIX 2
|
||
|
#if defined(_SH2E)|defined(_SH3E)|(defined(_SH4)&!defined(_RON))
|
||
|
#define FLT_ROUNDS 0
|
||
|
#define FLT_GUARD 0
|
||
|
#else
|
||
|
#define FLT_ROUNDS 1
|
||
|
#define FLT_GUARD 1
|
||
|
#endif
|
||
|
#define FLT_NORMALIZE 1
|
||
|
#define FLT_MAX _FLT_MAX_VAL
|
||
|
#define FLT_MIN _FLT_MIN_VAL
|
||
|
#define FLT_MAX_EXP 127
|
||
|
#if defined(_SH2E)|defined(_SH3E)|(defined(_SH4)&!defined(_DON))
|
||
|
#define FLT_MIN_EXP (-126)
|
||
|
#else
|
||
|
#define FLT_MIN_EXP (-149)
|
||
|
#endif
|
||
|
#define FLT_MAX_10_EXP 38
|
||
|
#if defined(_SH2E)|defined(_SH3E)|(defined(_SH4)&!defined(_DON))
|
||
|
#define FLT_MIN_10_EXP (-38)
|
||
|
#else
|
||
|
#define FLT_MIN_10_EXP (-44)
|
||
|
#endif
|
||
|
#define FLT_DIG 6
|
||
|
#define FLT_MANT_DIG 24
|
||
|
#define FLT_EXP_DIG 8
|
||
|
#if defined(_SH2E)|defined(_SH3E)|(defined(_SH4)&!defined(_RON))
|
||
|
#define FLT_POS_EPS 1.1920928955078125e-7f
|
||
|
#if defined(_DON)
|
||
|
#define FLT_NEG_EPS 1.4012984643248171e-45f
|
||
|
#else
|
||
|
#define FLT_NEG_EPS 1.1754943508222876e-38f
|
||
|
#endif
|
||
|
#else
|
||
|
#define FLT_POS_EPS 5.9604648328104311e-8f
|
||
|
#define FLT_NEG_EPS 2.9802324164052156e-8f
|
||
|
#endif
|
||
|
#define FLT_POS_EPS_EXP (-23)
|
||
|
#if defined(_SH2E)|defined(_SH3E)|defined(_SH4)
|
||
|
#define FLT_NEG_EPS_EXP (-126)
|
||
|
#else
|
||
|
#define FLT_NEG_EPS_EXP (-24)
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|
||
|
#if defined(_FLT)|defined(_FPS)
|
||
|
|
||
|
#define DBL_RADIX FLT_RADIX
|
||
|
#define DBL_ROUNDS FLT_ROUNDS
|
||
|
#define DBL_GUARD FLT_GUARD
|
||
|
#define DBL_NORMALIZE FLT_NORMALIZE
|
||
|
#define DBL_MAX _FLT_MAX_VAL
|
||
|
#define DBL_MIN _FLT_MIN_VAL
|
||
|
#define DBL_MAX_EXP FLT_MAX_EXP
|
||
|
#define DBL_MIN_EXP FLT_MIN_EXP
|
||
|
#define DBL_MAX_10_EXP FLT_MAX_10_EXP
|
||
|
#define DBL_MIN_10_EXP FLT_MIN_10_EXP
|
||
|
#define DBL_DIG FLT_DIG
|
||
|
#define DBL_MANT_DIG FLT_MANT_DIG
|
||
|
#define DBL_EXP_DIG FLT_EXP_DIG
|
||
|
#define DBL_POS_EPS FLT_POS_EPS
|
||
|
#define DBL_NEG_EPS FLT_NEG_EPS
|
||
|
#define DBL_POS_EPS_EXP FLT_POS_EPS_EXP
|
||
|
#define DBL_NEG_EPS_EXP FLT_NEG_EPS_EXP
|
||
|
|
||
|
#else
|
||
|
|
||
|
#define DBL_RADIX 2
|
||
|
#if defined(_SH4)&!defined(_RON)
|
||
|
#define DBL_ROUNDS 0
|
||
|
#define DBL_GUARD 0
|
||
|
#else
|
||
|
#define DBL_ROUNDS 1
|
||
|
#define DBL_GUARD 1
|
||
|
#endif
|
||
|
#define DBL_NORMALIZE 1
|
||
|
#define DBL_MAX _DBL_MAX_VAL
|
||
|
#define DBL_MIN _DBL_MIN_VAL
|
||
|
#define DBL_MAX_EXP 1023
|
||
|
#if defined(_SH4)&!defined(_DON)
|
||
|
#define DBL_MIN_EXP (-1022)
|
||
|
#else
|
||
|
#define DBL_MIN_EXP (-1074)
|
||
|
#endif
|
||
|
#define DBL_MAX_10_EXP 308
|
||
|
#if defined(_SH4)&!defined(_DON)
|
||
|
#define DBL_MIN_10_EXP (-308)
|
||
|
#else
|
||
|
#define DBL_MIN_10_EXP (-323)
|
||
|
#endif
|
||
|
#define DBL_DIG 15
|
||
|
#define DBL_MANT_DIG 53
|
||
|
#define DBL_EXP_DIG 11
|
||
|
#if defined(_SH4)&!defined(_RON)
|
||
|
#define DBL_POS_EPS 2.2204460492503131e-16
|
||
|
#if defined(_DON)
|
||
|
#define DBL_NEG_EPS 4.9406564584124655e-324
|
||
|
#else
|
||
|
#define DBL_NEG_EPS 2.2250738585072014e-308
|
||
|
#endif
|
||
|
#else
|
||
|
#define DBL_POS_EPS 1.1102230246251567e-16
|
||
|
#define DBL_NEG_EPS 5.5511151231257834e-17
|
||
|
#endif
|
||
|
#define DBL_POS_EPS_EXP (-52)
|
||
|
#ifdef _SH4
|
||
|
#ifdef _RON
|
||
|
#define DBL_NEG_EPS_EXP (-53)
|
||
|
#else
|
||
|
#ifdef _DON
|
||
|
#define DBL_NEG_EPS_EXP (-1023)
|
||
|
#else
|
||
|
#define DBL_NEG_EPS_EXP (-1022)
|
||
|
#endif
|
||
|
#endif
|
||
|
#else
|
||
|
#define DBL_NEG_EPS_EXP (-53)
|
||
|
#endif
|
||
|
|
||
|
#ifdef _FPD
|
||
|
#define FLT_RADIX DBL_RADIX
|
||
|
#define FLT_ROUNDS DBL_ROUNDS
|
||
|
#define FLT_GUARD DBL_GUARD
|
||
|
#define FLT_NORMALIZE DBL_NORMALIZE
|
||
|
#define FLT_MAX _DBL_MAX_VAL
|
||
|
#define FLT_MIN _DBL_MIN_VAL
|
||
|
#define FLT_MAX_EXP DBL_MAX_EXP
|
||
|
#define FLT_MIN_EXP DBL_MIN_EXP
|
||
|
#define FLT_MAX_10_EXP DBL_MAX_10_EXP
|
||
|
#define FLT_MIN_10_EXP DBL_MIN_10_EXP
|
||
|
#define FLT_DIG DBL_DIG
|
||
|
#define FLT_MANT_DIG DBL_MANT_DIG
|
||
|
#define FLT_EXP_DIG DBL_EXP_DIG
|
||
|
#define FLT_POS_EPS DBL_POS_EPS
|
||
|
#define FLT_NEG_EPS DBL_NEG_EPS
|
||
|
#define FLT_POS_EPS_EXP DBL_POS_EPS_EXP
|
||
|
#define FLT_NEG_EPS_EXP DBL_NEG_EPS_EXP
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|
||
|
#ifdef _FLT
|
||
|
#define LDBL_RADIX 2
|
||
|
#define LDBL_ROUNDS 1
|
||
|
#define LDBL_GUARD 1
|
||
|
#define LDBL_NORMALIZE 1
|
||
|
#define LDBL_MAX _LDBL_MAX_VAL
|
||
|
#define LDBL_MIN _LDBL_MIN_VAL
|
||
|
#define LDBL_MAX_EXP 1023
|
||
|
#define LDBL_MIN_EXP (-1074)
|
||
|
#define LDBL_MAX_10_EXP 308
|
||
|
#define LDBL_MIN_10_EXP (-323)
|
||
|
#define LDBL_DIG 15
|
||
|
#define LDBL_MANT_DIG 53
|
||
|
#define LDBL_EXP_DIG 11
|
||
|
#define LDBL_POS_EPS 1.1102230246251567e-16
|
||
|
#define LDBL_NEG_EPS 5.5511151231257834e-17
|
||
|
#define LDBL_POS_EPS_EXP (-52)
|
||
|
#define LDBL_NEG_EPS_EXP (-53)
|
||
|
#else
|
||
|
#define LDBL_RADIX DBL_RADIX
|
||
|
#define LDBL_ROUNDS DBL_ROUNDS
|
||
|
#define LDBL_GUARD DBL_GUARD
|
||
|
#define LDBL_NORMALIZE DBL_NORMALIZE
|
||
|
#define LDBL_MAX DBL_MAX
|
||
|
#define LDBL_MIN DBL_MIN
|
||
|
#define LDBL_MAX_EXP DBL_MAX_EXP
|
||
|
#define LDBL_MIN_EXP DBL_MIN_EXP
|
||
|
#define LDBL_MAX_10_EXP DBL_MAX_10_EXP
|
||
|
#define LDBL_MIN_10_EXP DBL_MIN_10_EXP
|
||
|
#define LDBL_DIG DBL_DIG
|
||
|
#define LDBL_MANT_DIG DBL_MANT_DIG
|
||
|
#define LDBL_EXP_DIG DBL_EXP_DIG
|
||
|
#define LDBL_POS_EPS DBL_POS_EPS
|
||
|
#define LDBL_NEG_EPS DBL_NEG_EPS
|
||
|
#define LDBL_POS_EPS_EXP DBL_POS_EPS_EXP
|
||
|
#define LDBL_NEG_EPS_EXP DBL_NEG_EPS_EXP
|
||
|
#endif
|
||
|
|
||
|
#endif
|