22 #ifndef GUM_DISCRETIZED_VARIABLE_H 23 #define GUM_DISCRETIZED_VARIABLE_H 30 #include <agrum/agrum.h> 32 #include <agrum/tools/variables/IDiscretizedVariable.h> 55 template <
typename T_TICKS >
56 class DiscretizedVariable:
public IDiscretizedVariable {
58 std::vector< T_TICKS > ticks__;
66 void copy_(
const DiscretizedVariable< T_TICKS >& aDRV);
77 Idx dichotomy_(
const T_TICKS& target, Idx min, Idx max)
const;
84 Idx pos_(
const T_TICKS& target)
const;
96 DiscretizedVariable(
const std::string& aName,
const std::string& aDesc);
103 DiscretizedVariable(
const std::string& aName,
104 const std::string& aDesc,
105 const std::vector< T_TICKS >& ticks);
111 DiscretizedVariable(
const DiscretizedVariable< T_TICKS >& aDRV);
116 virtual ~DiscretizedVariable();
121 virtual DiscretizedVariable< T_TICKS >* clone()
const;
125 virtual VarType varType()
const;
132 DiscretizedVariable< T_TICKS >&
133 operator=(
const DiscretizedVariable< T_TICKS >& aDRV);
140 bool isTick(
const T_TICKS& aTick)
const;
147 DiscretizedVariable& addTick(
const T_TICKS& aTick);
159 virtual std::string label(Idx i)
const;
162 virtual double numerical(Idx indice)
const;
166 virtual Idx index(
const std::string& label)
const;
172 virtual Size domainSize()
const;
173 virtual const std::string domain()
const;
177 const T_TICKS& tick(Idx i)
const;
180 const std::vector< T_TICKS >& ticks()
const;
183 virtual std::vector<
double > ticksAsDoubles()
const;
189 #include <agrum/tools/variables/discretizedVariable_tpl.h>