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>
74 template<
size_t LABELS,
class I,
class L>
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
bool isSimpleSpace() const
void assign(const IndexType)
Discrete space in which all variables have the same number of labels.
IndexType addVariable(const LabelType)
Interface of label spaces.
LabelType numberOfLabels(const IndexType) const
void assignDense(Iterator, Iterator)
StaticSimpleDiscreteSpace()
IndexType numberOfVariables() const