epoc32/include/stdapis/stlport/stl/_limits.c
branchSymbian2
changeset 3 e1b950c65cb4
parent 2 2fe1408b6811
child 4 837f303aceeb
     1.1 --- a/epoc32/include/stdapis/stlport/stl/_limits.c	Tue Mar 16 16:12:26 2010 +0000
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,270 +0,0 @@
     1.4 -/*
     1.5 - * Copyright (c) 1998,1999
     1.6 - * Silicon Graphics Computer Systems, Inc.
     1.7 - *
     1.8 - * Copyright (c) 1999 
     1.9 - * Boris Fomitchev
    1.10 - *
    1.11 - * This material is provided "as is", with absolutely no warranty expressed
    1.12 - * or implied. Any use is at your own risk.
    1.13 - *
    1.14 - * Permission to use or copy this software for any purpose is hereby granted 
    1.15 - * without fee, provided the above notices are retained on all copies.
    1.16 - * Permission to modify the code and to distribute modified code is granted,
    1.17 - * provided the above notices are retained, and a notice that the code was
    1.18 - * modified is included with the above copyright notice.
    1.19 - *
    1.20 - */
    1.21 -
    1.22 -# if !defined (_STLP_LIMITS_C)
    1.23 -#  define _STLP_LIMITS_C
    1.24 -
    1.25 -#ifndef _STLP_INTERNAL_LIMITS_H
    1.26 -# include <stl/_limits.h>
    1.27 -#endif
    1.28 -
    1.29 -//==========================================================
    1.30 -//  numeric_limits static members
    1.31 -//==========================================================
    1.32 -
    1.33 -_STLP_BEGIN_NAMESPACE
    1.34 -
    1.35 -# if ! defined ( _STLP_STATIC_CONST_INIT_BUG)
    1.36 -
    1.37 -#   define __declare_numeric_base_member(__type, __mem, _Init) \
    1.38 -template <class __number> \
    1.39 -  const __type _Numeric_limits_base<__number>:: __mem
    1.40 -
    1.41 -__declare_numeric_base_member(bool, is_specialized, false);
    1.42 -__declare_numeric_base_member(int, digits, 0);
    1.43 -__declare_numeric_base_member(int, digits10, 0);
    1.44 -__declare_numeric_base_member(bool, is_signed, false);
    1.45 -__declare_numeric_base_member(bool, is_integer, false);
    1.46 -__declare_numeric_base_member(bool, is_exact, false);
    1.47 -__declare_numeric_base_member(int, radix, 0);
    1.48 -__declare_numeric_base_member(int, min_exponent, 0);
    1.49 -__declare_numeric_base_member(int, max_exponent, 0);
    1.50 -__declare_numeric_base_member(int, min_exponent10, 0);
    1.51 -__declare_numeric_base_member(int, max_exponent10, 0);
    1.52 -__declare_numeric_base_member(bool, has_infinity, false);
    1.53 -__declare_numeric_base_member(bool, has_quiet_NaN, false);
    1.54 -__declare_numeric_base_member(bool, has_signaling_NaN, false);
    1.55 -__declare_numeric_base_member(float_denorm_style, has_denorm, denorm_absent);
    1.56 -__declare_numeric_base_member(bool, has_denorm_loss, false);
    1.57 -__declare_numeric_base_member(bool, is_iec559, false);
    1.58 -__declare_numeric_base_member(bool, is_bounded, false);
    1.59 -__declare_numeric_base_member(bool, is_modulo, false);
    1.60 -__declare_numeric_base_member(bool, traps, false);
    1.61 -__declare_numeric_base_member(bool, tinyness_before, false);
    1.62 -__declare_numeric_base_member(float_round_style, round_style, round_toward_zero);
    1.63 -
    1.64 -# undef __declare_numeric_base_member
    1.65 -
    1.66 -#   define __declare_integer_limits_member(__type, __mem, _Init) \
    1.67 -template <class _Int, _STLP_LIMITS_MIN_TYPE __imin, _STLP_LIMITS_MAX_TYPE __imax, int __idigits, bool __ismod> \
    1.68 -  const __type _Integer_limits<_Int, __imin, __imax, __idigits, __ismod>:: __mem
    1.69 -
    1.70 -__declare_integer_limits_member(bool, is_specialized, true);
    1.71 -__declare_integer_limits_member(int, digits, (__idigits < 0) ? \
    1.72 -			    ((int)((sizeof(_Int) * (CHAR_BIT))) - ((__imin == 0) ? 0 : 1)) \
    1.73 -                            : (__idigits) );
    1.74 -__declare_integer_limits_member(int, digits10, (int)(301UL * digits) /1000);
    1.75 -__declare_integer_limits_member(bool, is_signed, __imin != 0);
    1.76 -__declare_integer_limits_member(bool, is_integer, true);
    1.77 -__declare_integer_limits_member(bool, is_exact, true);
    1.78 -__declare_integer_limits_member(int, radix, 2);
    1.79 -__declare_integer_limits_member(bool, is_bounded, true);
    1.80 -__declare_integer_limits_member(bool, is_modulo, true);
    1.81 -
    1.82 -#   define __declare_float_limits_member(__type, __mem, _Init) \
    1.83 -template <class __number,  \
    1.84 -         int __Digits, int __Digits10,    \
    1.85 -         int __MinExp, int __MaxExp,      \
    1.86 -         int __MinExp10, int __MaxExp10,  \
    1.87 -         bool __IsIEC559, \
    1.88 -         float_round_style __RoundStyle> \
    1.89 -const __type _Floating_limits< __number, __Digits, __Digits10,    \
    1.90 -         __MinExp, __MaxExp, __MinExp10, __MaxExp10,  \
    1.91 -         __IsIEC559, __RoundStyle>::\
    1.92 -         __mem
    1.93 -
    1.94 -__declare_float_limits_member(bool, is_specialized, true);  
    1.95 -__declare_float_limits_member(int, digits, __Digits);  
    1.96 -__declare_float_limits_member(int, digits10, __Digits10);  
    1.97 -__declare_float_limits_member(bool, is_signed, true);  
    1.98 -__declare_float_limits_member(int, radix, FLT_RADIX);  
    1.99 -__declare_float_limits_member(int, min_exponent, __MinExp);  
   1.100 -__declare_float_limits_member(int, max_exponent, __MaxExp);  
   1.101 -__declare_float_limits_member(int, min_exponent10, __MinExp10);  
   1.102 -__declare_float_limits_member(int, max_exponent10, __MaxExp10);  
   1.103 -__declare_float_limits_member(bool, has_infinity, true);
   1.104 -__declare_float_limits_member(bool, has_quiet_NaN, true);
   1.105 -__declare_float_limits_member(bool, has_signaling_NaN, true);
   1.106 -__declare_float_limits_member(float_denorm_style, has_denorm, denorm_indeterminate);
   1.107 -__declare_float_limits_member(bool, has_denorm_loss, false);
   1.108 -__declare_float_limits_member(bool, is_iec559, __IsIEC559);
   1.109 -__declare_float_limits_member(bool, is_bounded, true);
   1.110 -__declare_float_limits_member(bool, traps, true);
   1.111 -__declare_float_limits_member(bool, tinyness_before, false);
   1.112 -__declare_float_limits_member(float_round_style, round_style, __RoundStyle);
   1.113 -
   1.114 -# endif /* _STLP_STATIC_CONST_INIT_BUG */
   1.115 -
   1.116 -
   1.117 -# ifdef _STLP_EXPOSE_GLOBALS_IMPLEMENTATION
   1.118 -
   1.119 -# if defined(_STLP_BIG_ENDIAN)
   1.120 -# if defined(__OS400__)
   1.121 -#  define _STLP_FLOAT_INF_REP { 0x7f80, 0 }
   1.122 -#  define _STLP_FLOAT_QNAN_REP { 0xffc0, 0 }
   1.123 -#  define _STLP_FLOAT_SNAN_REP { 0xff80, 0 }
   1.124 -#  define _STLP_DOUBLE_INF_REP { 0x7ff0, 0, 0, 0 }
   1.125 -#  define _STLP_DOUBLE_QNAN_REP { 0xfff8, 0, 0, 0 }
   1.126 -#  define _STLP_DOUBLE_SNAN_REP { 0xfff0, 0, 0, 0 }
   1.127 -#  define _STLP_LDOUBLE_INF_REP { 0x7ff0, 0, 0, 0, 0, 0, 0, 0 }
   1.128 -#  define _STLP_LDOUBLE_QNAN_REP { 0xfff8, 0, 0, 0, 0, 0, 0, 0 }
   1.129 -#  define _STLP_LDOUBLE_SNAN_REP { 0xfff0, 0, 0, 0, 0, 0, 0, 0 }
   1.130 -# else
   1.131 -#  define _STLP_FLOAT_INF_REP   { 0x7f80, 0 }
   1.132 -#  define _STLP_FLOAT_SNAN_REP  { 0x7f81, 0 }
   1.133 -#  define _STLP_FLOAT_QNAN_REP  { 0x7fc1, 0 }
   1.134 -#  define _STLP_DOUBLE_INF_REP  { 0x7ff0, 0, 0, 0 }
   1.135 -#  define _STLP_DOUBLE_QNAN_REP { 0x7ff1, 0, 0, 0 }
   1.136 -#  define _STLP_DOUBLE_SNAN_REP { 0x7ff9, 0, 0, 0 }
   1.137 -#  define _STLP_LDOUBLE_INF_REP { 0x7ff0, 0, 0, 0, 0, 0, 0, 0 }
   1.138 -#  define _STLP_LDOUBLE_SNAN_REP { 0x7ff1, 0, 0, 0, 0, 0, 0, 0 }
   1.139 -#  define _STLP_LDOUBLE_QNAN_REP { 0x7ff9, 0, 0, 0, 0, 0, 0, 0 }
   1.140 -# endif
   1.141 -
   1.142 -# elif defined (_STLP_LITTLE_ENDIAN)
   1.143 -
   1.144 -# if 0 /* defined(_STLP_MSVC) || defined(__linux__) */
   1.145 -// some IA-32 platform ?? 
   1.146 -#  define _STLP_FLOAT_INF_REP { 0, 0x7f80 }
   1.147 -#  define _STLP_FLOAT_QNAN_REP { 0, 0xffc0 }
   1.148 -#  define _STLP_FLOAT_SNAN_REP { 0, 0xff80 }
   1.149 -
   1.150 -#  define _STLP_DOUBLE_INF_REP { 0, 0, 0, 0x7ff0 }
   1.151 -#  define _STLP_DOUBLE_QNAN_REP { 0, 0, 0, 0xfff8 }
   1.152 -#  define _STLP_DOUBLE_SNAN_REP { 0, 0, 0, 0xfff0 }
   1.153 -#  define _STLP_LDOUBLE_INF_REP { 0, 0, 0, 0x7FF0, 0 } // ????
   1.154 -#  define _STLP_LDOUBLE_QNAN_REP { 0, 0, 0, 0xFFF8, 0 } // ????
   1.155 -#  define _STLP_LDOUBLE_SNAN_REP { 0, 0, 0, 0xFFF0, 0 } // ????
   1.156 -
   1.157 -# elif defined(__DECCXX)
   1.158 -
   1.159 -#  define _STLP_FLOAT_INF_REP { 0, 0x7f80 }
   1.160 -#  define _STLP_FLOAT_QNAN_REP { 0, 0xffc0 }
   1.161 -#  define _STLP_FLOAT_SNAN_REP { 0x5555, 0x7f85 }
   1.162 -
   1.163 -#  define _STLP_DOUBLE_INF_REP { 0, 0, 0, 0x7ff0 }
   1.164 -#  define _STLP_DOUBLE_QNAN_REP { 0, 0, 0, 0xfff8 }
   1.165 -#  define _STLP_DOUBLE_SNAN_REP { 0x5555, 0x5555, 0x5555, 0x7ff5 }
   1.166 -
   1.167 -#  define _STLP_LDOUBLE_INF_REP { 0, 0, 0, 0, 0, 0, 0, 0x7fff }
   1.168 -#  define _STLP_LDOUBLE_QNAN_REP { 0, 0, 0, 0, 0, 0, 0x8000, 0xffff }
   1.169 -#  define _STLP_LDOUBLE_SNAN_REP { 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x7fff}
   1.170 -# else
   1.171 -#  define _STLP_FLOAT_INF_REP { 0, 0x7f80 }
   1.172 -#  define _STLP_FLOAT_QNAN_REP { 0, 0x7fa0 }
   1.173 -#  define _STLP_FLOAT_SNAN_REP { 0, 0x7fc0 }
   1.174 -#  define _STLP_DOUBLE_INF_REP { 0, 0, 0, 0x7ff0 }
   1.175 -#  define _STLP_DOUBLE_QNAN_REP { 0, 0, 0, 0x7ff4 }
   1.176 -#  define _STLP_DOUBLE_SNAN_REP { 0, 0, 0, 0x7ff8 }
   1.177 -#  if defined (_STLP_MSVC) || defined (__ICL) || defined (__BORLANDC__)
   1.178 -#   define _STLP_LDOUBLE_INF_REP { 0, 0, 0, 0x7FF0, 0 } // ????
   1.179 -#   define _STLP_LDOUBLE_QNAN_REP { 0, 0, 0, 0xFFF8, 0 } // ????
   1.180 -#   define _STLP_LDOUBLE_SNAN_REP { 0, 0, 0, 0xFFF8, 0 }
   1.181 -#  else
   1.182 -#   define _STLP_LDOUBLE_INF_REP { 0, 0, 0, 0x8000, 0x7fff }
   1.183 -#   define _STLP_LDOUBLE_QNAN_REP { 0, 0, 0, 0xa000, 0x7fff }
   1.184 -#   define _STLP_LDOUBLE_SNAN_REP { 0, 0, 0, 0xc000, 0x7fff }
   1.185 -#  endif
   1.186 -# endif
   1.187 -#else
   1.188 -/* This is an architecture we don't know how to handle. Return some
   1.189 -obviously wrong values. */
   1.190 -# define _STLP_FLOAT_INF_REP { 0, 0 }
   1.191 -# define _STLP_FLOAT_QNAN_REP { 0, 0 }
   1.192 -# define _STLP_FLOAT_SNAN_REP { 0, 0 }
   1.193 -# define _STLP_DOUBLE_INF_REP { 0, 0 }
   1.194 -# define _STLP_DOUBLE_QNAN_REP { 0, 0 }
   1.195 -# define _STLP_DOUBLE_SNAN_REP { 0, 0 }
   1.196 -# define _STLP_LDOUBLE_INF_REP { 0 }
   1.197 -# define _STLP_LDOUBLE_QNAN_REP { 0 }
   1.198 -# define _STLP_LDOUBLE_SNAN_REP { 0 }
   1.199 -
   1.200 -#endif
   1.201 -
   1.202 -#if ( _STLP_STATIC_TEMPLATE_DATA > 0 )
   1.203 -# ifndef _STLP_NO_LONG_DOUBLE
   1.204 -template <class __dummy>
   1.205 -const _L_rep _LimG<__dummy>::_L_inf  = {_STLP_LDOUBLE_INF_REP}; 
   1.206 -template <class __dummy>
   1.207 -const _L_rep _LimG<__dummy>::_L_qNaN  = {_STLP_LDOUBLE_QNAN_REP}; 
   1.208 -template <class __dummy>
   1.209 -const _L_rep _LimG<__dummy>::_L_sNaN  = {_STLP_LDOUBLE_SNAN_REP}; 
   1.210 -# endif
   1.211 -template <class __dummy>
   1.212 -const _D_rep _LimG<__dummy>::_D_inf  = {_STLP_DOUBLE_INF_REP}; 
   1.213 -template <class __dummy>
   1.214 -const _D_rep _LimG<__dummy>::_D_qNaN  = {_STLP_DOUBLE_QNAN_REP}; 
   1.215 -template <class __dummy>
   1.216 -const _D_rep _LimG<__dummy>::_D_sNaN  = {_STLP_DOUBLE_SNAN_REP}; 
   1.217 -template <class __dummy>
   1.218 -const _F_rep _LimG<__dummy>::_F_inf  = {_STLP_FLOAT_INF_REP}; 
   1.219 -template <class __dummy>
   1.220 -const _F_rep _LimG<__dummy>::_F_qNaN  = {_STLP_FLOAT_QNAN_REP}; 
   1.221 -template <class __dummy>
   1.222 -const _F_rep _LimG<__dummy>::_F_sNaN  = {_STLP_FLOAT_SNAN_REP}; 
   1.223 -
   1.224 -#else
   1.225 -
   1.226 -__DECLARE_INSTANCE( const _F_rep,
   1.227 -                   _LimG<bool>::_F_inf,  = _STLP_FLOAT_INF_REP);
   1.228 -__DECLARE_INSTANCE( const _F_rep,
   1.229 -                   _LimG<bool>::_F_qNaN,  = _STLP_FLOAT_QNAN_REP);
   1.230 -__DECLARE_INSTANCE( const _F_rep,
   1.231 -                   _LimG<bool>::_F_sNaN,  = _STLP_FLOAT_SNAN_REP);
   1.232 -__DECLARE_INSTANCE( const _D_rep,
   1.233 -                   _LimG<bool>::_D_inf,  = _STLP_DOUBLE_INF_REP);
   1.234 -__DECLARE_INSTANCE( const _D_rep,
   1.235 -                   _LimG<bool>::_D_qNaN,  = _STLP_DOUBLE_QNAN_REP);
   1.236 -__DECLARE_INSTANCE( const _D_rep,
   1.237 -                   _LimG<bool>::_D_sNaN,  = _STLP_DOUBLE_SNAN_REP);
   1.238 -# ifndef _STLP_NO_LONG_DOUBLE
   1.239 -__DECLARE_INSTANCE( const _L_rep,
   1.240 -                   _LimG<bool>::_L_inf,  = _STLP_LDOUBLE_INF_REP);
   1.241 -__DECLARE_INSTANCE( const _L_rep,
   1.242 -                   _LimG<bool>::_L_qNaN,  = _STLP_LDOUBLE_QNAN_REP);
   1.243 -__DECLARE_INSTANCE( const _L_rep,
   1.244 -                   _LimG<bool>::_L_sNaN,  = _STLP_LDOUBLE_SNAN_REP);
   1.245 -# endif
   1.246 -
   1.247 -#endif /* STATIC_DATA */   
   1.248 -
   1.249 -# endif /* _STLP_EXPOSE_GLOBALS_IMPLEMENTATION */
   1.250 -    
   1.251 -# undef __declare_integer_limits_member
   1.252 -# undef __declare_float_limits_member
   1.253 -# undef __HACK_ILIMITS
   1.254 -# undef __HACK_NOTHING
   1.255 -# undef __declare_int_members
   1.256 -# undef __declare_float_members
   1.257 -# undef _STLP_LIMITS_MIN_TYPE
   1.258 -# undef _STLP_LIMITS_MAX_TYPE
   1.259 -
   1.260 -# undef _STLP_FLOAT_INF_REP
   1.261 -# undef _STLP_FLOAT_QNAN_REP
   1.262 -# undef _STLP_FLOAT_SNAN_REP
   1.263 -# undef _STLP_DOUBLE_INF_REP
   1.264 -# undef _STLP_DOUBLE_QNAN_REP
   1.265 -# undef _STLP_DOUBLE_SNAN_REP
   1.266 -# undef _STLP_LDOUBLE_INF_REP
   1.267 -# undef _STLP_LDOUBLE_QNAN_REP
   1.268 -# undef _STLP_LDOUBLE_SNAN_REP
   1.269 -
   1.270 -_STLP_END_NAMESPACE
   1.271 -
   1.272 -
   1.273 -#endif /* _STLP_LIMITS_C_INCLUDED */