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