Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #if !defined(RANDOM_HPP)
00014 #define RANDOM_HPP "$Id: Random.hpp 6723 2010-01-11 14:20:10Z ckarney $"
00015
00016
00017 #if defined(_MSC_VER)
00018 #define WINDOWS 1
00019
00020 #pragma warning (disable: 4290)
00021 #else
00022 #define WINDOWS 0
00023 #endif
00024
00025 #if defined(__sparc)
00026 #define SUN 1
00027 #else
00028 #define SUN 0
00029 #endif
00030
00031 #if WINDOWS
00032 typedef unsigned uint32_t;
00033 typedef unsigned long long uint64_t;
00034 #else
00035 #include <stdint.h>
00036 #endif
00037
00038
00039
00040 #define RANDOM_U32_T uint32_t
00041
00042
00043
00044 #define RANDOM_U64_T uint64_t
00045
00046 #if defined(__GNUC__)
00047
00048 #define RCSID_DECL(x) namespace \
00049 { char VAR_ ## x [] __attribute__((unused)) = x; }
00050 #else
00051
00052
00053
00054 #define RCSID_DECL(x) namespace { char VAR_ ## x [] = x; }
00055 #endif
00056
00057 #if !defined(HAVE_SSE2)
00058 #define HAVE_SSE2 0
00059 #endif
00060
00061 #if !defined(HAVE_ALTIVEC)
00062
00063
00064
00065
00066
00067
00068
00069
00070 #define HAVE_ALTIVEC 0
00071 #endif
00072
00073 #if !defined(HAVE_BOOST_SERIALIZATION)
00074
00075
00076
00077 #define HAVE_BOOST_SERIALIZATION 0
00078 #endif
00079
00080 #if !defined(RANDOM_LEGACY)
00081
00082
00083
00084 #define RANDOM_LEGACY 0
00085 #endif
00086
00087
00088
00089
00090
00091
00092 #if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ == 0
00093 #define RANDOM_POWERTABLE 0
00094 #else
00095
00096 #define RANDOM_POWERTABLE 1
00097 #endif
00098
00099 #if WINDOWS
00100 #define RANDOM_LONGDOUBLEPREC 53
00101 #elif SUN
00102 #define RANDOM_LONGDOUBLEPREC 113
00103 #else
00104
00105
00106
00107
00108 #define RANDOM_LONGDOUBLEPREC __LDBL_MANT_DIG__
00109 #endif
00110
00111 #if !defined(STATIC_ASSERT)
00112 #if defined(HAVE_STATIC_ASSERT)
00113 #define STATIC_ASSERT static_assert
00114 #else
00115
00116
00117
00118 #define STATIC_ASSERT(cond,reason) { enum{ STATIC_ASSERT_ENUM = 1/int(cond) }; }
00119 #endif
00120 #endif
00121
00122
00123
00124
00125 #define RANDOM_HASDENORM(RealType) 1
00126
00127 #include "RandomLib/RandomCanonical.hpp"
00128
00129 namespace RandomLib {
00130
00131 #if !defined(DEFAULT_GENERATOR)
00132 #define DEFAULT_GENERATOR SRandomGenerator32
00133 #endif
00134
00135
00136
00137
00138
00139 typedef DEFAULT_GENERATOR RandomGenerator;
00140
00141
00142
00143
00144 typedef RandomCanonical<RandomGenerator> Random;
00145
00146 }
00147
00148 #endif // RANDOM_HPP