blob: 9cb4b7915ef4925aa3e0686eba8d1c3e4964c97d [file] [log] [blame]
// definitions of the floating point constants
/***************************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the License); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*
* Copyright 1999-2008 Rogue Wave Software, Inc.
*
**************************************************************************/
// this file must be included only after the config.h
#ifndef _RWSTD_NO_FLOAT_H
# include <float.h>
# if defined (__EDG__) \
&& !defined (__DECCXX) \
&& !defined (__HP_aCC) \
&& !defined (__INTEL_COMPILER) \
&& !defined (_SGI_COMPILER_VERSION)
// define gcc 4 intrinsics otherwise not recognized
// by the front end
# define __FLT_DIG__ 6
# define __FLT_EPSILON__ 1.19209290e-7F
# define __FLT_MANT_DIG__ 24
# define __FLT_MAX__ 3.40282347e+38F
# define __FLT_MAX_10_EXP__ 38
# define __FLT_MAX_EXP__ 128
# define __FLT_MIN__ 1.17549435e-38F
# define __FLT_MIN_10_EXP__ -37
# define __FLT_MIN_EXP__ -125
# define __FLT_RADIX__ 2
# define __DBL_DIG__ 15
# define __DBL_EPSILON__ 2.2204460492503131e-16
# define __DBL_MANT_DIG__ 53
# define __DBL_MAX__ 1.7976931348623157e+308
# define __DBL_MAX_10_EXP__ 308
# define __DBL_MAX_EXP__ 1024
# define __DBL_MIN__ 2.2250738585072014e-308
# define __DBL_MIN_10_EXP__ -307
# define __DBL_MIN_EXP__ -1021
# define __LDBL_DIG__ 18
# define __LDBL_EPSILON__ 1.08420217248550443401e-19L
# define __LDBL_MANT_DIG__ 64
# define __LDBL_MAX__ 1.18973149535723176502e+4932L
# define __LDBL_MAX_10_EXP__ 4932
# define __LDBL_MAX_EXP__ 16384
# define __LDBL_MIN__ 3.36210314311209350626e-4932L
# define __LDBL_MIN_10_EXP__ -4931
# define __LDBL_MIN_EXP__ -16381
// Linux value
# define _RWSTD_FLT_ROUNDS 1 /* round to nearest */
# if defined (__GNUC__) && __GNUC__ < 4
// prevent the propriterary gcc __extension__ from
// throwing the vanilla EDG demo for a loop
# undef LDBL_EPSILON
# undef LDBL_MIN
# undef LDBL_MAX
// redefine to prevent compilation errors
# define LDBL_EPSILON 1.0842021724855044e-19L
# define LDBL_MIN 3.3621031431120935e-4932L
# define LDBL_MAX 1.1897314953572317e+4932L
# endif //gcc 3 (as the back end for eccp)
# endif // EDG eccp vanilla front end
#else // if defined (_RWSTD_NO_FLOAT_H)
// assume IEEE 754 floating point
// FIXME: autodetect floating point format
# define FLT_DIG 6
# define FLT_EPSILON 1.19209290e-7F
# define FLT_MANT_DIG 24
# define FLT_MAX 3.40282347e+38F
# define FLT_MAX_10_EXP 38
# define FLT_MAX_EXP 128
# define FLT_MIN 1.17549435e-38F
# define FLT_MIN_10_EXP -37
# define FLT_MIN_EXP -125
# define FLT_RADIX 2
# define DBL_DIG 15
# define DBL_EPSILON 2.2204460492503131e-16
# define DBL_MANT_DIG 53
# define DBL_MAX 1.7976931348623157e+308
# define DBL_MAX_10_EXP 308
# define DBL_MAX_EXP 1024
# define DBL_MIN 2.2250738585072014e-308
# define DBL_MIN_10_EXP -307
# define DBL_MIN_EXP -1021
# define LDBL_DIG 18
# define LDBL_EPSILON 1.08420217248550443401e-19L
# define LDBL_MANT_DIG 64
# define LDBL_MAX 1.18973149535723176502e+4932L
# define LDBL_MAX_10_EXP 4932
# define LDBL_MAX_EXP 16384
# define LDBL_MIN 3.36210314311209350626e-4932L
# define LDBL_MIN_10_EXP -4931
# define LDBL_MIN_EXP -16381
// Linux value
# define _RWSTD_FLT_ROUNDS 1 /* round to nearest */
#endif // _RWSTD_NO_FLOAT_H