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 #include <limits>
00038 
00039 namespace std 
00040 {
00041   const bool __numeric_limits_base::is_specialized;
00042   const int  __numeric_limits_base::digits;
00043   const int  __numeric_limits_base::digits10;
00044   const bool __numeric_limits_base::is_signed;
00045   const bool __numeric_limits_base::is_integer;
00046   const bool __numeric_limits_base::is_exact;
00047   const int  __numeric_limits_base::radix;
00048   const int  __numeric_limits_base::min_exponent;
00049   const int  __numeric_limits_base::min_exponent10;
00050   const int  __numeric_limits_base::max_exponent;
00051   const int  __numeric_limits_base::max_exponent10;
00052   const bool __numeric_limits_base::has_infinity;
00053   const bool __numeric_limits_base::has_quiet_NaN;
00054   const bool __numeric_limits_base::has_signaling_NaN;
00055   const float_denorm_style __numeric_limits_base::has_denorm;
00056   const bool __numeric_limits_base::has_denorm_loss;
00057   const bool __numeric_limits_base::is_iec559;
00058   const bool __numeric_limits_base::is_bounded;
00059   const bool __numeric_limits_base::is_modulo;
00060   const bool __numeric_limits_base::traps;
00061   const bool __numeric_limits_base::tinyness_before;
00062   const float_round_style __numeric_limits_base::round_style;
00063 
00064   
00065   const bool numeric_limits<bool>::is_specialized;
00066   const int  numeric_limits<bool>::digits;
00067   const int  numeric_limits<bool>::digits10;
00068   const bool numeric_limits<bool>::is_signed;
00069   const bool numeric_limits<bool>::is_integer;
00070   const bool numeric_limits<bool>::is_exact;
00071   const int  numeric_limits<bool>::radix;
00072   const int  numeric_limits<bool>::min_exponent;
00073   const int  numeric_limits<bool>::min_exponent10;
00074   const int  numeric_limits<bool>::max_exponent;
00075   const int  numeric_limits<bool>::max_exponent10;
00076   const bool numeric_limits<bool>::has_infinity;
00077   const bool numeric_limits<bool>::has_quiet_NaN;
00078   const bool numeric_limits<bool>::has_signaling_NaN;
00079   const float_denorm_style numeric_limits<bool>::has_denorm;
00080   const bool numeric_limits<bool>::has_denorm_loss;
00081   const bool numeric_limits<bool>::is_iec559;
00082   const bool numeric_limits<bool>::is_bounded;
00083   const bool numeric_limits<bool>::is_modulo;
00084   const bool numeric_limits<bool>::traps;
00085   const bool numeric_limits<bool>::tinyness_before;
00086   const float_round_style numeric_limits<bool>::round_style;
00087 
00088   
00089   const bool numeric_limits<char>::is_specialized;
00090   const int  numeric_limits<char>::digits;
00091   const int  numeric_limits<char>::digits10;
00092   const bool numeric_limits<char>::is_signed;
00093   const bool numeric_limits<char>::is_integer;
00094   const bool numeric_limits<char>::is_exact;
00095   const int  numeric_limits<char>::radix;
00096   const int  numeric_limits<char>::min_exponent;
00097   const int  numeric_limits<char>::min_exponent10;
00098   const int  numeric_limits<char>::max_exponent;
00099   const int  numeric_limits<char>::max_exponent10;
00100   const bool numeric_limits<char>::has_infinity;
00101   const bool numeric_limits<char>::has_quiet_NaN;
00102   const bool numeric_limits<char>::has_signaling_NaN;
00103   const float_denorm_style numeric_limits<char>::has_denorm;
00104   const bool numeric_limits<char>::has_denorm_loss;
00105   const bool numeric_limits<char>::is_iec559;
00106   const bool numeric_limits<char>::is_bounded;
00107   const bool numeric_limits<char>::is_modulo;
00108   const bool numeric_limits<char>::traps;
00109   const bool numeric_limits<char>::tinyness_before;
00110   const float_round_style numeric_limits<char>::round_style;
00111 
00112   
00113   const bool numeric_limits<signed char>::is_specialized;
00114   const int  numeric_limits<signed char>::digits;
00115   const int  numeric_limits<signed char>::digits10;
00116   const bool numeric_limits<signed char>::is_signed;
00117   const bool numeric_limits<signed char>::is_integer;
00118   const bool numeric_limits<signed char>::is_exact;
00119   const int  numeric_limits<signed char>::radix;
00120   const int  numeric_limits<signed char>::min_exponent;
00121   const int  numeric_limits<signed char>::min_exponent10;
00122   const int  numeric_limits<signed char>::max_exponent;
00123   const int  numeric_limits<signed char>::max_exponent10;
00124   const bool numeric_limits<signed char>::has_infinity;
00125   const bool numeric_limits<signed char>::has_quiet_NaN;
00126   const bool numeric_limits<signed char>::has_signaling_NaN;
00127   const float_denorm_style numeric_limits<signed char>::has_denorm;
00128   const bool numeric_limits<signed char>::has_denorm_loss;
00129   const bool numeric_limits<signed char>::is_iec559;
00130   const bool numeric_limits<signed char>::is_bounded;
00131   const bool numeric_limits<signed char>::is_modulo;
00132   const bool numeric_limits<signed char>::traps;
00133   const bool numeric_limits<signed char>::tinyness_before;
00134   const float_round_style numeric_limits<signed char>::round_style;
00135 
00136   
00137   const bool numeric_limits<unsigned char>::is_specialized;
00138   const int  numeric_limits<unsigned char>::digits;
00139   const int  numeric_limits<unsigned char>::digits10;
00140   const bool numeric_limits<unsigned char>::is_signed;
00141   const bool numeric_limits<unsigned char>::is_integer;
00142   const bool numeric_limits<unsigned char>::is_exact;
00143   const int  numeric_limits<unsigned char>::radix;
00144   const int  numeric_limits<unsigned char>::min_exponent;
00145   const int  numeric_limits<unsigned char>::min_exponent10;
00146   const int  numeric_limits<unsigned char>::max_exponent;
00147   const int  numeric_limits<unsigned char>::max_exponent10;
00148   const bool numeric_limits<unsigned char>::has_infinity;
00149   const bool numeric_limits<unsigned char>::has_quiet_NaN;
00150   const bool numeric_limits<unsigned char>::has_signaling_NaN;
00151   const float_denorm_style numeric_limits<unsigned char>::has_denorm;
00152   const bool numeric_limits<unsigned char>::has_denorm_loss;
00153   const bool numeric_limits<unsigned char>::is_iec559;
00154   const bool numeric_limits<unsigned char>::is_bounded;
00155   const bool numeric_limits<unsigned char>::is_modulo;
00156   const bool numeric_limits<unsigned char>::traps;
00157   const bool numeric_limits<unsigned char>::tinyness_before;
00158   const float_round_style numeric_limits<unsigned char>::round_style;
00159 
00160   
00161   
00162 #ifdef _GLIBCPP_USE_WCHAR_T  
00163   const bool numeric_limits<wchar_t>::is_specialized;
00164   const int  numeric_limits<wchar_t>::digits;
00165   const int  numeric_limits<wchar_t>::digits10;
00166   const bool numeric_limits<wchar_t>::is_signed;
00167   const bool numeric_limits<wchar_t>::is_integer;
00168   const bool numeric_limits<wchar_t>::is_exact;
00169   const int  numeric_limits<wchar_t>::radix;
00170   const int  numeric_limits<wchar_t>::min_exponent;
00171   const int  numeric_limits<wchar_t>::min_exponent10;
00172   const int  numeric_limits<wchar_t>::max_exponent;
00173   const int  numeric_limits<wchar_t>::max_exponent10;
00174   const bool numeric_limits<wchar_t>::has_infinity;
00175   const bool numeric_limits<wchar_t>::has_quiet_NaN;
00176   const bool numeric_limits<wchar_t>::has_signaling_NaN;
00177   const float_denorm_style numeric_limits<wchar_t>::has_denorm;
00178   const bool numeric_limits<wchar_t>::has_denorm_loss;
00179   const bool numeric_limits<wchar_t>::is_iec559;
00180   const bool numeric_limits<wchar_t>::is_bounded;
00181   const bool numeric_limits<wchar_t>::is_modulo;
00182   const bool numeric_limits<wchar_t>::traps;
00183   const bool numeric_limits<wchar_t>::tinyness_before;
00184   const float_round_style numeric_limits<wchar_t>::round_style;
00185 #endif // _GLIBCPP_USE_WCHAR_T
00186 
00187   
00188   const bool numeric_limits<short>::is_specialized;
00189   const int  numeric_limits<short>::digits;
00190   const int  numeric_limits<short>::digits10;
00191   const bool numeric_limits<short>::is_signed;
00192   const bool numeric_limits<short>::is_integer;
00193   const bool numeric_limits<short>::is_exact;
00194   const int  numeric_limits<short>::radix;
00195   const int  numeric_limits<short>::min_exponent;
00196   const int  numeric_limits<short>::min_exponent10;
00197   const int  numeric_limits<short>::max_exponent;
00198   const int  numeric_limits<short>::max_exponent10;
00199   const bool numeric_limits<short>::has_infinity;
00200   const bool numeric_limits<short>::has_quiet_NaN;
00201   const bool numeric_limits<short>::has_signaling_NaN;
00202   const float_denorm_style numeric_limits<short>::has_denorm;
00203   const bool numeric_limits<short>::has_denorm_loss;
00204   const bool numeric_limits<short>::is_iec559;
00205   const bool numeric_limits<short>::is_bounded;
00206   const bool numeric_limits<short>::is_modulo;
00207   const bool numeric_limits<short>::traps;
00208   const bool numeric_limits<short>::tinyness_before;
00209   const float_round_style numeric_limits<short>::round_style;
00210 
00211   
00212   const bool numeric_limits<unsigned short>::is_specialized;
00213   const int  numeric_limits<unsigned short>::digits;
00214   const int  numeric_limits<unsigned short>::digits10;
00215   const bool numeric_limits<unsigned short>::is_signed;
00216   const bool numeric_limits<unsigned short>::is_integer;
00217   const bool numeric_limits<unsigned short>::is_exact;
00218   const int  numeric_limits<unsigned short>::radix;
00219   const int  numeric_limits<unsigned short>::min_exponent;
00220   const int  numeric_limits<unsigned short>::min_exponent10;
00221   const int  numeric_limits<unsigned short>::max_exponent;
00222   const int  numeric_limits<unsigned short>::max_exponent10;
00223   const bool numeric_limits<unsigned short>::has_infinity;
00224   const bool numeric_limits<unsigned short>::has_quiet_NaN;
00225   const bool numeric_limits<unsigned short>::has_signaling_NaN;
00226   const float_denorm_style numeric_limits<unsigned short>::has_denorm;
00227   const bool numeric_limits<unsigned short>::has_denorm_loss;
00228   const bool numeric_limits<unsigned short>::is_iec559;
00229   const bool numeric_limits<unsigned short>::is_bounded;
00230   const bool numeric_limits<unsigned short>::is_modulo;
00231   const bool numeric_limits<unsigned short>::traps;
00232   const bool numeric_limits<unsigned short>::tinyness_before;
00233   const float_round_style numeric_limits<unsigned short>::round_style;
00234 
00235   
00236   const bool numeric_limits<int>::is_specialized;
00237   const int  numeric_limits<int>::digits;
00238   const int  numeric_limits<int>::digits10;
00239   const bool numeric_limits<int>::is_signed;
00240   const bool numeric_limits<int>::is_integer;
00241   const bool numeric_limits<int>::is_exact;
00242   const int  numeric_limits<int>::radix;
00243   const int  numeric_limits<int>::min_exponent;
00244   const int  numeric_limits<int>::min_exponent10;
00245   const int  numeric_limits<int>::max_exponent;
00246   const int  numeric_limits<int>::max_exponent10;
00247   const bool numeric_limits<int>::has_infinity;
00248   const bool numeric_limits<int>::has_quiet_NaN;
00249   const bool numeric_limits<int>::has_signaling_NaN;
00250   const float_denorm_style numeric_limits<int>::has_denorm;
00251   const bool numeric_limits<int>::has_denorm_loss;
00252   const bool numeric_limits<int>::is_iec559;
00253   const bool numeric_limits<int>::is_bounded;
00254   const bool numeric_limits<int>::is_modulo;
00255   const bool numeric_limits<int>::traps;
00256   const bool numeric_limits<int>::tinyness_before;
00257   const float_round_style numeric_limits<int>::round_style;
00258 
00259   
00260   const bool numeric_limits<unsigned int>::is_specialized;
00261   const int  numeric_limits<unsigned int>::digits;
00262   const int  numeric_limits<unsigned int>::digits10;
00263   const bool numeric_limits<unsigned int>::is_signed;
00264   const bool numeric_limits<unsigned int>::is_integer;
00265   const bool numeric_limits<unsigned int>::is_exact;
00266   const int  numeric_limits<unsigned int>::radix;
00267   const int  numeric_limits<unsigned int>::min_exponent;
00268   const int  numeric_limits<unsigned int>::min_exponent10;
00269   const int  numeric_limits<unsigned int>::max_exponent;
00270   const int  numeric_limits<unsigned int>::max_exponent10;
00271   const bool numeric_limits<unsigned int>::has_infinity;
00272   const bool numeric_limits<unsigned int>::has_quiet_NaN;
00273   const bool numeric_limits<unsigned int>::has_signaling_NaN;
00274   const float_denorm_style numeric_limits<unsigned int>::has_denorm;
00275   const bool numeric_limits<unsigned int>::has_denorm_loss;
00276   const bool numeric_limits<unsigned int>::is_iec559;
00277   const bool numeric_limits<unsigned int>::is_bounded;
00278   const bool numeric_limits<unsigned int>::is_modulo;
00279   const bool numeric_limits<unsigned int>::traps;
00280   const bool numeric_limits<unsigned int>::tinyness_before;
00281   const float_round_style numeric_limits<unsigned int>::round_style;
00282 
00283   
00284   const bool numeric_limits<long>::is_specialized;
00285   const int  numeric_limits<long>::digits;
00286   const int  numeric_limits<long>::digits10;
00287   const bool numeric_limits<long>::is_signed;
00288   const bool numeric_limits<long>::is_integer;
00289   const bool numeric_limits<long>::is_exact;
00290   const int  numeric_limits<long>::radix;
00291   const int  numeric_limits<long>::min_exponent;
00292   const int  numeric_limits<long>::min_exponent10;
00293   const int  numeric_limits<long>::max_exponent;
00294   const int  numeric_limits<long>::max_exponent10;
00295   const bool numeric_limits<long>::has_infinity;
00296   const bool numeric_limits<long>::has_quiet_NaN;
00297   const bool numeric_limits<long>::has_signaling_NaN;
00298   const float_denorm_style numeric_limits<long>::has_denorm;
00299   const bool numeric_limits<long>::has_denorm_loss;
00300   const bool numeric_limits<long>::is_iec559;
00301   const bool numeric_limits<long>::is_bounded;
00302   const bool numeric_limits<long>::is_modulo;
00303   const bool numeric_limits<long>::traps;
00304   const bool numeric_limits<long>::tinyness_before;
00305   const float_round_style numeric_limits<long>::round_style;
00306 
00307   
00308   const bool numeric_limits<unsigned long>::is_specialized;
00309   const int  numeric_limits<unsigned long>::digits;
00310   const int  numeric_limits<unsigned long>::digits10;
00311   const bool numeric_limits<unsigned long>::is_signed;
00312   const bool numeric_limits<unsigned long>::is_integer;
00313   const bool numeric_limits<unsigned long>::is_exact;
00314   const int  numeric_limits<unsigned long>::radix;
00315   const int  numeric_limits<unsigned long>::min_exponent;
00316   const int  numeric_limits<unsigned long>::min_exponent10;
00317   const int  numeric_limits<unsigned long>::max_exponent;
00318   const int  numeric_limits<unsigned long>::max_exponent10;
00319   const bool numeric_limits<unsigned long>::has_infinity;
00320   const bool numeric_limits<unsigned long>::has_quiet_NaN;
00321   const bool numeric_limits<unsigned long>::has_signaling_NaN;
00322   const float_denorm_style numeric_limits<unsigned long>::has_denorm;
00323   const bool numeric_limits<unsigned long>::has_denorm_loss;
00324   const bool numeric_limits<unsigned long>::is_iec559;
00325   const bool numeric_limits<unsigned long>::is_bounded;
00326   const bool numeric_limits<unsigned long>::is_modulo;
00327   const bool numeric_limits<unsigned long>::traps;
00328   const bool numeric_limits<unsigned long>::tinyness_before;
00329   const float_round_style numeric_limits<unsigned long>::round_style;
00330 
00331   
00332   const bool numeric_limits<long long>::is_specialized;
00333   const int  numeric_limits<long long>::digits;
00334   const int  numeric_limits<long long>::digits10;
00335   const bool numeric_limits<long long>::is_signed;
00336   const bool numeric_limits<long long>::is_integer;
00337   const bool numeric_limits<long long>::is_exact;
00338   const int  numeric_limits<long long>::radix;
00339   const int  numeric_limits<long long>::min_exponent;
00340   const int  numeric_limits<long long>::min_exponent10;
00341   const int  numeric_limits<long long>::max_exponent;
00342   const int  numeric_limits<long long>::max_exponent10;
00343   const bool numeric_limits<long long>::has_infinity;
00344   const bool numeric_limits<long long>::has_quiet_NaN;
00345   const bool numeric_limits<long long>::has_signaling_NaN;
00346   const float_denorm_style numeric_limits<long long>::has_denorm;
00347   const bool numeric_limits<long long>::has_denorm_loss;
00348   const bool numeric_limits<long long>::is_iec559;
00349   const bool numeric_limits<long long>::is_bounded;
00350   const bool numeric_limits<long long>::is_modulo;
00351   const bool numeric_limits<long long>::traps;
00352   const bool numeric_limits<long long>::tinyness_before;
00353   const float_round_style numeric_limits<long long>::round_style;
00354 
00355   const bool numeric_limits<unsigned long long>::is_specialized;
00356   const int  numeric_limits<unsigned long long>::digits;
00357   const int  numeric_limits<unsigned long long>::digits10;
00358   const bool numeric_limits<unsigned long long>::is_signed;
00359   const bool numeric_limits<unsigned long long>::is_integer;
00360   const bool numeric_limits<unsigned long long>::is_exact;
00361   const int  numeric_limits<unsigned long long>::radix;
00362   const int  numeric_limits<unsigned long long>::min_exponent;
00363   const int  numeric_limits<unsigned long long>::min_exponent10;
00364   const int  numeric_limits<unsigned long long>::max_exponent;
00365   const int  numeric_limits<unsigned long long>::max_exponent10;
00366   const bool numeric_limits<unsigned long long>::has_infinity;
00367   const bool numeric_limits<unsigned long long>::has_quiet_NaN;
00368   const bool numeric_limits<unsigned long long>::has_signaling_NaN;
00369   const float_denorm_style numeric_limits<unsigned long long>::has_denorm;
00370   const bool numeric_limits<unsigned long long>::has_denorm_loss;
00371   const bool numeric_limits<unsigned long long>::is_iec559;
00372   const bool numeric_limits<unsigned long long>::is_bounded;
00373   const bool numeric_limits<unsigned long long>::is_modulo;
00374   const bool numeric_limits<unsigned long long>::traps;
00375   const bool numeric_limits<unsigned long long>::tinyness_before;
00376   const float_round_style numeric_limits<unsigned long long>::round_style;
00377 
00378   
00379   const bool numeric_limits<float>::is_specialized;
00380   const int  numeric_limits<float>::digits;
00381   const int  numeric_limits<float>::digits10;
00382   const bool numeric_limits<float>::is_signed;
00383   const bool numeric_limits<float>::is_integer;
00384   const bool numeric_limits<float>::is_exact;
00385   const int  numeric_limits<float>::radix;
00386   const int  numeric_limits<float>::min_exponent;
00387   const int  numeric_limits<float>::min_exponent10;
00388   const int  numeric_limits<float>::max_exponent;
00389   const int  numeric_limits<float>::max_exponent10;
00390   const bool numeric_limits<float>::has_infinity;
00391   const bool numeric_limits<float>::has_quiet_NaN;
00392   const bool numeric_limits<float>::has_signaling_NaN;
00393   const float_denorm_style numeric_limits<float>::has_denorm;
00394   const bool numeric_limits<float>::has_denorm_loss;
00395   const bool numeric_limits<float>::is_iec559;
00396   const bool numeric_limits<float>::is_bounded;
00397   const bool numeric_limits<float>::is_modulo;
00398   const bool numeric_limits<float>::traps;
00399   const bool numeric_limits<float>::tinyness_before;
00400   const float_round_style numeric_limits<float>::round_style;
00401 
00402   
00403   const bool numeric_limits<double>::is_specialized;
00404   const int  numeric_limits<double>::digits;
00405   const int  numeric_limits<double>::digits10;
00406   const bool numeric_limits<double>::is_signed;
00407   const bool numeric_limits<double>::is_integer;
00408   const bool numeric_limits<double>::is_exact;
00409   const int  numeric_limits<double>::radix;
00410   const int  numeric_limits<double>::min_exponent;
00411   const int  numeric_limits<double>::min_exponent10;
00412   const int  numeric_limits<double>::max_exponent;
00413   const int  numeric_limits<double>::max_exponent10;
00414   const bool numeric_limits<double>::has_infinity;
00415   const bool numeric_limits<double>::has_quiet_NaN;
00416   const bool numeric_limits<double>::has_signaling_NaN;
00417   const float_denorm_style numeric_limits<double>::has_denorm;
00418   const bool numeric_limits<double>::has_denorm_loss;
00419   const bool numeric_limits<double>::is_iec559;
00420   const bool numeric_limits<double>::is_bounded;
00421   const bool numeric_limits<double>::is_modulo;
00422   const bool numeric_limits<double>::traps;
00423   const bool numeric_limits<double>::tinyness_before;
00424   const float_round_style numeric_limits<double>::round_style;
00425 
00426   
00427   const bool numeric_limits<long double>::is_specialized;
00428   const int  numeric_limits<long double>::digits;
00429   const int  numeric_limits<long double>::digits10;
00430   const bool numeric_limits<long double>::is_signed;
00431   const bool numeric_limits<long double>::is_integer;
00432   const bool numeric_limits<long double>::is_exact;
00433   const int  numeric_limits<long double>::radix;
00434   const int  numeric_limits<long double>::min_exponent;
00435   const int  numeric_limits<long double>::min_exponent10;
00436   const int  numeric_limits<long double>::max_exponent;
00437   const int  numeric_limits<long double>::max_exponent10;
00438   const bool numeric_limits<long double>::has_infinity;
00439   const bool numeric_limits<long double>::has_quiet_NaN;
00440   const bool numeric_limits<long double>::has_signaling_NaN;
00441   const float_denorm_style numeric_limits<long double>::has_denorm;
00442   const bool numeric_limits<long double>::has_denorm_loss;
00443   const bool numeric_limits<long double>::is_iec559;
00444   const bool numeric_limits<long double>::is_bounded;
00445   const bool numeric_limits<long double>::is_modulo;
00446   const bool numeric_limits<long double>::traps;
00447   const bool numeric_limits<long double>::tinyness_before;
00448   const float_round_style numeric_limits<long double>::round_style;
00449 }