/usr/include/opengm/config.hxx is in libopengm-dev 2.3.6+20160905-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 | #ifndef CONFIG_HXX
#define CONFIG_HXX
#ifdef OPENGM_CONFIGFILE
// include own include file with
// g++ ... -DOPENGM_CONFIGFILE=path/config.hxx ....
#include OPENGM_CONFIGFILE
#else // OPENGM_CONFIGFILE
/// \file config.cxx configuration file for OpenGM
///
/// this header should be generated by cmake (from config.hxx.cmake)
/// \warning if cmake is not used to configure opengm config.hxx can be wrong.
/// Since this header is used to get the size of fundamental types from cmake one
/// may has to corret the OPENGM_SIZE_OF_UNSIGNED_* definitions by hand or call cmake
/// to configure this header.
// has no typedef ? (TODO make this a option in cmake list or
// find out in cmake if this define should be active or not
#ifdef OPENGM_NO_TYPENAME
# define typename
#endif
#include "opengm/utilities/metaprogramming.hxx"
#define OPENGM_WORD_LENGTH sizeof(void *)
#define OPENGM_SIZE_OF_BOOL 1
#define OPENGM_SIZE_OF_CHAR sizeof(char)
#define OPENGM_SIZE_OF_SIGNED_CHAR sizeof(unsigned char)
#define OPENGM_SIZE_OF_UNSIGNED_CHAR sizeof(unsigned char)
#define OPENGM_SIZE_OF_WCHAR_T sizeof(wchar_t)
#define OPENGM_SIZE_OF_SHORT sizeof(short)
#define OPENGM_SIZE_OF_UNSIGNED_SHORT sizeof(unsigned short)
#define OPENGM_SIZE_OF_INT sizeof(int)
#define OPENGM_SIZE_OF_UNSIGNED_INT sizeof(unsigned int)
#define OPENGM_SIZE_OF_LONG sizeof(long)
#define OPENGM_SIZE_OF_UNSIGNED_LONG sizeof(unsigned long)
#define OPENGM_SIZE_OF_LONG_LONG sizeof(long long)
#define OPENGM_SIZE_OF_UNSIGNED_LONG_LONG sizeof(unsigned long long)
#define OPENGM_SIZE_OF_FLOAT sizeof(float)
#define OPENGM_SIZE_OF_DOUBLE sizeof(double)
#define OPENGM_SIZE_OF_LONG_DOUBLE sizeof(long double)
namespace opengm{
/// major version number of opengm
const unsigned int VERSION_MAJOR = 2;
/// minor version number of opengm
const unsigned int VERSION_MINOR = 0;
/// patch version number of opengm
const unsigned int VERSION_PATCH = 2;
/// usual factor order
///
/// this size indicates how many values (usualy the variables indices
/// of a factor ) can be stored on the stack. This value is only used
/// in opengm::FastSequence (as second template parameter )
const size_t USUAL_MAX_FACTOR_ORDER=5;
/// \var NO_DEBUG true if NDEBUG is true
#ifdef NDEBUG
const bool NO_DEBUG = true;
#else
const bool NO_DEBUG = false;
#endif
/// \cond HIDDEN_SYMBOLS
namespace detail_types{
// structs to identify if am system
// does not have a certain type
struct NoCharOnSystem;
struct NoUnsignedCharOnSystem;
struct NoSignedCharOnSystem;
struct NoWCharTOnSystem;
struct NoShortOnSystem;
struct NoUnsignedShortOnSystem;
struct NoIntOnSystem;
struct NoUnsignedIntOnSystem;
struct NoLongOnSystem;
struct NoUnsignedLongOnSystem;
struct NoUnsignedLongLongOnSystem;
struct NoLongLongOnSystem;
struct NoFloatOnSystem;
struct NoDoubleOnSystem;
struct NoLongDoubleOnSystem;
struct NoUIntTypeOnSystem;
struct NoIntTypeOnSystem;
struct NoFloatTypeOnSystem;
struct NoUInt8OnSystem;
struct NoUInt16OnSystem;
struct NoUInt32OnSystem;
struct NoUInt64OnSystem;
struct NoInt8OnSystem;
struct NoInt16OnSystem;
struct NoInt32OnSystem;
struct NoInt64OnSystem;
struct NoFloat32OnSystem;
struct NoFloat64OnSystem;
struct NoFloat128OnSystem;
// typedefs to types to identify if am system
// does not have a certain type
#ifdef OPENGM_NO_CHAR
typedef opengm::meta::InvalideType<NoCharOnSystem> Char;
#else
typedef char Char;
#endif
#ifdef OPENGM_NO_UNSIGNED_CHAR
typedef opengm::meta::InvalideType<NoUnsignedCharOnSystem> UnsignedChar;
#else
typedef unsigned char UnsignedChar;
#endif
#ifdef OPENGM_NO_SIGNED_CHAR
typedef opengm::meta::InvalideType<NoSignedCharOnSystem> SignedChar;
#else
typedef signed char SignedChar;
#endif
#ifdef OPENGM_NO_WCHAR_T
typedef opengm::meta::InvalideType<NoWCharTOnSystem> WCharT;
#else
typedef wchar_t WCharT;
#endif
#ifdef OPENGM_NO_SHORT
typedef NoShortOnSystem Short;
#else
typedef short Short;
#endif
#ifdef OPENGM_NO_UNSIGNED_SHORT
typedef opengm::meta::InvalideType<NoUnsignedShortOnSystem> UnsignedShort;
#else
typedef unsigned short UnsignedShort;
#endif
#ifdef OPENGM_NO_INT
typedef opengm::meta::InvalideType<NoIntOnSystem> Int;
#else
typedef int Int;
#endif
#ifdef OPENGM_NO_UNSIGNED_INT
typedef opengm::meta::InvalideType<NoUnsignedIntOnSystem> UnsignedInt;
#else
typedef unsigned int UnsignedInt;
#endif
#ifdef OPENGM_NO_LONG
typedef opengm::meta::InvalideType<NoLongOnSystem> Long;
#else
typedef long Long;
#endif
#ifdef OPENGM_NO_UNSIGNED_LONG
typedef opengm::meta::InvalideType<NoUnsignedLongOnSystem> UnsignedLong;
#else
typedef unsigned long UnsignedLong;
#endif
#ifdef OPENGM_NO_LONG_LONG
typedef opengm::meta::InvalideType<NoLongLongOnSystem> LongLong;
#else
typedef long long LongLong;
#endif
#ifdef OPENGM_NO_UNSIGNED_LONG
typedef opengm::meta::InvalideType<NoUnsignedLongLongOnSystem> UnsignedLongLong;
#else
typedef unsigned long long UnsignedLongLong;
#endif
#ifdef OPENGM_NO_Float
typedef opengm::meta::InvalideType<NoFloatOnSystem> Float;
#else
typedef float Float;
#endif
#ifdef OPENGM_NO_DOUBLE
typedef opengm::meta::InvalideType<NoDoubleOnSystem> Double;
#else
typedef double Double;
#endif
#ifdef OPENGM_NO_LONG_DOUBLE
typedef opengm::meta::InvalideType<NoLongDoubleOnSystem> LongDouble;
#else
typedef long double LongDouble;
#endif
typedef bool Bool ;
// typelists of the basic c++ types
// Floats:
typedef opengm::meta::TypeListGenerator<
Float,Double , LongDouble
>::type StdFloatingPointTypesTypeList;
// UInt:
typedef opengm::meta::TypeListGenerator<
UnsignedChar,UnsignedShort, UnsignedInt, UnsignedLong, UnsignedLongLong
>::type StdUnsignedIntegerTypesTypeList;
// Int:
typedef opengm::meta::TypeListGenerator<
Char, SignedChar, Short, Int, Long,LongLong
>::type StdSignedIntegerTypesTypeList;
// typelists of the sizes of the basic c++ types
// Float sizes:
typedef opengm::meta::TypeListGenerator<
opengm::meta::SizeT<OPENGM_SIZE_OF_FLOAT>,meta::SizeT<OPENGM_SIZE_OF_DOUBLE>,
opengm::meta::SizeT<OPENGM_SIZE_OF_LONG_DOUBLE>
>::type StdFloatingPointSizesTypeList;
// UInt sizes:
typedef opengm::meta::TypeListGenerator<
opengm::meta::SizeT<OPENGM_SIZE_OF_UNSIGNED_CHAR>, opengm::meta::SizeT<OPENGM_SIZE_OF_UNSIGNED_SHORT>,
opengm::meta::SizeT<OPENGM_SIZE_OF_UNSIGNED_INT>, opengm::meta::SizeT<OPENGM_SIZE_OF_UNSIGNED_LONG>,
opengm::meta::SizeT<OPENGM_SIZE_OF_UNSIGNED_LONG_LONG>
>::type StdUnsignedIntegerSizesTypeList;
// Int sizes:
typedef opengm::meta::TypeListGenerator<
opengm::meta::SizeT<OPENGM_SIZE_OF_CHAR>, opengm::meta::SizeT<OPENGM_SIZE_OF_SIGNED_CHAR>,
opengm::meta::SizeT<OPENGM_SIZE_OF_SHORT>,opengm::meta::SizeT<OPENGM_SIZE_OF_INT>,
opengm::meta::SizeT<OPENGM_SIZE_OF_LONG>,opengm::meta::SizeT<OPENGM_SIZE_OF_LONG_LONG>
>::type StdSignedIntegerSizesTypeList;
// platform independent
// UInt :
typedef opengm::meta::FindSizedType<StdUnsignedIntegerTypesTypeList,StdUnsignedIntegerSizesTypeList,
1,meta::InvalidType<NoUInt8OnSystem > >::type UInt8Type ;
typedef opengm::meta::FindSizedType<StdUnsignedIntegerTypesTypeList,StdUnsignedIntegerSizesTypeList,
2,meta::InvalidType<NoUInt16OnSystem> >::type UInt16Type ;
typedef opengm::meta::FindSizedType<StdUnsignedIntegerTypesTypeList,StdUnsignedIntegerSizesTypeList,
4,meta::InvalidType<NoUInt32OnSystem> >::type UInt32Type ;
typedef opengm::meta::FindSizedType<StdUnsignedIntegerTypesTypeList,StdUnsignedIntegerSizesTypeList,
8,meta::InvalidType<NoUInt64OnSystem> >::type UInt64Type ;
//Int :
typedef opengm::meta::FindSizedType<StdSignedIntegerTypesTypeList,StdSignedIntegerSizesTypeList,
1,meta::InvalidType<NoInt8OnSystem > >::type Int8Type ;
typedef opengm::meta::FindSizedType<StdSignedIntegerTypesTypeList,StdSignedIntegerSizesTypeList,
2,meta::InvalidType<NoInt16OnSystem> >::type Int16Type ;
typedef opengm::meta::FindSizedType<StdSignedIntegerTypesTypeList,StdSignedIntegerSizesTypeList,
4,meta::InvalidType<NoInt32OnSystem> >::type Int32Type ;
typedef opengm::meta::FindSizedType<StdSignedIntegerTypesTypeList,StdSignedIntegerSizesTypeList,
8,meta::InvalidType<NoInt64OnSystem> >::type Int64Type ;
// Float :
typedef opengm::meta::FindSizedType<StdFloatingPointTypesTypeList,StdFloatingPointSizesTypeList,
4,meta::InvalidType<NoFloat32OnSystem> >::type Float32Type ;
typedef opengm::meta::FindSizedType<StdFloatingPointTypesTypeList,StdFloatingPointSizesTypeList,
8,meta::InvalidType<NoFloat64OnSystem> >::type Float64Type ;
typedef opengm::meta::FindSizedType<StdFloatingPointTypesTypeList,StdFloatingPointSizesTypeList,
16,meta::InvalidType<NoFloat128OnSystem> >::type Float128Type ;
// opengm::meta-"switch-cases" typelists to find out the
// biggest and smallest uint, int and float type
typedef opengm::meta::TypeListGenerator<
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< UInt64Type >::value >::value ,UInt64Type>,
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< UInt32Type >::value >::value ,UInt32Type>,
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< UInt16Type >::value >::value ,UInt16Type>,
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< UInt8Type >::value >::value ,UInt8Type>
>::type UIntSwitchCasesBiggest;
typedef opengm::meta::TypeListGenerator<
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< Int64Type >::value >::value ,Int64Type>,
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< Int32Type >::value >::value ,Int32Type>,
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< Int16Type >::value >::value ,Int16Type>,
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< Int8Type >::value >::value ,Int8Type>
>::type IntSwitchCasesBiggest;
typedef opengm::meta::TypeListGenerator<
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< Float128Type >::value >::value ,Float128Type>,
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< Float64Type >::value >::value ,Float64Type>,
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< Float32Type >::value >::value ,Float32Type>
>::type FloatSwitchCasesBiggest;
typedef opengm::meta::TypeListGenerator<
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< UInt8Type >::value >::value ,UInt8Type>,
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< UInt16Type >::value >::value ,UInt16Type>,
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< UInt32Type >::value >::value ,UInt32Type>,
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< UInt64Type >::value >::value ,UInt64Type>
>::type UIntSwitchCasesSmallest;
typedef opengm::meta::TypeListGenerator<
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< Int8Type >::value >::value ,Int8Type>,
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< Int16Type >::value >::value ,Int16Type>,
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< Int32Type >::value >::value ,Int32Type>,
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< Int64Type >::value >::value ,Int64Type>
>::type IntSwitchCasesSmallest;
typedef opengm::meta::TypeListGenerator<
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< Float32Type >::value >::value,Float32Type >,
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< Float64Type >::value >::value ,Float64Type>,
opengm::meta::SwitchCase< opengm::meta::Not< opengm::meta::IsInvalidType< Float128Type >::value >::value ,Float128Type>
>::type FloatSwitchCasesSmallest;
// biggest type
typedef opengm::meta::Switch< UIntSwitchCasesBiggest ,
NoUIntTypeOnSystem >::type BiggestUIntType;
typedef opengm::meta::Switch< IntSwitchCasesBiggest ,
NoIntTypeOnSystem >::type BiggestIntType;
typedef opengm::meta::Switch< FloatSwitchCasesBiggest ,
NoFloatTypeOnSystem >::type BiggestFloatType;
// smallest types
typedef opengm::meta::Switch< UIntSwitchCasesSmallest ,
NoUIntTypeOnSystem >::type SmallestUIntType;
typedef opengm::meta::Switch< IntSwitchCasesSmallest ,
NoIntTypeOnSystem >::type SmallestIntType;
typedef opengm::meta::Switch< FloatSwitchCasesSmallest ,
NoFloatTypeOnSystem >::type SmallestFloatType;
} // end namespace detail_types
/// \endcond
/// SizeT
//typedef size_t ::size_t;
// UInt Types
/// uint8
typedef detail_types::UInt8Type UInt8Type;
/// uint16
typedef detail_types::UInt16Type UInt16Type;
/// uint32
typedef detail_types::UInt32Type UInt32Type;
/// uint64
typedef detail_types::UInt64Type UInt64Type;
// Int Types:
typedef detail_types::Int8Type Int8Type;
/// int8
typedef detail_types::Int16Type Int16Type;
/// int16
typedef detail_types::Int32Type Int32Type;
/// int32
typedef detail_types::Int64Type Int64Type;
// Float Types:
/// float32
typedef detail_types::Float32Type Float32Type;
/// float64
typedef detail_types::Float64Type Float64Type;
/// biggest / longest uint
typedef detail_types::BiggestUIntType BiggestUIntType;
/// biggest / longest int
typedef detail_types::BiggestIntType BiggestIntType;
typedef detail_types::BiggestFloatType BiggestFloatType;
// smallest Types:
/// smallest / shortest int
typedef detail_types::SmallestUIntType SmallestUIntType;
typedef detail_types::SmallestIntType SmallestIntType;
typedef detail_types::SmallestFloatType SmallestFloatType;
// default Types:
/// default uint (biggest / longest uint)
typedef BiggestUIntType UIntType;
/// default uint (biggest / longest int)
typedef BiggestIntType IntType;
/// default uint (biggest / longest float)
typedef SmallestFloatType FloatType;
} // end namespace opengm
#endif // OPENGM_CONFIGFILE
#endif // CONFIG_HXX
|