OpenGM  2.3.x
Discrete Graphical Model Library
view.hxx
Go to the documentation of this file.
1 #pragma once
2 #ifndef OPENGM_VIEW_FUNCTION_HXX
3 #define OPENGM_VIEW_FUNCTION_HXX
4 
6 
7 namespace opengm {
8 
12 template<class GM>
14 : public FunctionBase<ViewFunction<GM>,
15  typename GM::ValueType,typename GM::IndexType, typename GM::LabelType>
16 {
17 public:
18  typedef typename GM::ValueType ValueType;
19  typedef ValueType value_type;
20  typedef typename GM::FactorType FactorType;
21  typedef typename GM::OperatorType OperatorType;
22  typedef typename GM::IndexType IndexType;
23  typedef typename GM::LabelType LabelType;
24 
25  ViewFunction();
26  ViewFunction(const FactorType &);
27  template<class Iterator>
28  ValueType operator()(Iterator begin)const;
29  LabelType shape(const IndexType)const;
30  IndexType dimension()const;
31  IndexType size()const;
32 
33 private:
34  FactorType const* factor_;
35 };
36 
37 template<class GM>
38 inline
40 : factor_(NULL)
41 {}
42 
43 template<class GM>
44 inline
46 (
47  const typename ViewFunction<GM>::FactorType & factor
48 )
49 : factor_(&factor)
50 {}
51 
52 template<class GM>
53 template<class Iterator>
54 inline typename ViewFunction<GM>::ValueType
55 ViewFunction<GM>::operator()
56 (
57  Iterator begin
58 ) const {
59  return factor_->operator()(begin);
60 }
61 
62 template<class GM>
63 inline typename ViewFunction<GM>::LabelType
65 (
66  const typename ViewFunction<GM>::IndexType index
67 ) const{
68  return factor_->numberOfLabels(index);
69 }
70 
71 template<class GM>
72 inline typename ViewFunction<GM>::IndexType
74  return factor_->numberOfVariables();
75 }
76 
77 template<class GM>
78 inline typename ViewFunction<GM>::IndexType
80  return factor_->size( );
81 }
82 
83 } // namespace opengm
84 
85 #endif // #ifndef OPENGM_VIEW_FUNCTION_HXX
The OpenGM namespace.
Definition: config.hxx:43
Fallback implementation of member functions of OpenGM functions.
ValueType operator()(Iterator begin) const
Definition: view.hxx:56
GM::FactorType FactorType
Definition: view.hxx:20
reference to a Factor of a GraphicalModel
Definition: view.hxx:13
LabelType shape(const IndexType) const
Definition: view.hxx:65
GM::OperatorType OperatorType
Definition: view.hxx:21
ValueType value_type
Definition: view.hxx:19
IndexType dimension() const
Definition: view.hxx:73
GM::ValueType ValueType
Definition: view.hxx:18
GM::IndexType IndexType
Definition: view.hxx:22
GM::LabelType LabelType
Definition: view.hxx:23
IndexType size() const
Definition: view.hxx:79