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_digits10
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_digits10
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