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 >& operator=(
const DiscretizedVariable< T_TICKS >& aDRV);
139 bool isTick(
const T_TICKS& aTick)
const;
146 DiscretizedVariable& addTick(
const T_TICKS& aTick);
158 virtual std::string label(Idx i)
const;
161 virtual double numerical(Idx indice)
const;
165 virtual Idx index(
const std::string& label)
const;
171 virtual Size domainSize()
const;
172 virtual const std::string domain()
const;
176 const T_TICKS& tick(Idx i)
const;
179 const std::vector< T_TICKS >& ticks()
const;
182 virtual std::vector<
double > ticksAsDoubles()
const;
188 #include <agrum/tools/variables/discretizedVariable_tpl.h>