| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- (* Release 3.10 *)
- (*-------------------------------------------------------------------------*
- * *
- * FLOAT.DEF - Modula-2 interface to FLOAT.H *
- * *
- * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
- * All Rights Reserved *
- * *
- *--------------------------------------------------------------------------*)
- (*# project("#set tsc='on'") *)
- (*# call(o_a_size=>off, o_a_copy=>off, c_conv=>on, result_optional=>on) *)
- (*# module(implementation=>off, init_code=>off) *)
- (*# name(prefix=>c) *)
- DEFINITION MODULE float;
- CONST
- DBL_DIG = 15; (* number of decimal digits of precision *)
- DBL_MANT_DIG = 53; (* number of bits in mantissa *)
- DBL_MAX_10_EXP = 308; (* maximum decimal exponent *)
- DBL_MAX_EXP = 1024; (* maximum binary exponent *)
- DBL_MIN_10_EXP = -307; (* minimum decimal exponent *)
- DBL_MIN_EXP = -1021; (* minimum binary exponent *)
- DBL_RADIX = 2; (* exponent radix *)
- DBL_ROUNDS = 1; (* addition rounding *)
- DBL_EPSILON = 2.2204460492503131E-016; (* 1.0+DBL_EPSILON != 1.0 *)
- DBL_MAX = 1.7976931348623151E+308; (* maximum value *)
- DBL_MIN = 2.2250738585072014E-308; (* minimum positive value *)
- FLT_DIG = 6; (* number of decimal digits of precision *)
- FLT_GUARD = 0;
- FLT_MANT_DIG = 24; (* number of bits in mantissa *)
- FLT_MAX_10_EXP = 38; (* maximum decimal exponent *)
- FLT_MAX_EXP = 128; (* maximum binary exponent *)
- FLT_MIN_10_EXP = -37; (* minimum decimal exponent *)
- FLT_MIN_EXP = -125; (* minimum binary exponent *)
- FLT_NORMALIZE = 0;
- FLT_RADIX = 2; (* exponent radix *)
- FLT_ROUNDS = 1; (* addition rounding chops *)
- FLT_EPSILON = 1.192092896E-07; (* smallest such that 1.0+FLT_EPSILON != 1.0 *)
- FLT_MAX = 3.402823466E+38; (* maximum value *)
- FLT_MIN = 1.175494351E-38; (* minimum positive value *)
- LDBL_DIG = DBL_DIG; (* number of decimal digits of precision *)
- LDBL_EPSILON = DBL_EPSILON; (* smallest such that 1.0+LDBL_EPSILON != 1.0 *)
- LDBL_MANT_DIG = DBL_MANT_DIG; (* number of bits in mantissa *)
- LDBL_MAX = DBL_MAX; (* maximum value *)
- LDBL_MAX_10_EXP = DBL_MAX_10_EXP; (* maximum decimal exponent *)
- LDBL_MAX_EXP = DBL_MAX_EXP; (* maximum binary exponent *)
- LDBL_MIN = DBL_MIN; (* minimum positive value *)
- LDBL_MIN_10_EXP = DBL_MIN_10_EXP; (* minimum deimal exponent *)
- LDBL_MIN_EXP = DBL_MIN_EXP; (* minimum binary exponent *)
- LDBL_RADIX = DBL_RADIX; (* exponent radix *)
- LDBL_ROUNDS = DBL_ROUNDS; (* addition rounding *)
- (* X087 math control information *)
- (* Control Word Mask and bit definitions *)
- MCW_EM = 003FH; (* interrupt Exception Masks *)
- EM_INVALID = 0001H; (* invalid *)
- EM_DENORMAL = 0002H; (* denormal *)
- EM_ZERODIVIDE = 0004H; (* zero divide *)
- EM_OVERFLOW = 0008H; (* overflow *)
- EM_UNDERFLOW = 0010H; (* underflow *)
- EM_INEXACT = 0020H; (* inexact *)
- MCW_IC = 1000H; (* Infinity Control *)
- IC_AFFINE = 1000H; (* affine *)
- IC_PROJECTIVE = 0000H; (* projective *)
- MCW_RC = 0C00H; (* Rounding Control *)
- RC_CHOP = 0C00H; (* chop *)
- RC_UP = 0800H; (* up *)
- RC_DOWN = 0400H; (* down *)
- RC_NEAR = 0000H; (* near *)
- MCW_PC = 0300H; (* Precision Control *)
- PC_24 = 0000H; (* 24 bits *)
- PC_53 = 0200H; (* 53 bits *)
- PC_64 = 0300H; (* 64 bits *)
- (* Initial Control Word value *)
- CW_DEFAULT = (IC_AFFINE+RC_NEAR+PC_64+EM_DENORMAL+EM_UNDERFLOW+EM_INEXACT);
- (* user Status Word bit definitions *)
- SW_INVALID = 0001H; (* invalid *)
- SW_DENORMAL = 0002H; (* denormal *)
- SW_ZERODIVIDE = 0004H; (* zero divide *)
- SW_OVERFLOW = 0008H; (* overflow *)
- SW_UNDERFLOW = 0010H; (* underflow *)
- SW_INEXACT = 0020H; (* precision inexact *)
- PROCEDURE _clear87():CARDINAL;
- PROCEDURE _control87():CARDINAL;
- PROCEDURE _fpreset;
- PROCEDURE _status87():CARDINAL;
- END float.
|