IMP  2.0.1
The Integrative Modeling Platform
types.h
Go to the documentation of this file.
1 /**
2  * \file IMP/base/types.h \brief Basic types used by IMP.
3  *
4  * Copyright 2007-2013 IMP Inventors. All rights reserved.
5  *
6  */
7 
8 #ifndef IMPBASE_TYPES_H
9 #define IMPBASE_TYPES_H
10 
11 #include <IMP/base/base_config.h>
12 #include "value_macros.h"
13 #include "object_macros.h"
14 #include <IMP/base/hash.h>
15 #include <IMP/base/nullptr.h>
16 
17 //IMPBASE_BEGIN_NAMESPACE
18 namespace IMP {
19 //! Basic floating-point value (could be float, double...)
20 typedef double Float;
21 
22 //! A pair representing a function value with its first derivative
23 typedef std::pair<double, double> DerivativePair;
25 
26 //! A generic pair of floats
27 typedef std::pair<double, double> FloatPair;
29 
30 //! A pair representing the allowed range for a Float attribute
31 typedef std::pair<Float, Float> FloatRange;
33 
34 //! Basic integer value
35 typedef int Int;
36 
37 typedef std::pair<Int, Int> IntRange;
39 
40 typedef std::pair<Int, Int> IntPair;
42 
43 //! Basic string value
44 typedef std::string String;
45 
46 //! Standard way to pass a bunch of Float values
48 //! Standard way to pass a bunch of Int values
50 //! Standard way to pass a bunch of String values
52 
53 //! Standard way to pass a bunch of Floats values
55 //! Standard way to pass a bunch of Ints values
57 //! Standard way to pass a bunch of Strings values
59 
60  namespace base {
61 class Object;
62 //! A list of objects
64  }
65 }
66  //IMPBASE_END_NAMESPACE
67 
68 #endif /* IMPBASE_TYPES_H */