#ifndef _FLOAT_H
#define _FLOAT_H 1

/**
*
* The following symbols are specified in the ANSI C standard for the
* floating point number system.
*
**/

#define FLT_RADIX 2		/* radix of exponent 			*/
#define FLT_ROUNDS 1		/* rounding mode during translation	*/
				/*   0 => chop				*/
				/*   1 => round				*/
				/*   2 => indeterminate			*/
#define FLT_GUARD 0		/* guard digits during multiplication 	*/
				/*   0 => No				*/
				/*   1 => Yes				*/
#define FLT_NORMALIZE 1		/* normalization required		*/
				/*   0 => No				*/
				/*   1 => Yes				*/

#define FLT_MANT_DIG     24     /* # radix digits in float mantissa     */
#define DBL_MANT_DIG     53     /* # radix digits in double mantissa    */
#define LDBL_MANT_DIG    53     /* # radix digits in long double mant.  */

#define FLT_DIG      7          /* max decimal digits for float         */
#define DBL_DIG      16         /* max decimal digits for double        */
#define LDBL_DIG     16         /* max decimal digits for long double   */

#define FLT_MIN_EXP   -126	/* min radix exponent for float	        */
#define DBL_MIN_EXP   -1022	/* min radix exponent for double	*/
#define LDBL_MIN_EXP  -1022      /* min radix exponent for long double   */

#define FLT_MIN_10_EXP   -38
#define DBL_MIN_10_EXP   -308
#define LDBL_MIN_10_EXP  -308

#define FLT_MAX_EXP  128 	/* max radix exponent for float 	*/
#define DBL_MAX_EXP  1024	/* max radix exponent for double	*/
#define LDBL_MAX_EXP 1024       /* max radix exponent for double long   */

#define FLT_MAX_10_EXP   38     /* max decimal exponent for float       */
#define DBL_MAX_10_EXP   308    /* max decimal exponent for double      */
#define LDBL_MAX_10_EXP  308    /* max decimal exponent for long double */

#define FLT_MAX  3.40282347E+38
#define DBL_MAX       1.797693134862316E+308
#define LDBL_MAX DBL_MAX

#define FLT_EPSILON   1.19209290E-07
#define DBL_EPSILON   2.2204460492503147E-16
#define LDBL_EPSILON  DBL_EPSILON

#define FLT_MIN       3.40282347E-38
#define DBL_MIN       2.225073858507202E-308

#define LDBL_MIN      DBL_MIN

#ifndef _STRICT_ANSI

/* The proper place for the following definition     */
/* is in <math.h>, but put it here for compatibility */

#ifndef HUGE_VAL
#define HUGE_VAL 1.797693134862317E+308	/* huge double value	*/
#endif

#endif  /* _STRICT_ANSI */

#endif
