2 #ifndef OPENGM_VECTOR_VIEW_SPACE_HXX
3 #define OPENGM_VECTOR_VIEW_SPACE_HXX
18 template<
class I = std::
size_t,
class L = std::
size_t>
20 :
public SpaceBase<VectorViewSpace<I,L>,I,L>
27 VectorViewSpace(
const std::vector<LabelType>&);
28 IndexType addVariable(
const LabelType);
29 IndexType numberOfVariables()
const;
30 LabelType numberOfLabels(
const IndexType)
const;
33 std::vector<LabelType>
const* numbersOfLabels_;
36 template<
class I,
class L>
38 VectorViewSpace<I, L>::VectorViewSpace()
39 : numbersOfLabels_(NULL)
42 template<
class I,
class L>
44 VectorViewSpace<I, L>::VectorViewSpace
46 const std::vector<LabelType>& spaceVector
48 : numbersOfLabels_(&spaceVector)
53 template<
class I,
class L>
54 inline typename VectorViewSpace<I, L>::IndexType
55 VectorViewSpace<I, L>::addVariable(
61 template<
class I,
class L>
62 inline typename VectorViewSpace<I, L>::IndexType
63 VectorViewSpace<I, L>::numberOfVariables()
const
65 return static_cast<IndexType
>(numbersOfLabels_->size());
68 template<
class I,
class L>
69 inline typename VectorViewSpace<I, L>::LabelType
70 VectorViewSpace<I, L>::numberOfLabels(
71 const IndexType dimension
75 return numbersOfLabels_->operator[](dimension);
82 #endif // #ifndef OPENGM_VECTOR_VIEW_SPACE_HXX
#define OPENGM_ASSERT(expression)