IMP
2.0.1
The Integrative Modeling Platform
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
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
;
24
IMP_BUILTIN_VALUES
(
DerivativePair
,
DerivativePairs
);
25
26
//! A generic pair of floats
27
typedef
std::pair<double, double>
FloatPair
;
28
IMP_BUILTIN_VALUES
(
FloatPair
,
FloatPairs
);
29
30
//! A pair representing the allowed range for a Float attribute
31
typedef
std::pair<Float, Float>
FloatRange
;
32
IMP_BUILTIN_VALUES
(
FloatRange
,
FloatRanges
);
33
34
//! Basic integer value
35
typedef
int
Int
;
36
37
typedef
std::pair<Int, Int> IntRange;
38
IMP_BUILTIN_VALUES
(IntRange,
IntRanges
);
39
40
typedef
std::pair<Int, Int> IntPair;
41
IMP_BUILTIN_VALUES
(IntPair,
IntPairs
);
42
43
//! Basic string value
44
typedef
std::string
String
;
45
46
//! Standard way to pass a bunch of Float values
47
IMP_BUILTIN_VALUES
(
Float
,
Floats
);
48
//! Standard way to pass a bunch of Int values
49
IMP_BUILTIN_VALUES
(
Int
,
Ints
);
50
//! Standard way to pass a bunch of String values
51
IMP_BUILTIN_VALUES
(
String
,
Strings
);
52
53
//! Standard way to pass a bunch of Floats values
54
IMP_BUILTIN_VALUES
(
Floats
,
FloatsList
);
55
//! Standard way to pass a bunch of Ints values
56
IMP_BUILTIN_VALUES
(
Ints
,
IntsList
);
57
//! Standard way to pass a bunch of Strings values
58
IMP_BUILTIN_VALUES
(
Strings
,
StringsList
);
59
60
namespace
base {
61
class
Object
;
62
//! A list of objects
63
IMP_OBJECTS
(
Object
,
Objects
);
64
}
65
}
66
//IMPBASE_END_NAMESPACE
67
68
#endif
/* IMPBASE_TYPES_H */