00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00043 #ifndef _CPP_NUMERIC_LIMITS
00044 #define _CPP_NUMERIC_LIMITS 1
00045 
00046 #pragma GCC system_header
00047 
00048 #include <bits/cpu_limits.h>
00049 #include <bits/c++config.h>
00050 
00051 
00052 
00053 
00054 
00055 
00056 
00057 
00058 
00059 
00060 
00061 
00062 
00063 
00064 
00065 
00066 
00067 
00068 
00069 
00070 
00071 
00072 
00073 
00074 
00075 
00076 
00077 
00078 
00079 
00080 
00081 
00082 
00083 #ifndef __glibcpp_char_bits
00084 #define __glibcpp_char_bits 8
00085 #endif
00086 #ifdef __CHAR_UNSIGNED__
00087 #define __glibcpp_plain_char_is_signed false
00088 #else
00089 #define __glibcpp_plain_char_is_signed true
00090 #endif
00091 #ifndef __glibcpp_short_bits
00092 #define __glibcpp_short_bits 16
00093 #endif
00094 #ifndef __glibcpp_int_bits
00095 #define __glibcpp_int_bits 32
00096 #endif
00097 #ifndef __glibcpp_long_bits
00098 #define __glibcpp_long_bits 32
00099 #endif
00100 #ifndef __glibcpp_wchar_t_bits
00101 #define __glibcpp_wchar_t_bits 32
00102 #endif
00103 #ifndef __glibcpp_wchar_t_is_signed
00104 #define __glibcpp_wchar_t_is_signed true
00105 #endif
00106 #ifndef __glibcpp_long_long_bits
00107 #define __glibcpp_long_long_bits 64
00108 #endif
00109 #ifndef __glibcpp_float_bits
00110 #define __glibcpp_float_bits 32
00111 #endif
00112 #ifndef __glibcpp_double_bits
00113 #define __glibcpp_double_bits 64
00114 #endif
00115 #ifndef __glibcpp_long_double_bits
00116 #define __glibcpp_long_double_bits 128
00117 #endif
00118 
00119 #ifndef __glibcpp_char_traps
00120 #define __glibcpp_char_traps true
00121 #endif
00122 #ifndef __glibcpp_short_traps
00123 #define __glibcpp_short_traps true
00124 #endif
00125 #ifndef __glibcpp_int_traps
00126 #define __glibcpp_int_traps true
00127 #endif
00128 #ifndef __glibcpp_long_traps
00129 #define __glibcpp_long_traps true
00130 #endif
00131 #ifndef __glibcpp_wchar_t_traps
00132 #define __glibcpp_wchar_t_traps true
00133 #endif
00134 #ifndef __glibcpp_long_long_traps
00135 #define __glibcpp_long_long_traps true
00136 #endif
00137 
00138 
00139 
00140 
00141 
00142 
00143 
00144 #define __glibcpp_s8_max 127
00145 #define __glibcpp_s8_min (-__glibcpp_s8_max - 1)
00146 #define __glibcpp_s8_digits 7
00147 #define __glibcpp_s8_digits10 2
00148 #define __glibcpp_u8_min 0U
00149 #define __glibcpp_u8_max (__glibcpp_s8_max * 2 + 1)
00150 #define __glibcpp_u8_digits 8
00151 #define __glibcpp_u8_digits10 2
00152 #define __glibcpp_s16_max 32767
00153 #define __glibcpp_s16_min (-__glibcpp_s16_max - 1)
00154 #define __glibcpp_s16_digits 15
00155 #define __glibcpp_s16_digits10 4
00156 #define __glibcpp_u16_min 0U
00157 #define __glibcpp_u16_max (__glibcpp_s16_max * 2 + 1)
00158 #define __glibcpp_u16_digits 16
00159 #define __glibcpp_u16_digits10 4
00160 #define __glibcpp_s32_max 2147483647L
00161 #define __glibcpp_s32_min (-__glibcpp_s32_max - 1)
00162 #define __glibcpp_s32_digits 31
00163 #define __glibcpp_s32_digits10 9
00164 #define __glibcpp_u32_min 0UL
00165 #define __glibcpp_u32_max (__glibcpp_s32_max * 2U + 1)
00166 #define __glibcpp_u32_digits 32
00167 #define __glibcpp_u32_digits10 9
00168 #define __glibcpp_s64_max 9223372036854775807LL
00169 #define __glibcpp_s64_min (-__glibcpp_s64_max - 1)
00170 #define __glibcpp_s64_digits 63
00171 #define __glibcpp_s64_digits10 18
00172 #define __glibcpp_u64_min 0ULL
00173 #define __glibcpp_u64_max (__glibcpp_s64_max * 2ULL + 1)
00174 #define __glibcpp_u64_digits 64
00175 #define __glibcpp_u64_digits10 19
00176 
00177 #define __glibcpp_f32_min 1.17549435e-38F
00178 #define __glibcpp_f32_max 3.40282347e+38F
00179 #define __glibcpp_f32_digits 24
00180 #define __glibcpp_f32_digits10 6
00181 #define __glibcpp_f32_radix 2
00182 #define __glibcpp_f32_epsilon 1.19209290e-07F
00183 #define __glibcpp_f32_round_error 1.0F
00184 #define __glibcpp_f32_min_exponent -125
00185 #define __glibcpp_f32_min_exponent10 -37
00186 #define __glibcpp_f32_max_exponent 128
00187 #define __glibcpp_f32_max_exponent10 38
00188 #define __glibcpp_f64_min 2.2250738585072014e-308
00189 #define __glibcpp_f64_max 1.7976931348623157e+308
00190 #define __glibcpp_f64_digits 53
00191 #define __glibcpp_f64_digits10 15
00192 #define __glibcpp_f64_radix 2
00193 #define __glibcpp_f64_epsilon 2.2204460492503131e-16
00194 #define __glibcpp_f64_round_error 1.0
00195 #define __glibcpp_f64_min_exponent -1021
00196 #define __glibcpp_f64_min_exponent10 -307
00197 #define __glibcpp_f64_max_exponent 1024
00198 #define __glibcpp_f64_max_exponent10 308
00199 #define __glibcpp_f80_min 3.36210314311209350626e-4932L
00200 #define __glibcpp_f80_max 1.18973149535723176502e+4932L
00201 #define __glibcpp_f80_digits 64
00202 #define __glibcpp_f80_digits10 18
00203 #define __glibcpp_f80_radix 2
00204 #define __glibcpp_f80_epsilon 1.08420217248550443401e-19L
00205 #define __glibcpp_f80_round_error 1.0L
00206 #define __glibcpp_f80_min_exponent -16381
00207 #define __glibcpp_f80_min_exponent10 -4931
00208 #define __glibcpp_f80_max_exponent 16384
00209 #define __glibcpp_f80_max_exponent10 4932
00210 #define __glibcpp_f96_min 1.68105157155604675313e-4932L
00211 #define __glibcpp_f96_max 1.18973149535723176502e+4932L
00212 #define __glibcpp_f96_digits 64
00213 #define __glibcpp_f96_digits10 18
00214 #define __glibcpp_f96_radix 2
00215 #define __glibcpp_f96_epsilon 1.08420217248550443401e-19L
00216 #define __glibcpp_f96_round_error 1.0L
00217 #define __glibcpp_f96_min_exponent -16382
00218 #define __glibcpp_f96_min_exponent10 -4931
00219 #define __glibcpp_f96_max_exponent 16384
00220 #define __glibcpp_f96_max_exponent10 4932
00221 #define __glibcpp_f128_min 3.362103143112093506262677817321752603E-4932L
00222 #define __glibcpp_f128_max 1.189731495357231765085759326628007016E+4932L
00223 #define __glibcpp_f128_digits 113
00224 #define __glibcpp_f128_digits10 33
00225 #define __glibcpp_f128_radix 2
00226 #define __glibcpp_f128_epsilon 1.925929944387235853055977942584927319E-34L
00227 #define __glibcpp_f128_round_error 1.0L
00228 #define __glibcpp_f128_min_exponent -16381
00229 #define __glibcpp_f128_min_exponent10 -4931
00230 #define __glibcpp_f128_max_exponent 16384
00231 #define __glibcpp_f128_max_exponent10 4932
00232 
00233 
00234 
00235 
00236 #ifndef __glibcpp_bool_digits
00237 #define __glibcpp_bool_digits 1
00238 #endif
00239 
00240 
00241 
00242 #define __glibcpp_plain_char_traps true
00243 #define __glibcpp_signed_char_traps true
00244 #define __glibcpp_unsigned_char_traps true
00245 #ifndef __glibcpp_char_is_modulo
00246 #define __glibcpp_char_is_modulo true
00247 #endif
00248 #ifndef __glibcpp_signed_char_is_modulo
00249 #define __glibcpp_signed_char_is_modulo true
00250 #endif
00251 #if __glibcpp_char_bits == 8
00252 #define __glibcpp_signed_char_min __glibcpp_s8_min
00253 #define __glibcpp_signed_char_max __glibcpp_s8_max
00254 #define __glibcpp_signed_char_digits __glibcpp_s8_digits
00255 #define __glibcpp_signed_char_digits10 __glibcpp_s8_digits10
00256 #define __glibcpp_unsigned_char_min __glibcpp_u8_min
00257 #define __glibcpp_unsigned_char_max __glibcpp_u8_max
00258 #define __glibcpp_unsigned_char_digits __glibcpp_u8_digits
00259 #define __glibcpp_unsigned_char_digits10 __glibcpp_u8_digits10
00260 #elif __glibcpp_char_bits == 16
00261 #define __glibcpp_signed_char_min __glibcpp_s16_min
00262 #define __glibcpp_signed_char_max __glibcpp_s16_max
00263 #define __glibcpp_signed_char_digits __glibcpp_s16_digits
00264 #define __glibcpp_signed_char_digits10 __glibcpp_s16_digits10
00265 #define __glibcpp_unsigned_char_min __glibcpp_u16_min
00266 #define __glibcpp_unsigned_char_max __glibcpp_u16_max
00267 #define __glibcpp_unsigned_char_digits __glibcpp_u16_digits
00268 #define __glibcpp_unsigned_char_digits10 __glibcpp_u16_digits10
00269 #elif __glibcpp_char_bits == 32
00270 #define __glibcpp_signed_char_min (signed char)__glibcpp_s32_min
00271 #define __glibcpp_signed_char_max (signed char)__glibcpp_s32_max
00272 #define __glibcpp_signed_char_digits __glibcpp_s32_digits
00273 #define __glibcpp_signed_char_digits10 __glibcpp_s32_digits10
00274 #define __glibcpp_unsigned_char_min (unsigned char)__glibcpp_u32_min
00275 #define __glibcpp_unsigned_char_max (unsigned char)__glibcpp_u32_max
00276 #define __glibcpp_unsigned_char_digits __glibcpp_u32_digits
00277 #define __glibcpp_unsigned_char_digits10 __glibcpp_u32_digits10
00278 #elif __glibcpp_char_bits == 64
00279 #define __glibcpp_signed_char_min (signed char)__glibcpp_s64_min
00280 #define __glibcpp_signed_char_max (signed char)__glibcpp_s64_max
00281 #define __glibcpp_signed_char_digits __glibcpp_s64_digits
00282 #define __glibcpp_signed_char_digits10 __glibcpp_s64_digits10
00283 #define __glibcpp_unsigned_char_min (unsigned char)__glibcpp_u64_min
00284 #define __glibcpp_unsigned_char_max (unsigned char)__glibcpp_u64_max
00285 #define __glibcpp_unsigned_char_digits __glibcpp_u64_digits
00286 #define __glibcpp_unsigned_char_digits10 __glibcpp_u64_digits10
00287 #else
00288 
00289 #endif
00290 
00291 #if __glibcpp_plain_char_is_signed
00292 #define __glibcpp_char_min (char)__glibcpp_signed_char_min
00293 #define __glibcpp_char_max (char)__glibcpp_signed_char_max
00294 #define __glibcpp_char_digits __glibcpp_signed_char_digits
00295 #define __glibcpp_char_digits10 __glibcpp_signed_char_digits
00296 #else
00297 #define __glibcpp_char_min (char)__glibcpp_unsigned_char_min
00298 #define __glibcpp_char_max (char)__glibcpp_unsigned_char_max
00299 #define __glibcpp_char_digits __glibcpp_unsigned_char_digits
00300 #define __glibcpp_char_digits10 __glibcpp_unsigned_char_digits
00301 #endif
00302 
00303 
00304 
00305 #define __glibcpp_signed_short_traps true
00306 #define __glibcpp_unsigned_short_traps true
00307 #ifndef __glibcpp_signed_short_is_modulo
00308 #define __glibcpp_signed_short_is_modulo true
00309 #endif
00310 #if __glibcpp_short_bits == 8
00311 #define __glibcpp_signed_short_min __glibcpp_s8_min
00312 #define __glibcpp_signed_short_max __glibcpp_s8_max
00313 #define __glibcpp_signed_short_digits __glibcpp_s8_digits
00314 #define __glibcpp_signed_short_digits10 __glibcpp_s8_digits10
00315 #define __glibcpp_unsigned_short_min __glibcpp_u8_min
00316 #define __glibcpp_unsigned_short_max __glibcpp_u8_max
00317 #define __glibcpp_unsigned_short_digits __glibcpp_u8_digits
00318 #define __glibcpp_unsigned_short_digits10 __glibcpp_u8_digits10
00319 #elif __glibcpp_short_bits == 16
00320 #define __glibcpp_signed_short_min __glibcpp_s16_min
00321 #define __glibcpp_signed_short_max __glibcpp_s16_max
00322 #define __glibcpp_signed_short_digits __glibcpp_s16_digits
00323 #define __glibcpp_signed_short_digits10 __glibcpp_s16_digits10
00324 #define __glibcpp_unsigned_short_min __glibcpp_u16_min
00325 #define __glibcpp_unsigned_short_max __glibcpp_u16_max
00326 #define __glibcpp_unsigned_short_digits __glibcpp_u16_digits
00327 #define __glibcpp_unsigned_short_digits10 __glibcpp_u16_digits10
00328 #elif __glibcpp_short_bits == 32
00329 #define __glibcpp_signed_short_min (short)__glibcpp_s32_min
00330 #define __glibcpp_signed_short_max (short)__glibcpp_s32_max
00331 #define __glibcpp_signed_short_digits __glibcpp_s32_digits
00332 #define __glibcpp_signed_short_digits10 __glibcpp_s32_digits10
00333 #define __glibcpp_unsigned_short_min (unsigned short)__glibcpp_u32_min
00334 #define __glibcpp_unsigned_short_max (unsigned short)__glibcpp_u32_max
00335 #define __glibcpp_unsigned_short_digits __glibcpp_u32_digits
00336 #define __glibcpp_unsigned_short_digits10 __glibcpp_u32_digits10
00337 #elif __glibcpp_short_bits == 64
00338 #define __glibcpp_signed_short_min (short)__glibcpp_s64_min
00339 #define __glibcpp_signed_short_max (short)__glibcpp_s64_max
00340 #define __glibcpp_signed_short_digits __glibcpp_s64_digits
00341 #define __glibcpp_signed_short_digits10 __glibcpp_s64_digits10
00342 #define __glibcpp_unsigned_short_min (unsigned short)__glibcpp_u64_min
00343 #define __glibcpp_unsigned_short_max (unsigned short)__glibcpp_u64_max
00344 #define __glibcpp_unsigned_short_digits __glibcpp_u64_digits
00345 #define __glibcpp_unsigned_short_digits10 __glibcpp_u64_digits10
00346 #else
00347 
00348 #endif
00349 
00350 
00351 
00352 #define __glibcpp_signed_int_traps true
00353 #define __glibcpp_unsigned_int_traps true
00354 #ifndef __glibcpp_signed_int_is_modulo
00355 #define __glibcpp_signed_int_is_modulo true
00356 #endif
00357 #if __glibcpp_int_bits == 8
00358 #define __glibcpp_signed_int_min __glibcpp_s8_min
00359 #define __glibcpp_signed_int_max __glibcpp_s8_max
00360 #define __glibcpp_signed_int_digits __glibcpp_s8_digits
00361 #define __glibcpp_signed_int_digits10 __glibcpp_s8_digits10
00362 #define __glibcpp_unsigned_int_min __glibcpp_u8_min
00363 #define __glibcpp_unsigned_int_max __glibcpp_u8_max
00364 #define __glibcpp_unsigned_int_digits __glibcpp_u8_digits
00365 #define __glibcpp_unsigned_int_digits10 __glibcpp_u8_digits10
00366 #elif __glibcpp_int_bits == 16
00367 #define __glibcpp_signed_int_min __glibcpp_s16_min
00368 #define __glibcpp_signed_int_max __glibcpp_s16_max
00369 #define __glibcpp_signed_int_digits __glibcpp_s16_digits
00370 #define __glibcpp_signed_int_digits10 __glibcpp_s16_digits10
00371 #define __glibcpp_unsigned_int_min __glibcpp_u16_min
00372 #define __glibcpp_unsigned_int_max __glibcpp_u16_max
00373 #define __glibcpp_unsigned_int_digits __glibcpp_u16_digits
00374 #define __glibcpp_unsigned_int_digits10 __glibcpp_u16_digits10
00375 #elif __glibcpp_int_bits == 32
00376 #define __glibcpp_signed_int_min (int)__glibcpp_s32_min
00377 #define __glibcpp_signed_int_max (int)__glibcpp_s32_max
00378 #define __glibcpp_signed_int_digits __glibcpp_s32_digits
00379 #define __glibcpp_signed_int_digits10 __glibcpp_s32_digits10
00380 #define __glibcpp_unsigned_int_min (unsigned)__glibcpp_u32_min
00381 #define __glibcpp_unsigned_int_max (unsigned)__glibcpp_u32_max
00382 #define __glibcpp_unsigned_int_digits __glibcpp_u32_digits
00383 #define __glibcpp_unsigned_int_digits10 __glibcpp_u32_digits10
00384 #elif __glibcpp_int_bits == 64
00385 #define __glibcpp_signed_int_min (int)__glibcpp_s64_min
00386 #define __glibcpp_signed_int_max (int)__glibcpp_s64_max
00387 #define __glibcpp_signed_int_digits __glibcpp_s64_digits
00388 #define __glibcpp_signed_int_digits10 __glibcpp_s64_digits10
00389 #define __glibcpp_unsigned_int_min (unsigned)__glibcpp_u64_min
00390 #define __glibcpp_unsigned_int_max (unsigned)__glibcpp_u64_max
00391 #define __glibcpp_unsigned_int_digits __glibcpp_u64_digits
00392 #define __glibcpp_unsigned_int_digits10 __glibcpp_u64_digits10
00393 #else
00394 
00395 #endif
00396 
00397 
00398 
00399 #define __glibcpp_signed_long_traps true
00400 #define __glibcpp_unsigned_long_traps true
00401 #ifndef __glibcpp_signed_long_is_modulo
00402 #define __glibcpp_signed_long_is_modulo true
00403 #endif
00404 #if __glibcpp_long_bits == 8
00405 #define __glibcpp_signed_long_min __glibcpp_s8_min
00406 #define __glibcpp_signed_long_max __glibcpp_s8_max
00407 #define __glibcpp_signed_long_digits __glibcpp_s8_digits
00408 #define __glibcpp_signed_long_digits10 __glibcpp_s8_digits10
00409 #define __glibcpp_unsigned_long_min __glibcpp_u8_min
00410 #define __glibcpp_unsigned_long_max __glibcpp_u8_max
00411 #define __glibcpp_unsigned_long_digits __glibcpp_u8_digits
00412 #define __glibcpp_unsigned_long_digits10 __glibcpp_u8_digits10
00413 #elif __glibcpp_long_bits == 16
00414 #define __glibcpp_signed_long_min __glibcpp_s16_min
00415 #define __glibcpp_signed_long_max __glibcpp_s16_max
00416 #define __glibcpp_signed_long_digits __glibcpp_s16_digits
00417 #define __glibcpp_signed_long_digits10 __glibcpp_s16_digits10
00418 #define __glibcpp_unsigned_long_min __glibcpp_u16_min
00419 #define __glibcpp_unsigned_long_max __glibcpp_u16_max
00420 #define __glibcpp_unsigned_long_digits __glibcpp_u16_digits
00421 #define __glibcpp_unsigned_long_digits10 __glibcpp_u16_digits10
00422 #elif __glibcpp_long_bits == 32
00423 #define __glibcpp_signed_long_min __glibcpp_s32_min
00424 #define __glibcpp_signed_long_max __glibcpp_s32_max
00425 #define __glibcpp_signed_long_digits __glibcpp_s32_digits
00426 #define __glibcpp_signed_long_digits10 __glibcpp_s32_digits10
00427 #define __glibcpp_unsigned_long_min __glibcpp_u32_min
00428 #define __glibcpp_unsigned_long_max __glibcpp_u32_max
00429 #define __glibcpp_unsigned_long_digits __glibcpp_u32_digits
00430 #define __glibcpp_unsigned_long_digits10 __glibcpp_u32_digits10
00431 #elif __glibcpp_long_bits == 64
00432 #define __glibcpp_signed_long_min (long)__glibcpp_s64_min
00433 #define __glibcpp_signed_long_max (long)__glibcpp_s64_max
00434 #define __glibcpp_signed_long_digits __glibcpp_s64_digits
00435 #define __glibcpp_signed_long_digits10 __glibcpp_s64_digits10
00436 #define __glibcpp_unsigned_long_min (unsigned long)__glibcpp_u64_min
00437 #define __glibcpp_unsigned_long_max (unsigned long)__glibcpp_u64_max
00438 #define __glibcpp_unsigned_long_digits __glibcpp_u64_digits
00439 #define __glibcpp_unsigned_long_digits10 __glibcpp_u64_digits10
00440 #else
00441 
00442 #endif
00443 
00444 
00445 
00446 #define __glibcpp_signed_long_long_traps true
00447 #define __glibcpp_signed_long_long_traps true
00448 #ifndef __glibcpp_signed_long_long_is_modulo
00449 #define __glibcpp_signed_long_long_is_modulo true
00450 #endif
00451 #if __glibcpp_long_long_bits == 8
00452 #define __glibcpp_signed_long_long_min __glibcpp_s8_min
00453 #define __glibcpp_signed_long_long_max __glibcpp_s8_max
00454 #define __glibcpp_signed_long_long_digits __glibcpp_s8_digits
00455 #define __glibcpp_signed_long_long_digits10 __glibcpp_s8_digits10
00456 #define __glibcpp_unsigned_long_long_min __glibcpp_u8_min
00457 #define __glibcpp_unsigned_long_long_max __glibcpp_u8_max
00458 #define __glibcpp_unsigned_long_long_digits __glibcpp_u8_digits
00459 #define __glibcpp_unsigned_long_long_digits10 __glibcpp_u8_digits10
00460 #elif __glibcpp_long_long_bits == 16
00461 #define __glibcpp_signed_long_long_min __glibcpp_s16_min
00462 #define __glibcpp_signed_long_long_max __glibcpp_s16_max
00463 #define __glibcpp_signed_long_long_digits __glibcpp_s16_digits
00464 #define __glibcpp_signed_long_long_digits10 __glibcpp_s16_digits10
00465 #define __glibcpp_unsigned_long_long_min __glibcpp_u16_min
00466 #define __glibcpp_unsigned_long_long_max __glibcpp_u16_max
00467 #define __glibcpp_unsigned_long_long_digits __glibcpp_u16_digits
00468 #define __glibcpp_unsigned_long_long_digits10 __glibcpp_u16_digits10
00469 #elif __glibcpp_long_long_bits == 32
00470 #define __glibcpp_signed_long_long_min __glibcpp_s32_min
00471 #define __glibcpp_signed_long_long_max __glibcpp_s32_max
00472 #define __glibcpp_signed_long_long_digits __glibcpp_s32_digits
00473 #define __glibcpp_signed_long_long_digits10 __glibcpp_s32_digits10
00474 #define __glibcpp_unsigned_long_long_min __glibcpp_u32_min
00475 #define __glibcpp_unsigned_long_long_max __glibcpp_u32_max
00476 #define __glibcpp_unsigned_long_long_digits __glibcpp_u32_digits
00477 #define __glibcpp_unsigned_long_long_digits10 __glibcpp_u32_digits10
00478 #elif __glibcpp_long_long_bits == 64
00479 #define __glibcpp_signed_long_long_min __glibcpp_s64_min
00480 #define __glibcpp_signed_long_long_max __glibcpp_s64_max
00481 #define __glibcpp_signed_long_long_digits __glibcpp_s64_digits
00482 #define __glibcpp_signed_long_long_digits10 __glibcpp_s64_digits10
00483 #define __glibcpp_signed_long_long_traps true
00484 #define __glibcpp_unsigned_long_long_min __glibcpp_u64_min
00485 #define __glibcpp_unsigned_long_long_max __glibcpp_u64_max
00486 #define __glibcpp_unsigned_long_long_digits __glibcpp_u64_digits
00487 #define __glibcpp_unsigned_long_long_digits10 __glibcpp_u64_digits10
00488 #define __glibcpp_unsigned_long_long_traps true
00489 #else
00490 
00491 #endif
00492 
00493 
00494 
00495 #define __glibcpp_wchar_t_traps true
00496 #ifndef __glibcpp_wchar_t_is_modulo
00497 #define __glibcpp_wchar_t_is_modulo true
00498 #endif
00499 #if __glibcpp_wchar_t_is_signed
00500 #if __glibcpp_wchar_t_bits == 8
00501 #define __glibcpp_wchar_t_min __glibcpp_s8_min
00502 #define __glibcpp_wchar_t_max __glibcpp_s8_max
00503 #define __glibcpp_wchar_t_digits __glibcpp_s8_digits
00504 #define __glibcpp_wchar_t_digits10 __glibcpp_s8_digits10
00505 #elif __glibcpp_wchar_t_bits == 16
00506 #define __glibcpp_wchar_t_min __glibcpp_s16_min
00507 #define __glibcpp_wchar_t_max __glibcpp_s16_max
00508 #define __glibcpp_wchar_t_digits __glibcpp_s16_digits
00509 #define __glibcpp_wchar_t_digits10 __glibcpp_s16_digits10
00510 #elif __glibcpp_wchar_t_bits == 32
00511 #define __glibcpp_wchar_t_min (wchar_t)__glibcpp_s32_min
00512 #define __glibcpp_wchar_t_max (wchar_t)__glibcpp_s32_max
00513 #define __glibcpp_wchar_t_digits __glibcpp_s32_digits
00514 #define __glibcpp_wchar_t_digits10 __glibcpp_s32_digits10
00515 #elif __glibcpp_wchar_t_bits == 64
00516 #define __glibcpp_wchar_t_min (wchar_t)__glibcpp_s64_min
00517 #define __glibcpp_wchar_t_max (wchar_t)__glibcpp_s64_max
00518 #define __glibcpp_wchar_t_digits __glibcpp_s64_digits
00519 #define __glibcpp_wchar_t_digits10 __glibcpp_s64_digits10
00520 #else
00521 
00522 #endif
00523 #else
00524 #if __glibcpp_wchar_t_bits == 8
00525 #define __glibcpp_wchar_t_min __glibcpp_u8_min
00526 #define __glibcpp_wchar_t_max __glibcpp_u8_max
00527 #define __glibcpp_wchar_t_digits __glibcpp_u8_digits
00528 #define __glibcpp_wchar_t_digits10 __glibcpp_u8_digits10
00529 #elif __glibcpp_wchar_t_bits == 16
00530 #define __glibcpp_wchar_t_min __glibcpp_u16_min
00531 #define __glibcpp_wchar_t_max __glibcpp_u16_max
00532 #define __glibcpp_wchar_t_digits __glibcpp_u16_digits
00533 #define __glibcpp_wchar_t_digits10 __glibcpp_u16_digits10
00534 #elif __glibcpp_wchar_t_bits == 32
00535 #define __glibcpp_wchar_t_min (wchar_t)__glibcpp_u32_min
00536 #define __glibcpp_wchar_t_max (wchar_t)__glibcpp_u32_max
00537 #define __glibcpp_wchar_t_digits __glibcpp_u32_digits
00538 #define __glibcpp_wchar_t_digits10 __glibcpp_u32_digits10
00539 #elif __glibcpp_wchar_t_bits == 64
00540 #define __glibcpp_wchar_t_min (wchar_t)__glibcpp_u64_min
00541 #define __glibcpp_wchar_t_max (wchar_t)__glibcpp_u64_max
00542 #define __glibcpp_wchar_t_digits __glibcpp_u64_digits
00543 #define __glibcpp_wchar_t_digits10 __glibcpp_u64_digits10
00544 #else
00545 
00546 #endif
00547 #endif
00548 
00549 
00550 
00551 
00552 #if __glibcpp_float_bits == 32
00553 #define __glibcpp_float_min __glibcpp_f32_min
00554 #define __glibcpp_float_max __glibcpp_f32_max
00555 #define __glibcpp_float_digits __glibcpp_f32_digits
00556 #define __glibcpp_float_digits10 __glibcpp_f32_digits10
00557 #define __glibcpp_float_radix __glibcpp_f32_radix
00558 #define __glibcpp_float_epsilon __glibcpp_f32_epsilon
00559 #define __glibcpp_float_round_error __glibcpp_f32_round_error
00560 #define __glibcpp_float_min_exponent __glibcpp_f32_min_exponent
00561 #define __glibcpp_float_min_exponent10 __glibcpp_f32_min_exponent10
00562 #define __glibcpp_float_max_exponent __glibcpp_f32_max_exponent
00563 #define __glibcpp_float_max_exponent10 __glibcpp_f32_max_exponent10
00564 #elif __glibcpp_float_bits == 64
00565 #define __glibcpp_float_min __glibcpp_f64_min
00566 #define __glibcpp_float_max __glibcpp_f64_max
00567 #define __glibcpp_float_digits __glibcpp_f64_digits
00568 #define __glibcpp_float_digits10 __glibcpp_f64_digits10
00569 #define __glibcpp_float_radix __glibcpp_f64_radix
00570 #define __glibcpp_float_epsilon __glibcpp_f64_epsilon
00571 #define __glibcpp_float_round_error __glibcpp_f64_round_error
00572 #define __glibcpp_float_min_exponent __glibcpp_f64_min_exponent
00573 #define __glibcpp_float_min_exponent10 __glibcpp_f64_min_exponent10
00574 #define __glibcpp_float_max_exponent __glibcpp_f64_max_exponent
00575 #define __glibcpp_float_max_exponent10 __glibcpp_f64_max_exponent10
00576 #elif __glibcpp_float_bits == 80
00577 #define __glibcpp_float_min __glibcpp_f80_min
00578 #define __glibcpp_float_max __glibcpp_f80_max
00579 #define __glibcpp_float_digits __glibcpp_f80_digits
00580 #define __glibcpp_float_digits10 __glibcpp_f80_digits10
00581 #define __glibcpp_float_radix __glibcpp_f80_radix
00582 #define __glibcpp_float_epsilon __glibcpp_f80_epsilon
00583 #define __glibcpp_float_round_error __glibcpp_f80_round_error
00584 #define __glibcpp_float_min_exponent __glibcpp_f80_min_exponent
00585 #define __glibcpp_float_min_exponent10 __glibcpp_f80_min_exponent10
00586 #define __glibcpp_float_max_exponent __glibcpp_f80_max_exponent
00587 #define __glibcpp_float_max_exponent10 __glibcpp_f80_max_exponent10
00588 #else
00589 
00590 #endif
00591 
00592 
00593 
00594 #ifndef __glibcpp_float_has_infinity
00595 #define __glibcpp_float_has_infinity false
00596 #endif
00597 
00598 #ifndef __glibcpp_float_has_quiet_NaN
00599 #define __glibcpp_float_has_quiet_NaN false
00600 #endif
00601 
00602 #ifndef __glibcpp_float_has_signaling_NaN
00603 #define __glibcpp_float_has_signaling_NaN false
00604 #endif
00605 
00606 #ifndef __glibcpp_float_has_denorm
00607 #define __glibcpp_float_has_denorm denorm_absent
00608 #endif
00609 
00610 #ifndef __glibcpp_float_has_denorm_loss
00611 #define __glibcpp_float_has_denorm_loss false
00612 #endif
00613 
00614 #ifndef __glibcpp_float_infinity
00615 #define __glibcpp_float_infinity 0.0F
00616 #endif
00617 
00618 #ifndef __glibcpp_float_quiet_NaN
00619 #define __glibcpp_float_quiet_NaN 0.0F
00620 #endif
00621 
00622 #ifndef __glibcpp_float_signaling_NaN
00623 #define __glibcpp_float_signaling_NaN 0.0F
00624 #endif
00625 
00626 #ifndef __glibcpp_float_denorm_min
00627 #define __glibcpp_float_denorm_min 0.0F
00628 #endif
00629 
00630 #ifndef __glibcpp_float_is_iec559
00631 #define __glibcpp_float_is_iec559 false
00632 #endif
00633 
00634 #ifndef __glibcpp_float_is_bounded
00635 #define __glibcpp_float_is_bounded true
00636 #endif
00637 
00638 #ifndef __glibcpp_float_is_modulo
00639 #define __glibcpp_float_is_modulo false
00640 #endif
00641 
00642 #ifndef __glibcpp_float_traps
00643 #define __glibcpp_float_traps false
00644 #endif
00645 
00646 #ifndef __glibcpp_float_tinyness_before
00647 #define __glibcpp_float_tinyness_before false
00648 #endif
00649 
00650 #ifndef __glibcpp_float_round_style
00651 #define __glibcpp_float_round_style round_toward_zero
00652 #endif
00653 
00654 
00655 
00656 #if __glibcpp_double_bits == 32
00657 #define __glibcpp_double_min __glibcpp_f32_min
00658 #define __glibcpp_double_max __glibcpp_f32_max
00659 #define __glibcpp_double_digits __glibcpp_f32_digits
00660 #define __glibcpp_double_digits10 __glibcpp_f32_digits10
00661 #define __glibcpp_double_radix __glibcpp_f32_radix
00662 #define __glibcpp_double_epsilon __glibcpp_f32_epsilon
00663 #define __glibcpp_double_round_error __glibcpp_f32_round_error
00664 #define __glibcpp_double_min_exponent __glibcpp_f32_min_exponent
00665 #define __glibcpp_double_min_exponent10 __glibcpp_f32_min_exponent10
00666 #define __glibcpp_double_max_exponent __glibcpp_f32_max_exponent
00667 #define __glibcpp_double_max_exponent10 __glibcpp_f32_max_exponent10
00668 #elif __glibcpp_double_bits == 64
00669 #define __glibcpp_double_min __glibcpp_f64_min
00670 #define __glibcpp_double_max __glibcpp_f64_max
00671 #define __glibcpp_double_digits __glibcpp_f64_digits
00672 #define __glibcpp_double_digits10 __glibcpp_f64_digits10
00673 #define __glibcpp_double_radix __glibcpp_f64_radix
00674 #define __glibcpp_double_epsilon __glibcpp_f64_epsilon
00675 #define __glibcpp_double_round_error __glibcpp_f64_round_error
00676 #define __glibcpp_double_min_exponent __glibcpp_f64_min_exponent
00677 #define __glibcpp_double_min_exponent10 __glibcpp_f64_min_exponent10
00678 #define __glibcpp_double_max_exponent __glibcpp_f64_max_exponent
00679 #define __glibcpp_double_max_exponent10 __glibcpp_f64_max_exponent10
00680 #elif __glibcpp_double_bits == 80
00681 #define __glibcpp_double_min __glibcpp_f80_min
00682 #define __glibcpp_double_max __glibcpp_f80_max
00683 #define __glibcpp_double_digits __glibcpp_f80_digits
00684 #define __glibcpp_double_digits10 __glibcpp_f80_digits10
00685 #define __glibcpp_double_radix __glibcpp_f80_radix
00686 #define __glibcpp_double_epsilon __glibcpp_f80_epsilon
00687 #define __glibcpp_double_round_error __glibcpp_f80_round_error
00688 #define __glibcpp_double_min_exponent __glibcpp_f80_min_exponent
00689 #define __glibcpp_double_min_exponent10 __glibcpp_f80_min_exponent10
00690 #define __glibcpp_double_max_exponent __glibcpp_f80_max_exponent
00691 #define __glibcpp_double_max_exponent10 __glibcpp_f80_max_exponent10
00692 #else
00693 
00694 #endif
00695 
00696 
00697 
00698 #ifndef __glibcpp_double_has_infinity
00699 #define __glibcpp_double_has_infinity false
00700 #endif
00701 
00702 #ifndef __glibcpp_double_has_quiet_NaN
00703 #define __glibcpp_double_has_quiet_NaN false
00704 #endif
00705 
00706 #ifndef __glibcpp_double_has_signaling_NaN
00707 #define __glibcpp_double_has_signaling_NaN false
00708 #endif
00709 
00710 #ifndef __glibcpp_double_has_denorm
00711 #define __glibcpp_double_has_denorm denorm_absent
00712 #endif
00713 
00714 #ifndef __glibcpp_double_has_denorm_loss
00715 #define __glibcpp_double_has_denorm_loss false
00716 #endif
00717 
00718 #ifndef __glibcpp_double_infinity
00719 #define __glibcpp_double_infinity 0.0
00720 #endif
00721 
00722 #ifndef __glibcpp_double_quiet_NaN
00723 #define __glibcpp_double_quiet_NaN 0.0
00724 #endif
00725 
00726 #ifndef __glibcpp_double_signaling_NaN
00727 #define __glibcpp_double_signaling_NaN 0.0
00728 #endif
00729 
00730 #ifndef __glibcpp_double_denorm_min
00731 #define __glibcpp_double_denorm_min 0.0
00732 #endif
00733 
00734 #ifndef __glibcpp_double_is_iec559
00735 #define __glibcpp_double_is_iec559 false
00736 #endif
00737 
00738 #ifndef __glibcpp_double_is_bounded
00739 #define __glibcpp_double_is_bounded true
00740 #endif
00741 
00742 #ifndef __glibcpp_double_is_modulo
00743 #define __glibcpp_double_is_modulo false
00744 #endif
00745 
00746 #ifndef __glibcpp_double_traps
00747 #define __glibcpp_double_traps false
00748 #endif
00749 
00750 #ifndef __glibcpp_double_tinyness_before
00751 #define __glibcpp_double_tinyness_before false
00752 #endif
00753 
00754 #ifndef __glibcpp_double_round_style
00755 #define __glibcpp_double_round_style round_toward_zero
00756 #endif
00757 
00758 
00759 
00760 #if __glibcpp_long_double_bits == 32
00761 #define __glibcpp_long_double_min __glibcpp_f32_min
00762 #define __glibcpp_long_double_max __glibcpp_f32_max
00763 #define __glibcpp_long_double_digits __glibcpp_f32_digits
00764 #define __glibcpp_long_double_digits10 __glibcpp_f32_digits10
00765 #define __glibcpp_long_double_radix __glibcpp_f32_radix
00766 #define __glibcpp_long_double_epsilon __glibcpp_f32_epsilon
00767 #define __glibcpp_long_double_round_error __glibcpp_f32_round_error
00768 #define __glibcpp_long_double_min_exponent __glibcpp_f32_min_exponent
00769 #define __glibcpp_long_double_min_exponent10 __glibcpp_f32_min_exponent10
00770 #define __glibcpp_long_double_max_exponent __glibcpp_f32_max_exponent
00771 #define __glibcpp_long_double_max_exponent10 __glibcpp_f32_max_exponent10
00772 #elif __glibcpp_long_double_bits == 64
00773 #define __glibcpp_long_double_min __glibcpp_f64_min
00774 #define __glibcpp_long_double_max __glibcpp_f64_max
00775 #define __glibcpp_long_double_digits __glibcpp_f64_digits
00776 #define __glibcpp_long_double_digits10 __glibcpp_f64_digits10
00777 #define __glibcpp_long_double_radix __glibcpp_f64_radix
00778 #define __glibcpp_long_double_epsilon __glibcpp_f64_epsilon
00779 #define __glibcpp_long_double_round_error __glibcpp_f64_round_error
00780 #define __glibcpp_long_double_min_exponent __glibcpp_f64_min_exponent
00781 #define __glibcpp_long_double_min_exponent10 __glibcpp_f64_min_exponent10
00782 #define __glibcpp_long_double_max_exponent __glibcpp_f64_max_exponent
00783 #define __glibcpp_long_double_max_exponent10 __glibcpp_f64_max_exponent10
00784 #elif __glibcpp_long_double_bits == 80
00785 #define __glibcpp_long_double_min __glibcpp_f80_min
00786 #define __glibcpp_long_double_max __glibcpp_f80_max
00787 #define __glibcpp_long_double_digits __glibcpp_f80_digits
00788 #define __glibcpp_long_double_digits10 __glibcpp_f80_digits10
00789 #define __glibcpp_long_double_radix __glibcpp_f80_radix
00790 #define __glibcpp_long_double_epsilon __glibcpp_f80_epsilon
00791 #define __glibcpp_long_double_round_error __glibcpp_f80_round_error
00792 #define __glibcpp_long_double_min_exponent __glibcpp_f80_min_exponent
00793 #define __glibcpp_long_double_min_exponent10 __glibcpp_f80_min_exponent10
00794 #define __glibcpp_long_double_max_exponent __glibcpp_f80_max_exponent
00795 #define __glibcpp_long_double_max_exponent10 __glibcpp_f80_max_exponent10
00796 #elif __glibcpp_long_double_bits == 96
00797 #define __glibcpp_long_double_min __glibcpp_f96_min
00798 #define __glibcpp_long_double_max __glibcpp_f96_max
00799 #define __glibcpp_long_double_digits __glibcpp_f96_digits
00800 #define __glibcpp_long_double_digits10 __glibcpp_f96_digits10
00801 #define __glibcpp_long_double_radix __glibcpp_f96_radix
00802 #define __glibcpp_long_double_epsilon __glibcpp_f96_epsilon
00803 #define __glibcpp_long_double_round_error __glibcpp_f96_round_error
00804 #define __glibcpp_long_double_min_exponent __glibcpp_f96_min_exponent
00805 #define __glibcpp_long_double_min_exponent10 __glibcpp_f96_min_exponent10
00806 #define __glibcpp_long_double_max_exponent __glibcpp_f96_max_exponent
00807 #define __glibcpp_long_double_max_exponent10 __glibcpp_f96_max_exponent10
00808 #elif __glibcpp_long_double_bits == 128
00809 #define __glibcpp_long_double_min __glibcpp_f128_min
00810 #define __glibcpp_long_double_max __glibcpp_f128_max
00811 #define __glibcpp_long_double_digits __glibcpp_f128_digits
00812 #define __glibcpp_long_double_digits10 __glibcpp_f128_digits10
00813 #define __glibcpp_long_double_radix __glibcpp_f128_radix
00814 #define __glibcpp_long_double_epsilon __glibcpp_f128_epsilon
00815 #define __glibcpp_long_double_round_error __glibcpp_f128_round_error
00816 #define __glibcpp_long_double_min_exponent __glibcpp_f128_min_exponent
00817 #define __glibcpp_long_double_min_exponent10 __glibcpp_f128_min_exponent10
00818 #define __glibcpp_long_double_max_exponent __glibcpp_f128_max_exponent
00819 #define __glibcpp_long_double_max_exponent10 __glibcpp_f128_max_exponent10
00820 #else
00821 
00822 #endif
00823 
00824 
00825 
00826 #ifndef __glibcpp_long_double_has_infinity
00827 #define __glibcpp_long_double_has_infinity false
00828 #endif
00829 
00830 #ifndef __glibcpp_long_double_has_quiet_NaN
00831 #define __glibcpp_long_double_has_quiet_NaN false
00832 #endif
00833 
00834 #ifndef __glibcpp_long_double_has_signaling_NaN
00835 #define __glibcpp_long_double_has_signaling_NaN false
00836 #endif
00837 
00838 #ifndef __glibcpp_long_double_has_denorm
00839 #define __glibcpp_long_double_has_denorm denorm_absent
00840 #endif
00841 
00842 #ifndef __glibcpp_long_double_has_denorm_loss
00843 #define __glibcpp_long_double_has_denorm_loss false
00844 #endif
00845 
00846 #ifndef __glibcpp_long_double_infinity
00847 #define __glibcpp_long_double_infinity 0.0L
00848 #endif
00849 
00850 #ifndef __glibcpp_long_double_quiet_NaN
00851 #define __glibcpp_long_double_quiet_NaN 0.0L
00852 #endif
00853 
00854 #ifndef __glibcpp_long_double_signaling_NaN
00855 #define __glibcpp_long_double_signaling_NaN 0.0L
00856 #endif
00857 
00858 #ifndef __glibcpp_long_double_denorm_min
00859 #define __glibcpp_long_double_denorm_min 0.0L
00860 #endif
00861 
00862 #ifndef __glibcpp_long_double_is_iec559
00863 #define __glibcpp_long_double_is_iec559 false
00864 #endif
00865 
00866 #ifndef __glibcpp_long_double_is_bounded
00867 #define __glibcpp_long_double_is_bounded true
00868 #endif
00869 
00870 #ifndef __glibcpp_long_double_is_modulo
00871 #define __glibcpp_long_double_is_modulo false
00872 #endif
00873 
00874 #ifndef __glibcpp_long_double_traps
00875 #define __glibcpp_long_double_traps false
00876 #endif
00877 
00878 #ifndef __glibcpp_long_double_tinyness_before
00879 #define __glibcpp_long_double_tinyness_before false
00880 #endif
00881 
00882 #ifndef __glibcpp_long_double_round_style
00883 #define __glibcpp_long_double_round_style round_toward_zero
00884 #endif
00885 
00886 
00887 namespace std
00888 {
00889   enum float_round_style 
00890   {
00891     round_indeterminate       = -1,
00892     round_toward_zero         = 0,
00893     round_to_nearest          = 1,
00894     round_toward_infinity     = 2,
00895     round_toward_neg_infinity = 3
00896   };
00897 
00898   enum float_denorm_style 
00899   {
00900     denorm_indeterminate = -1,
00901     denorm_absent        = 0,
00902     denorm_present       = 1
00903   };
00904 
00905   
00906   
00907   
00908   struct __numeric_limits_base
00909   {
00910     static const bool is_specialized = false;
00911 
00912     static const int digits = 0;
00913     static const int digits10 = 0;
00914     static const bool is_signed = false;
00915     static const bool is_integer = false;
00916     static const bool is_exact = false;
00917     static const int radix = 0;
00918 
00919     static const int min_exponent = 0;
00920     static const int min_exponent10 = 0;
00921     static const int max_exponent = 0;
00922     static const int max_exponent10 = 0;
00923     
00924     static const bool has_infinity = false;
00925     static const bool has_quiet_NaN = false;
00926     static const bool has_signaling_NaN = false;
00927     static const float_denorm_style has_denorm = denorm_absent;
00928     static const bool has_denorm_loss = false;
00929 
00930     static const bool is_iec559 = false;
00931     static const bool is_bounded = false;
00932     static const bool is_modulo = false;
00933 
00934     static const bool traps = false;
00935     static const bool tinyness_before = false;
00936     static const float_round_style round_style = round_toward_zero;
00937   };
00938 
00939   template<typename _Tp> 
00940     struct numeric_limits : public __numeric_limits_base 
00941     {
00942       static _Tp min() throw() { return static_cast<_Tp>(0); }
00943       static _Tp max() throw() { return static_cast<_Tp>(0); }
00944       static _Tp epsilon() throw() { return static_cast<_Tp>(0); }
00945       static _Tp round_error() throw() { return static_cast<_Tp>(0); }
00946       static _Tp infinity() throw()  { return static_cast<_Tp>(0); }
00947       static _Tp quiet_NaN() throw() { return static_cast<_Tp>(0); }
00948       static _Tp signaling_NaN() throw() { return static_cast<_Tp>(0); }
00949       static _Tp denorm_min() throw() { return static_cast<_Tp>(0); }
00950     };
00951 
00952   
00953   
00954   template<>
00955     struct numeric_limits<bool>
00956     {
00957       static const bool is_specialized = true;
00958 
00959       static bool min() throw()
00960       { return false; }
00961 
00962       static bool max() throw()
00963       { return true; }
00964 
00965       static const int digits = __glibcpp_bool_digits;
00966       static const int digits10 = 0;
00967       static const bool is_signed = false;
00968       static const bool is_integer = true;
00969       static const bool is_exact = true;
00970       static const int radix = 2;
00971       static bool epsilon() throw()
00972       { return false; }
00973       static bool round_error() throw()
00974       { return false; }
00975 
00976       static const int min_exponent = 0;
00977       static const int min_exponent10 = 0;
00978       static const int max_exponent = 0;
00979       static const int max_exponent10 = 0;
00980 
00981       static const bool has_infinity = false;
00982       static const bool has_quiet_NaN = false;
00983       static const bool has_signaling_NaN = false;
00984       static const float_denorm_style has_denorm = denorm_absent;
00985       static const bool has_denorm_loss = false;
00986 
00987       static bool infinity() throw()
00988       { return false; }
00989       static bool quiet_NaN() throw()
00990       { return false; }
00991       static bool signaling_NaN() throw()
00992       { return false; }
00993       static bool denorm_min() throw()
00994       { return false; }
00995 
00996       static const bool is_iec559 = false;
00997       static const bool is_bounded = true;
00998       static const bool is_modulo = false;
00999 
01000       
01001       
01002       
01003       static const bool traps = __glibcpp_signed_int_traps
01004                || __glibcpp_signed_long_traps;
01005       static const bool tinyness_before = false;
01006       static const float_round_style round_style = round_toward_zero;
01007     };
01008 
01009 #undef __glibcpp_bool_digits  
01010   
01011   template<>
01012     struct numeric_limits<char>
01013     {
01014       static const bool is_specialized = true;
01015 
01016       static char min() throw()
01017       { return __glibcpp_char_min; }
01018       static char max() throw()
01019       { return __glibcpp_char_max; }
01020 
01021       static const int digits = __glibcpp_char_digits;
01022       static const int digits10 = __glibcpp_char_digits10;
01023       static const bool is_signed = __glibcpp_plain_char_is_signed;
01024       static const bool is_integer = true;
01025       static const bool is_exact = true;
01026       static const int radix = 2;
01027       static char epsilon() throw()
01028       { return char(); }
01029       static char round_error() throw()
01030       { return char(); }
01031 
01032       static const int min_exponent = 0;
01033       static const int min_exponent10 = 0;
01034       static const int max_exponent = 0;
01035       static const int max_exponent10 = 0;
01036 
01037       static const bool has_infinity = false;
01038       static const bool has_quiet_NaN = false;
01039       static const bool has_signaling_NaN = false;
01040       static const float_denorm_style has_denorm = denorm_absent;
01041       static const bool has_denorm_loss = false;
01042 
01043       static char infinity() throw()
01044       { return char(); }
01045       static char quiet_NaN() throw()
01046       { return char(); }
01047       static char signaling_NaN() throw()
01048       { return char(); }
01049       static char denorm_min() throw()
01050       { return static_cast<char>(0); }
01051 
01052       static const bool is_iec559 = false;
01053       static const bool is_bounded = true;
01054       static const bool is_modulo = __glibcpp_char_is_modulo;
01055 
01056       static const bool traps = __glibcpp_char_traps;
01057       static const bool tinyness_before = false;
01058       static const float_round_style round_style = round_toward_zero;
01059     };
01060 
01061 #undef __glibcpp_char_min
01062 #undef __glibcpp_char_max  
01063 #undef __glibcpp_char_digits
01064 #undef __glibcpp_char_digits10
01065 #undef __glibcpp_char_is_signed
01066 #undef __glibcpp_char_is_modulo
01067 #undef __glibcpp_char_traps
01068 
01069 
01070 
01071   template<>
01072     struct numeric_limits<signed char>
01073     {
01074       static const bool is_specialized = true;
01075 
01076       static signed char min() throw()
01077       { return __glibcpp_signed_char_min; }
01078       static signed char max() throw()
01079       { return __glibcpp_signed_char_max; }
01080 
01081       static const int digits = __glibcpp_signed_char_digits;
01082       static const int digits10 = __glibcpp_signed_char_digits10;
01083       static const bool is_signed = true;
01084       static const bool is_integer = true;
01085       static const bool is_exact = true;
01086       static const int radix = 2;
01087       static signed char epsilon() throw()
01088       { return 0; }
01089       static signed char round_error() throw()
01090       { return 0; }
01091 
01092       static const int min_exponent = 0;
01093       static const int min_exponent10 = 0;
01094       static const int max_exponent = 0;
01095       static const int max_exponent10 = 0;
01096 
01097       static const bool has_infinity = false;
01098       static const bool has_quiet_NaN = false;
01099       static const bool has_signaling_NaN = false;
01100       static const float_denorm_style has_denorm = denorm_absent;
01101       static const bool has_denorm_loss = false;
01102 
01103       static signed char infinity() throw()
01104       { return static_cast<signed char>(0); }
01105       static signed char quiet_NaN() throw()
01106       { return static_cast<signed char>(0); }
01107       static signed char signaling_NaN() throw()
01108       { return static_cast<signed char>(0); }
01109       static signed char denorm_min() throw()
01110       { return static_cast<signed char>(0); }
01111 
01112       static const bool is_iec559 = false;
01113       static const bool is_bounded = true;
01114       static const bool is_modulo = __glibcpp_signed_char_is_modulo;
01115 
01116       static const bool traps = __glibcpp_signed_char_traps;
01117       static const bool tinyness_before = false;
01118       static const float_round_style round_style = round_toward_zero;
01119     };
01120 
01121 #undef __glibcpp_signed_char_min
01122 #undef __glibcpp_signed_char_max
01123 #undef __glibcpp_signed_char_digits
01124 #undef __glibcpp_signed_char_digits10
01125 #undef __glibcpp_signed_char_is_modulo  
01126 #undef __glibcpp_signed_char_traps  
01127 
01128   template<>
01129     struct numeric_limits<unsigned char>
01130     {
01131       static const bool is_specialized = true;
01132 
01133       static unsigned char min() throw()
01134       { return 0; }
01135       static unsigned char max() throw()
01136       { return __glibcpp_unsigned_char_max; }
01137 
01138       static const int digits = __glibcpp_unsigned_char_digits;
01139       static const int digits10 = __glibcpp_unsigned_char_digits10;
01140       static const bool is_signed = false;
01141       static const bool is_integer = true;
01142       static const bool is_exact = true;
01143       static const int radix = 2;
01144       static unsigned char epsilon() throw()
01145       { return 0; }
01146       static unsigned char round_error() throw()
01147       { return 0; }
01148 
01149       static const int min_exponent = 0;
01150       static const int min_exponent10 = 0;
01151       static const int max_exponent = 0;
01152       static const int max_exponent10 = 0;
01153 
01154       static const bool has_infinity = false;
01155       static const bool has_quiet_NaN = false;
01156       static const bool has_signaling_NaN = false;
01157       static const float_denorm_style has_denorm = denorm_absent;
01158       static const bool has_denorm_loss = false;
01159 
01160       static unsigned char infinity() throw()
01161       { return static_cast<unsigned char>(0); }
01162       static unsigned char quiet_NaN() throw()
01163       { return static_cast<unsigned char>(0); }
01164       static unsigned char signaling_NaN() throw()
01165       { return static_cast<unsigned char>(0); }
01166       static unsigned char denorm_min() throw()
01167       { return static_cast<unsigned char>(0); }
01168 
01169       static const bool is_iec559 = false;
01170       static const bool is_bounded = true;
01171       static const bool is_modulo = true;
01172 
01173       static const bool traps = __glibcpp_unsigned_char_traps;
01174       static const bool tinyness_before = false;
01175       static const float_round_style round_style = round_toward_zero;
01176     };
01177 
01178 #undef __glibcpp_unsigned_char_max
01179 #undef __glibcpp_unsigned_char_digits
01180 #undef __glibcpp_unsigned_char_digits10
01181 #undef __glibcpp_unsigned_char_traps  
01182 
01183   template<>
01184     struct numeric_limits<wchar_t>
01185     {
01186       static const bool is_specialized = true;
01187 
01188       static wchar_t min() throw()
01189       { return __glibcpp_wchar_t_min; }
01190       static wchar_t max() throw()
01191       { return __glibcpp_wchar_t_max; }
01192 
01193       static const int digits = __glibcpp_wchar_t_digits;
01194       static const int digits10 = __glibcpp_wchar_t_digits10;
01195       static const bool is_signed = __glibcpp_wchar_t_is_signed;
01196       static const bool is_integer = true;
01197       static const bool is_exact = true;
01198       static const int radix = 2;
01199       static wchar_t epsilon() throw()
01200       { return 0; }
01201       static wchar_t round_error() throw()
01202       { return 0; }
01203 
01204       static const int min_exponent = 0;
01205       static const int min_exponent10 = 0;
01206       static const int max_exponent = 0;
01207       static const int max_exponent10 = 0;
01208 
01209       static const bool has_infinity = false;
01210       static const bool has_quiet_NaN = false;
01211       static const bool has_signaling_NaN = false;
01212       static const float_denorm_style has_denorm = denorm_absent;
01213       static const bool has_denorm_loss = false;
01214 
01215       static wchar_t infinity() throw()
01216       { return wchar_t(); }
01217       static wchar_t quiet_NaN() throw()
01218       { return wchar_t(); }
01219       static wchar_t signaling_NaN() throw()
01220       { return wchar_t(); }
01221       static wchar_t denorm_min() throw()
01222       { return wchar_t(); }
01223 
01224       static const bool is_iec559 = false;
01225       static const bool is_bounded = true;
01226       static const bool is_modulo = __glibcpp_wchar_t_is_modulo;
01227 
01228       static const bool traps = __glibcpp_wchar_t_traps;
01229       static const bool tinyness_before = false;
01230       static const float_round_style round_style = round_toward_zero;
01231     };
01232 
01233 #undef __glibcpp_wchar_t_min
01234 #undef __glibcpp_wchar_t_max
01235 #undef __glibcpp_wchar_t_digits
01236 #undef __glibcpp_wchar_t_digits10  
01237 #undef __glibcpp_wchar_t_is_signed
01238 #undef __glibcpp_wchar_t_is_modulo
01239 #undef __glibcpp_wchar_t_traps  
01240   
01241   template<>
01242     struct numeric_limits<short>
01243     {
01244       static const bool is_specialized = true;
01245 
01246       static short min() throw()
01247       { return __glibcpp_signed_short_min; }
01248       static short max() throw()
01249       { return __glibcpp_signed_short_max; }
01250 
01251       static const int digits = __glibcpp_signed_short_digits;
01252       static const int digits10 = __glibcpp_signed_short_digits10;
01253       static const bool is_signed = true;
01254       static const bool is_integer = true;
01255       static const bool is_exact = true;
01256       static const int radix = 2;
01257       static short epsilon() throw()
01258       { return 0; }
01259       static short round_error() throw()
01260       { return 0; }
01261 
01262       static const int min_exponent = 0;
01263       static const int min_exponent10 = 0;
01264       static const int max_exponent = 0;
01265       static const int max_exponent10 = 0;
01266 
01267       static const bool has_infinity = false;
01268       static const bool has_quiet_NaN = false;
01269       static const bool has_signaling_NaN = false;
01270       static const float_denorm_style has_denorm = denorm_absent;
01271       static const bool has_denorm_loss = false;
01272 
01273       static short infinity() throw()
01274       { return short(); }
01275       static short quiet_NaN() throw()
01276       { return short(); }
01277       static short signaling_NaN() throw()
01278       { return short(); }
01279       static short denorm_min() throw()
01280       { return short(); }
01281 
01282       static const bool is_iec559 = true;
01283       static const bool is_bounded = true;
01284       static const bool is_modulo = __glibcpp_signed_short_is_modulo;
01285 
01286       static const bool traps = __glibcpp_signed_short_traps;
01287       static const bool tinyness_before = false;
01288       static const float_round_style round_style = round_toward_zero;
01289     };
01290 
01291 #undef __glibcpp_signed_short_min
01292 #undef __glibcpp_signed_short_max
01293 #undef __glibcpp_signed_short_digits
01294 #undef __glibcpp_signed_short_digits10
01295 #undef __glibcpp_signed_short_is_modulo
01296 #undef __glibcpp_signed_short_traps  
01297   
01298   template<>
01299     struct numeric_limits<unsigned short>
01300     {
01301       static const bool is_specialized = true;
01302 
01303       static unsigned short min() throw()
01304       { return 0; }
01305       static unsigned short max() throw()
01306       { return __glibcpp_unsigned_short_max; }
01307 
01308       static const int digits = __glibcpp_unsigned_short_digits;
01309       static const int digits10 = __glibcpp_unsigned_short_digits10;
01310       static const bool is_signed = false;
01311       static const bool is_integer = true;
01312       static const bool is_exact = true;
01313       static const int radix = 2;
01314       static unsigned short epsilon() throw()
01315       { return 0; }
01316       static unsigned short round_error() throw()
01317       { return 0; }
01318 
01319       static const int min_exponent = 0;
01320       static const int min_exponent10 = 0;
01321       static const int max_exponent = 0;
01322       static const int max_exponent10 = 0;
01323 
01324       static const bool has_infinity = false;
01325       static const bool has_quiet_NaN = false;
01326       static const bool has_signaling_NaN = false;
01327       static const float_denorm_style has_denorm = denorm_absent;
01328       static const bool has_denorm_loss = false;
01329 
01330       static unsigned short infinity() throw()
01331       { return static_cast<unsigned short>(0); }
01332       static unsigned short quiet_NaN() throw()
01333       { return static_cast<unsigned short>(0); }
01334       static unsigned short signaling_NaN() throw()
01335       { return static_cast<unsigned short>(0); }
01336       static unsigned short denorm_min() throw()
01337       { return static_cast<unsigned short>(0); }
01338 
01339       static const bool is_iec559 = true;
01340       static const bool is_bounded = true;
01341       static const bool is_modulo = true;
01342 
01343       static const bool traps = __glibcpp_unsigned_short_traps;
01344       static const bool tinyness_before = false;
01345       static const float_round_style round_style = round_toward_zero;
01346     };
01347 
01348 #undef __glibcpp_unsigned_short_max
01349 #undef __glibcpp_unsigned_short_digits
01350 #undef __glibcpp_unsigned_short_digits10
01351 #undef __glibcpp_unsigned_short_traps  
01352   
01353   template<>
01354     struct numeric_limits<int>
01355     {
01356       static const bool is_specialized = true;
01357 
01358       static int min() throw()
01359       { return __glibcpp_signed_int_min; }
01360       static int max() throw()
01361       { return __glibcpp_signed_int_max; }
01362 
01363       static const int digits = __glibcpp_signed_int_digits;
01364       static const int digits10 = __glibcpp_signed_int_digits10;
01365       static const bool is_signed = true;
01366       static const bool is_integer = true;
01367       static const bool is_exact = true;
01368       static const int radix = 2;
01369       static int epsilon() throw()
01370       { return 0; }
01371       static int round_error() throw()
01372       { return 0; }
01373 
01374       static const int min_exponent = 0;
01375       static const int min_exponent10 = 0;
01376       static const int max_exponent = 0;
01377       static const int max_exponent10 = 0;
01378 
01379       static const bool has_infinity = false;
01380       static const bool has_quiet_NaN = false;
01381       static const bool has_signaling_NaN = false;
01382       static const float_denorm_style has_denorm = denorm_absent;
01383       static const bool has_denorm_loss = false;
01384 
01385       static int infinity() throw()
01386       { return static_cast<int>(0); }
01387       static int quiet_NaN() throw()
01388       { return static_cast<int>(0); }
01389       static int signaling_NaN() throw()
01390       { return static_cast<int>(0); }
01391       static int denorm_min() throw()
01392       { return static_cast<int>(0); }
01393 
01394       static const bool is_iec559 = true;
01395       static const bool is_bounded = true;
01396       static const bool is_modulo = __glibcpp_signed_int_is_modulo;
01397 
01398       static const bool traps = __glibcpp_signed_int_traps;
01399       static const bool tinyness_before = false;
01400       static const float_round_style round_style = round_toward_zero;
01401     };
01402 
01403 #undef __glibcpp_signed_int_min
01404 #undef __glibcpp_signed_int_max
01405 #undef __glibcpp_signed_int_digits
01406 #undef __glibcpp_signed_int_digits10
01407 #undef __glibcpp_signed_int_is_modulo
01408 #undef __glibcpp_signed_int_traps  
01409   
01410   template<>
01411     struct numeric_limits<unsigned int>
01412     {
01413       static const bool is_specialized = true;
01414 
01415       static unsigned int min() throw()
01416       { return 0; }
01417           static unsigned int max() throw()
01418       { return __glibcpp_unsigned_int_max; }
01419 
01420       static const int digits = __glibcpp_unsigned_int_digits;
01421       static const int digits10 = __glibcpp_unsigned_int_digits10;
01422       static const bool is_signed = false;
01423       static const bool is_integer = true;
01424       static const bool is_exact = true;
01425       static const int radix = 2;
01426       static unsigned int epsilon() throw()
01427       { return 0; }
01428       static unsigned int round_error() throw()
01429       { return 0; }
01430 
01431       static const int min_exponent = 0;
01432       static const int min_exponent10 = 0;
01433       static const int max_exponent = 0;
01434       static const int max_exponent10 = 0;
01435 
01436       static const bool has_infinity = false;
01437       static const bool has_quiet_NaN = false;
01438       static const bool has_signaling_NaN = false;
01439       static const float_denorm_style has_denorm = denorm_absent;
01440       static const bool has_denorm_loss = false;
01441 
01442       static unsigned int infinity() throw()
01443       { return static_cast<unsigned int>(0); }
01444       static unsigned int quiet_NaN() throw()
01445       { return static_cast<unsigned int>(0); }
01446       static unsigned int signaling_NaN() throw()
01447       { return static_cast<unsigned int>(0); }
01448       static unsigned int denorm_min() throw()
01449       { return static_cast<unsigned int>(0); }
01450 
01451       static const bool is_iec559 = true;
01452       static const bool is_bounded = true;
01453       static const bool is_modulo = true;
01454 
01455       static const bool traps = __glibcpp_unsigned_int_traps;
01456       static const bool tinyness_before = false;
01457       static const float_round_style round_style = round_toward_zero;
01458     };
01459 
01460 #undef __glibcpp_unsigned_int_max
01461 #undef __glibcpp_unsigned_int_digits
01462 #undef __glibcpp_unsigned_int_digits10
01463 #undef __glibcpp_unsigned_int_traps  
01464 
01465   template<>
01466     struct numeric_limits<long>
01467     {
01468       static const bool is_specialized = true;
01469 
01470       static long min() throw()
01471       { return __glibcpp_signed_long_min; }
01472       static long max() throw()
01473       { return __glibcpp_signed_long_max; }
01474 
01475       static const int digits = __glibcpp_signed_long_digits;
01476       static const int digits10 = __glibcpp_signed_long_digits10;
01477       static const bool is_signed = true;
01478       static const bool is_integer = true;
01479       static const bool is_exact = true;
01480       static const int radix = 2;
01481       static long epsilon() throw()
01482       { return 0; }
01483       static long round_error() throw()
01484       { return 0; }
01485 
01486       static const int min_exponent = 0;
01487       static const int min_exponent10 = 0;
01488       static const int max_exponent = 0;
01489       static const int max_exponent10 = 0;
01490 
01491       static const bool has_infinity = false;
01492       static const bool has_quiet_NaN = false;
01493       static const bool has_signaling_NaN = false;
01494       static const float_denorm_style has_denorm = denorm_absent;
01495       static const bool has_denorm_loss = false;
01496 
01497       static long infinity() throw()
01498       { return static_cast<long>(0); }
01499       static long quiet_NaN() throw()
01500       { return static_cast<long>(0); }
01501       static long signaling_NaN() throw()
01502       { return static_cast<long>(0); }
01503       static long denorm_min() throw()
01504       { return static_cast<long>(0); }
01505 
01506       static const bool is_iec559 = true;
01507       static const bool is_bounded = true;
01508       static const bool is_modulo = __glibcpp_signed_long_is_modulo;
01509 
01510       static const bool traps = __glibcpp_signed_long_traps;
01511       static const bool tinyness_before = false;
01512       static const float_round_style round_style = round_toward_zero;
01513     };
01514 
01515 #undef __glibcpp_signed_long_min
01516 #undef __glibcpp_signed_long_max
01517 #undef __glibcpp_signed_long_digits
01518 #undef __glibcpp_signed_long_digits10
01519 #undef __glibcpp_signed_long_is_modulo
01520 #undef __glibcpp_signed_long_traps  
01521   
01522   template<>
01523     struct numeric_limits<unsigned long>
01524     {
01525       static const bool is_specialized = true;
01526 
01527       static unsigned long min() throw()
01528       { return 0; }
01529       static unsigned long max() throw()
01530       { return __glibcpp_unsigned_long_max; }
01531 
01532       static const int digits = __glibcpp_unsigned_long_digits;
01533       static const int digits10 = __glibcpp_unsigned_long_digits10;
01534       static const bool is_signed = false;
01535       static const bool is_integer = true;
01536       static const bool is_exact = true;
01537       static const int radix = 2;
01538       static unsigned long epsilon() throw()
01539       { return 0; }
01540       static unsigned long round_error() throw()
01541       { return 0; }
01542 
01543       static const int min_exponent = 0;
01544       static const int min_exponent10 = 0;
01545       static const int max_exponent = 0;
01546       static const int max_exponent10 = 0;
01547 
01548       static const bool has_infinity = false;
01549       static const bool has_quiet_NaN = false;
01550       static const bool has_signaling_NaN = false;
01551       static const float_denorm_style has_denorm = denorm_absent;
01552       static const bool has_denorm_loss = false;
01553 
01554       static unsigned long infinity() throw()
01555       { return static_cast<unsigned long>(0); }
01556       static unsigned long quiet_NaN() throw()
01557       { return static_cast<unsigned long>(0); }
01558       static unsigned long signaling_NaN() throw()
01559       { return static_cast<unsigned long>(0); }
01560       static unsigned long denorm_min() throw()
01561       { return static_cast<unsigned long>(0); }
01562 
01563       static const bool is_iec559 = true;
01564       static const bool is_bounded = true;
01565       static const bool is_modulo = true;
01566 
01567       static const bool traps = __glibcpp_unsigned_long_traps;
01568       static const bool tinyness_before = false;
01569       static const float_round_style round_style = round_toward_zero;
01570     };
01571 
01572 #undef __glibcpp_unsigned_long_max
01573 #undef __glibcpp_unsigned_long_digits
01574 #undef __glibcpp_unsigned_long_digits10
01575 #undef __glibcpp_unsigned_long_traps  
01576 
01577   template<>
01578     struct numeric_limits<long long>
01579     {
01580       static const bool is_specialized = true;
01581       
01582       static long long min() throw()
01583       { return __glibcpp_signed_long_long_min; }
01584       static long long max() throw()
01585       { return __glibcpp_signed_long_long_max; }
01586       
01587       static const int digits = __glibcpp_signed_long_long_digits;
01588       static const int digits10 = __glibcpp_signed_long_long_digits10;
01589       static const bool is_signed = true;
01590       static const bool is_integer = true;
01591       static const bool is_exact = true;
01592       static const int radix = 2;
01593       static long long epsilon() throw()
01594       { return 0; }
01595       static long long round_error() throw()
01596       { return 0; }
01597       
01598       static const int min_exponent = 0;
01599       static const int min_exponent10 = 0;
01600       static const int max_exponent = 0;
01601       static const int max_exponent10 = 0;
01602       
01603       static const bool has_infinity = false;
01604       static const bool has_quiet_NaN = false;
01605       static const bool has_signaling_NaN = false;
01606       static const float_denorm_style has_denorm = denorm_absent;
01607       static const bool has_denorm_loss = false;
01608       
01609       static long long infinity() throw()
01610       { return static_cast<long long>(0); }
01611       static long long quiet_NaN() throw()
01612       { return static_cast<long long>(0); }
01613       static long long signaling_NaN() throw()
01614       { return static_cast<long long>(0); }
01615       static long long denorm_min() throw()
01616       { return static_cast<long long>(0); }
01617       
01618       static const bool is_iec559 = true;
01619       static const bool is_bounded = true;
01620       static const bool is_modulo = __glibcpp_signed_long_long_is_modulo;
01621 
01622       static const bool traps = __glibcpp_signed_long_long_traps;
01623       static const bool tinyness_before = false;
01624       static const float_round_style round_style = round_toward_zero;
01625     };
01626 
01627 #undef __glibcpp_signed_long_long_min
01628 #undef __glibcpp_signed_long_long_max
01629 #undef __glibcpp_signed_long_long_digits
01630 #undef __glibcpp_signed_long_long_digits10
01631 #undef __glibcpp_signed_long_long_is_modulo
01632 #undef __glibcpp_signed_long_long_traps  
01633   
01634   template<>
01635     struct numeric_limits<unsigned long long>
01636     {
01637       static const bool is_specialized = true;
01638 
01639       static unsigned long long min() throw()
01640       { return 0; }
01641       static unsigned long long max() throw()
01642       { return __glibcpp_unsigned_long_long_max; }
01643 
01644       static const int digits = __glibcpp_unsigned_long_long_digits;
01645       static const int digits10 = __glibcpp_unsigned_long_long_digits10;
01646       static const bool is_signed = false;
01647       static const bool is_integer = true;
01648       static const bool is_exact = true;
01649       static const int radix = 2;
01650       static unsigned long long epsilon() throw()
01651       { return 0; }
01652       static unsigned long long round_error() throw()
01653       { return 0; }
01654 
01655       static const int min_exponent = 0;
01656       static const int min_exponent10 = 0;
01657       static const int max_exponent = 0;
01658       static const int max_exponent10 = 0;
01659 
01660       static const bool has_infinity = false;
01661       static const bool has_quiet_NaN = false;
01662       static const bool has_signaling_NaN = false;
01663       static const float_denorm_style has_denorm = denorm_absent;
01664       static const bool has_denorm_loss = false;
01665 
01666       static unsigned long long infinity() throw()
01667       { return static_cast<unsigned long long>(0); }
01668       static unsigned long long quiet_NaN() throw()
01669       { return static_cast<unsigned long long>(0); }
01670       static unsigned long long signaling_NaN() throw()
01671       { return static_cast<unsigned long long>(0); }
01672       static unsigned long long denorm_min() throw()
01673       { return static_cast<unsigned long long>(0); }
01674 
01675       static const bool is_iec559 = true;
01676       static const bool is_bounded = true;
01677       static const bool is_modulo = true;
01678 
01679       static const bool traps = true;
01680       static const bool tinyness_before = false;
01681       static const float_round_style round_style = round_toward_zero;
01682     };
01683 
01684 #undef __glibcpp_unsigned_long_long_max
01685 #undef __glibcpp_unsigned_long_long_digits
01686 #undef __glibcpp_unsigned_long_long_digits10
01687 #undef __glibcpp_unsigned_long_long_traps  
01688 
01689   template<>
01690     struct numeric_limits<float>
01691     {
01692       static const bool is_specialized = true;
01693 
01694       static float min() throw()
01695       { return __glibcpp_float_min; }
01696       static float max() throw()
01697       { return __glibcpp_float_max; }
01698 
01699       static const int digits = __glibcpp_float_digits;
01700       static const int digits10 = __glibcpp_float_digits10;
01701       static const bool is_signed = true;
01702       static const bool is_integer = false;
01703       static const bool is_exact = false;
01704       static const int radix = __glibcpp_float_radix;
01705       static float epsilon() throw()
01706       { return __glibcpp_float_epsilon; }
01707       static float round_error() throw()
01708       { return __glibcpp_float_round_error; }
01709 
01710       static const int min_exponent = __glibcpp_float_min_exponent;
01711       static const int min_exponent10 = __glibcpp_float_min_exponent10;
01712       static const int max_exponent = __glibcpp_float_max_exponent;
01713       static const int max_exponent10 = __glibcpp_float_max_exponent10;
01714 
01715       static const bool has_infinity = __glibcpp_float_has_infinity;
01716       static const bool has_quiet_NaN = __glibcpp_float_has_quiet_NaN;
01717       static const bool has_signaling_NaN = __glibcpp_float_has_signaling_NaN;
01718       static const float_denorm_style has_denorm = __glibcpp_float_has_denorm;
01719       static const bool has_denorm_loss = __glibcpp_float_has_denorm_loss;
01720 
01721       static float infinity() throw()
01722       { return __glibcpp_float_infinity; }
01723       static float quiet_NaN() throw()
01724       { return __glibcpp_float_quiet_NaN; }
01725       static float signaling_NaN() throw()
01726       { return __glibcpp_float_signaling_NaN; }
01727       static float denorm_min() throw()
01728       { return __glibcpp_float_denorm_min; }
01729 
01730       static const bool is_iec559 = __glibcpp_float_is_iec559;
01731       static const bool is_bounded = __glibcpp_float_is_bounded;
01732       static const bool is_modulo = __glibcpp_float_is_modulo;
01733 
01734       static const bool traps = __glibcpp_float_traps;
01735       static const bool tinyness_before = __glibcpp_float_tinyness_before;
01736       static const float_round_style round_style = __glibcpp_float_round_style;
01737     };
01738 
01739 #undef __glibcpp_float_min
01740 #undef __glibcpp_float_max
01741 #undef __glibcpp_float_digits
01742 #undef __glibcpp_float_digits10
01743 #undef __glibcpp_float_radix
01744 #undef __glibcpp_float_round_error
01745 #undef __glibcpp_float_min_exponent
01746 #undef __glibcpp_float_min_exponent10
01747 #undef __glibcpp_float_max_exponent
01748 #undef __glibcpp_float_max_exponent10
01749 #undef __glibcpp_float_has_infinity
01750 #undef __glibcpp_float_has_quiet_NaN
01751 #undef __glibcpp_float_has_signaling_NaN
01752 #undef __glibcpp_float_has_denorm
01753 #undef __glibcpp_float_has_denorm_loss
01754 #undef __glibcpp_float_infinity
01755 #undef __glibcpp_float_quiet_NaN
01756 #undef __glibcpp_float_signaling_NaN
01757 #undef __glibcpp_float_denorm_min
01758 #undef __glibcpp_float_is_iec559
01759 #undef __glibcpp_float_is_bounded
01760 #undef __glibcpp_float_is_modulo
01761 #undef __glibcpp_float_traps
01762 #undef __glibcpp_float_tinyness_before
01763 #undef __glibcpp_float_round_style  
01764 
01765   template<>
01766     struct numeric_limits<double>
01767     {
01768       static const bool is_specialized = true;
01769 
01770       static double min() throw()
01771       { return __glibcpp_double_min; }
01772       static double max() throw()
01773       { return __glibcpp_double_max; }
01774 
01775       static const int digits = __glibcpp_double_digits;
01776       static const int digits10 = __glibcpp_double_digits10;
01777       static const bool is_signed = true;
01778       static const bool is_integer = false;
01779       static const bool is_exact = false;
01780       static const int radix = __glibcpp_double_radix;
01781       static double epsilon() throw()
01782       { return __glibcpp_double_epsilon; }
01783       static double round_error() throw()
01784       { return __glibcpp_double_round_error; }
01785 
01786       static const int min_exponent = __glibcpp_double_min_exponent;
01787       static const int min_exponent10 = __glibcpp_double_min_exponent10;
01788       static const int max_exponent = __glibcpp_double_max_exponent;
01789       static const int max_exponent10 = __glibcpp_double_max_exponent10;
01790 
01791       static const bool has_infinity = __glibcpp_double_has_infinity;
01792       static const bool has_quiet_NaN = __glibcpp_double_has_quiet_NaN;
01793       static const bool has_signaling_NaN = __glibcpp_double_has_signaling_NaN;
01794       static const float_denorm_style has_denorm =
01795               __glibcpp_double_has_denorm;
01796       static const bool has_denorm_loss = __glibcpp_double_has_denorm_loss;
01797 
01798       static double infinity() throw()
01799       { return __glibcpp_double_infinity; }
01800       static double quiet_NaN() throw()
01801       { return __glibcpp_double_quiet_NaN; }
01802       static double signaling_NaN() throw()
01803       { return __glibcpp_double_signaling_NaN; }
01804       static double denorm_min() throw()
01805       { return __glibcpp_double_denorm_min; }
01806 
01807       static const bool is_iec559 = __glibcpp_double_is_iec559;
01808       static const bool is_bounded = __glibcpp_double_is_bounded;
01809       static const bool is_modulo = __glibcpp_double_is_modulo;
01810 
01811       static const bool traps = __glibcpp_double_traps;
01812       static const bool tinyness_before = __glibcpp_double_tinyness_before;
01813       static const float_round_style round_style =
01814               __glibcpp_double_round_style;
01815     };
01816 
01817 #undef __glibcpp_double_min
01818 #undef __glibcpp_double_max
01819 #undef __glibcpp_double_digits
01820 #undef __glibcpp_double_digits10
01821 #undef __glibcpp_double_radix
01822 #undef __glibcpp_double_round_error
01823 #undef __glibcpp_double_min_exponent
01824 #undef __glibcpp_double_min_exponent10
01825 #undef __glibcpp_double_max_exponent
01826 #undef __glibcpp_double_max_exponent10
01827 #undef __glibcpp_double_has_infinity
01828 #undef __glibcpp_double_has_quiet_NaN
01829 #undef __glibcpp_double_has_signaling_NaN
01830 #undef __glibcpp_double_has_denorm
01831 #undef __glibcpp_double_has_denorm_loss
01832 #undef __glibcpp_double_infinity
01833 #undef __glibcpp_double_quiet_NaN
01834 #undef __glibcpp_double_signaling_NaN
01835 #undef __glibcpp_double_denorm_min
01836 #undef __glibcpp_double_is_iec559
01837 #undef __glibcpp_double_is_bounded
01838 #undef __glibcpp_double_is_modulo
01839 #undef __glibcpp_double_traps
01840 #undef __glibcpp_double_tinyness_before
01841 #undef __glibcpp_double_round_style  
01842   
01843   
01844   template<>
01845     struct numeric_limits<long double>
01846     {
01847       static const bool is_specialized = true;
01848 
01849       static long double min() throw()
01850       { return __glibcpp_long_double_min; }
01851       static long double max() throw()
01852       { return __glibcpp_long_double_max; }
01853 
01854       static const int digits = __glibcpp_long_double_digits;
01855       static const int digits10 = __glibcpp_long_double_digits10;
01856       static const bool is_signed = true;
01857       static const bool is_integer = false;
01858       static const bool is_exact = false;
01859       static const int radix = __glibcpp_long_double_radix;
01860       static long double epsilon() throw()
01861       { return __glibcpp_long_double_epsilon; }
01862       static long double round_error() throw()
01863       { return __glibcpp_long_double_round_error; }
01864 
01865       static const int min_exponent = __glibcpp_long_double_min_exponent;
01866       static const int min_exponent10 = __glibcpp_long_double_min_exponent10;
01867       static const int max_exponent = __glibcpp_long_double_max_exponent;
01868       static const int max_exponent10 = __glibcpp_long_double_max_exponent10;
01869 
01870       static const bool has_infinity = __glibcpp_long_double_has_infinity;
01871       static const bool has_quiet_NaN = __glibcpp_long_double_has_quiet_NaN;
01872       static const bool has_signaling_NaN =
01873                 __glibcpp_long_double_has_signaling_NaN;
01874       static const float_denorm_style has_denorm =
01875                 __glibcpp_long_double_has_denorm;
01876       static const bool has_denorm_loss =
01877                 __glibcpp_long_double_has_denorm_loss;
01878 
01879       static long double infinity() throw()
01880       { return __glibcpp_long_double_infinity; }
01881       static long double quiet_NaN() throw()
01882       { return __glibcpp_long_double_quiet_NaN; }
01883       static long double signaling_NaN() throw()
01884       { return __glibcpp_long_double_signaling_NaN; }
01885       static long double denorm_min() throw()
01886       { return __glibcpp_long_double_denorm_min; }
01887 
01888       static const bool is_iec559 = __glibcpp_long_double_is_iec559;
01889       static const bool is_bounded = __glibcpp_long_double_is_bounded;
01890       static const bool is_modulo = __glibcpp_long_double_is_modulo;
01891 
01892       static const bool traps = __glibcpp_long_double_traps; 
01893       static const bool tinyness_before = __glibcpp_long_double_tinyness_before;
01894       static const float_round_style round_style = 
01895         __glibcpp_long_double_round_style;
01896     };
01897 
01898 #undef __glibcpp_long_double_min
01899 #undef __glibcpp_long_double_max
01900 #undef __glibcpp_long_double_digits
01901 #undef __glibcpp_long_double_digits10
01902 #undef __glibcpp_long_double_radix
01903 #undef __glibcpp_long_double_round_error
01904 #undef __glibcpp_long_double_min_exponent
01905 #undef __glibcpp_long_double_min_exponent10
01906 #undef __glibcpp_long_double_max_exponent
01907 #undef __glibcpp_long_double_max_exponent10
01908 #undef __glibcpp_long_double_has_infinity
01909 #undef __glibcpp_long_double_has_quiet_NaN
01910 #undef __glibcpp_long_double_has_signaling_NaN
01911 #undef __glibcpp_long_double_has_denorm
01912 #undef __glibcpp_long_double_has_denorm_loss
01913 #undef __glibcpp_long_double_infinity
01914 #undef __glibcpp_long_double_quiet_NaN
01915 #undef __glibcpp_long_double_signaling_NaN
01916 #undef __glibcpp_long_double_denorm_min
01917 #undef __glibcpp_long_double_is_iec559
01918 #undef __glibcpp_long_double_is_bounded
01919 #undef __glibcpp_long_double_is_modulo
01920 #undef __glibcpp_long_double_traps
01921 #undef __glibcpp_long_double_tinyness_before
01922 #undef __glibcpp_long_double_round_style  
01923   
01924 } 
01925 
01926 #endif // _CPP_NUMERIC_LIMITS