kolibrios/programs/develop/libraries/menuetlibc/include/float.h
CleverMouse 4f5f25a6c2 add menuetlibc sources
git-svn-id: svn://kolibrios.org@1882 a494cfbc-eb01-0410-851d-a64ba20cac60
2011-02-21 13:30:08 +00:00

117 lines
3.6 KiB
C
Executable File

/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
#ifndef __dj_include_float_h_
#define __dj_include_float_h_
#ifdef __cplusplus
extern "C" {
#endif
extern float __dj_float_epsilon;
extern float __dj_float_max;
extern float __dj_float_min;
#define FLT_DIG 6
#define FLT_EPSILON __dj_float_epsilon
#define FLT_MANT_DIG 24
#define FLT_MAX __dj_float_max
#define FLT_MAX_10_EXP 38
#define FLT_MAX_EXP 128
#define FLT_MIN __dj_float_min
#define FLT_MIN_10_EXP (-37)
#define FLT_MIN_EXP (-125)
#define FLT_RADIX 2
#define FLT_ROUNDS 1
extern double __dj_double_epsilon;
extern double __dj_double_max;
extern double __dj_double_min;
#define DBL_DIG 15
#define DBL_EPSILON __dj_double_epsilon
#define DBL_MANT_DIG 53
#define DBL_MAX __dj_double_max
#define DBL_MAX_10_EXP 308
#define DBL_MAX_EXP 1024
#define DBL_MIN __dj_double_min
#define DBL_MIN_10_EXP (-307)
#define DBL_MIN_EXP (-1021)
extern long double __dj_long_double_epsilon;
extern long double __dj_long_double_max;
extern long double __dj_long_double_min;
#define LDBL_DIG 18
#define LDBL_EPSILON __dj_long_double_epsilon
#define LDBL_MANT_DIG 64
#define LDBL_MAX __dj_long_double_max
#define LDBL_MAX_10_EXP 4932
#define LDBL_MAX_EXP 16384
#define LDBL_MIN __dj_long_double_min
#define LDBL_MIN_10_EXP (-4931)
#define LDBL_MIN_EXP (-16381)
#ifndef __dj_ENFORCE_ANSI_FREESTANDING
#ifndef __STRICT_ANSI__
#ifndef _POSIX_SOURCE
/* These indicate the results of the last operation */
#define SW_INVALID 0x0001 /* Invalid operation */
#define SW_DENORMAL 0x0002 /* Denormalized operand */
#define SW_ZERODIVIDE 0x0004 /* Division by zero */
#define SW_OVERFLOW 0x0008 /* Overflow */
#define SW_UNDERFLOW 0x0010 /* Underflow (computational) */
#define SW_INEXACT 0x0020 /* Precision (computational) */
#define SW_STACKFAULT 0x0040 /* Stack Fault (over/under flow) */
#define SW_ERRORSUMMARY 0x0080 /* Error summary */
#define SW_COND 0x4700 /* Condition Code */
#define SW_C0 0x0100 /* Condition 0 bit */
#define SW_C1 0x0200 /* Condition 1 bit (also 0=stack underflow, 1=stack overflow) */
#define SW_C2 0x0400 /* Condition 2 bit */
#define SW_C3 0x4000 /* Condition 3 bit */
#define SW_TOP 0x3800 /* Top of stack */
#define SW_TOP_SHIFT 11 /* Shift to move TOS to LSB */
#define SW_BUSY 0x8000 /* FPU busy */
#define MCW_EM 0x003f /* Exception masks (0=fault, 1=handle) */
#define EM_INVALID 0x0001 /* Invalid operation */
#define EM_DENORMAL 0x0002 /* Denormalized operand */
#define EM_ZERODIVIDE 0x0004 /* Division by zero */
#define EM_OVERFLOW 0x0008 /* Overflow */
#define EM_UNDERFLOW 0x0010 /* Underflow */
#define EM_INEXACT 0x0020 /* Precision */
#define MCW_PC 0x0300 /* precision control */
#define PC_24 0x0000 /* 24 bits (single precision) */
#define PC_53 0x0200 /* 53 bits (double precision) */
#define PC_64 0x0300 /* 64 bits (extended precision) */
#define MCW_RC 0x0c00 /* Rounding control */
#define RC_NEAR 0x0000 /* Round to nearest or even */
#define RC_DOWN 0x0400 /* Round towards -Inf */
#define RC_UP 0x0800 /* Round towards +Inf */
#define RC_CHOP 0x0c00 /* Truncate towards zero */
#define MCW_IC 0x1000 /* obsolete; i486 is always affine */
#define IC_AFFINE 0x1000 /* -Inf < +Inf */
#define IC_PROJECTIVE 0x0000 /* -Inf == +Inf */
unsigned int _clear87(void);
unsigned int _control87(unsigned int newcw, unsigned int mask);
void _fpreset(void);
unsigned int _status87(void);
#endif /* !_POSIX_SOURCE */
#endif /* !__STRICT_ANSI__ */
#endif /* !__dj_ENFORCE_ANSI_FREESTANDING */
#ifndef __dj_ENFORCE_FUNCTION_CALLS
#endif /* !__dj_ENFORCE_FUNCTION_CALLS */
#ifdef __cplusplus
}
#endif
#endif /* !__dj_include_float_h_ */