2 #ifndef OPENGM_STATIC_SIMPLE_DISCRETE_SPACE_HXX
3 #define OPENGM_STATIC_SIMPLE_DISCRETE_SPACE_HXX
13 template<
size_t LABELS,
class I = std::
size_t ,
class L = std::
size_t>
15 :
public SpaceBase<StaticSimpleDiscreteSpace<LABELS, I, L>, I, L>
23 void assign(
const IndexType);
24 template<
class Iterator>
void assignDense(Iterator, Iterator);
31 IndexType numberOfVariables_;
34 template<
size_t LABELS,
class I,
class L>
37 : numberOfVariables_()
40 template<
size_t LABELS,
class I,
class L>
45 : numberOfVariables_(numberOfVariables)
48 template<
size_t LABELS,
class I,
class L>
49 template<
class Iterator>
55 numberOfVariables_=std::distance(begin, end);
56 numberOfVariables_=
static_cast<L
>(*begin);
58 if(LABELS!=static_cast<size_t>(*begin)) {
60 in StaticSimpleDiscreteSpace::assignDense ");
66 template<
size_t LABELS,
class I,
class L>
71 numberOfVariables_ = numberOfVariables;
74 template<
size_t LABELS,
class I,
class L>
77 const L numberOfLabels
79 if(numberOfLabels!=static_cast<L> (LABELS)) {
81 in StaticSimpleDiscreteSpace::addVariable ");
85 template<
size_t LABELS,
class I,
class L>
88 return numberOfVariables_;
91 template<
size_t LABELS,
class I,
class L>
96 return static_cast<L
> LABELS;
99 template<
size_t LABELS,
class I,
class L>
108 #endif // #ifndef OPENGM_STATIC_SIMPLE_DISCRETE_SPACE_HXX
IndexType numberOfVariables() const
void assign(const IndexType)
Discrete space in which all variables have the same number of labels.
bool isSimpleSpace() const
IndexType addVariable(const LabelType)
LabelType numberOfLabels(const IndexType) const
Interface of label spaces.
void assignDense(Iterator, Iterator)
StaticSimpleDiscreteSpace()