IMP  2.2.0
The Integrative Modeling Platform
base/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-2014 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 */
std::pair< double, double > FloatPair
A generic pair of floats.
Definition: base/types.h:27
std::pair< Float, Float > FloatRange
A pair representing the allowed range for a Float attribute.
Definition: base/types.h:31
Provide a nullptr keyword analog.
IO support.
Common base class for heavy weight IMP objects.
Definition: base/Object.h:106
std::pair< double, double > DerivativePair
A pair representing a function value with its first derivative.
Definition: base/types.h:23
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing sets of objects.
double Float
Basic floating-point value (could be float, double...)
Definition: base/types.h:20
Various general useful macros for IMP.
int Int
Basic integer value.
Definition: base/types.h:35
Various general useful macros for IMP.
std::string String
Basic string value.
Definition: base/types.h:44
#define IMP_BUILTIN_VALUES(Name, PluralName)