Ctr
-
class Ctr : public idol::Object<CtrVersion, Ctr>
Constraint modeling-old object.
The class is used to represent a constraint in an optimization model.
Constraints can be created by calling a constructor of
Ctr
, passing the optimization environment which will store the constraint’s versions as argument. The constraint can then be added to a model using theModel::add
method.Another approach is to directly use the
Model::add_ctr
method.Note that constraints are created naturally by using intermediate temporary constraints
TempCtr
using operators such as<=
,==
and>=
. For instance, one may domodel.add_ctr(x + y >= 2.);
Public Functions
-
Ctr(Env &t_env, TempCtr &&t_temp_ctr, std::string t_name = "")
Constructor.
Creates a new constraint in the optimization environment.
If no name is given, a unique name in the environment is given.
- Parameters:
t_env – The optimization environment.
t_temp_ctr – The temporary constraint used to create the default version of the constraint.
t_name – The given name for the constraint.
-
Ctr(Env &t_env, const TempCtr &t_temp_ctr, std::string t_name = "")
Constructor.
Creates a new constraint in the optimization environment.
If no name is given, a unique name in the environment is given.
- Parameters:
t_env – The optimization environment.
t_temp_ctr – The temporary constraint used to create the default version of the constraint.
t_name – The given name for the constraint.
-
Ctr(Env &t_env, CtrType t_type, Constant &&t_constant, std::string t_name = "")
Constructor.
Creates a new constraint in the optimization environment.
If no name is given, a unique name in the environment is given.
- Parameters:
t_env – The optimization environment.
t_type – The type of the constraint in its default version.
t_constant – The right hand-side of the constraint in its default version.
t_name – The given name for the constraint.
-
Ctr(Env &t_env, CtrType t_type, const Constant &t_constant, std::string t_name = "")
Constructor.
Creates a new constraint in the optimization environment.
If no name is given, a unique name in the environment is given.
- Parameters:
t_env – The optimization environment.
t_type – The type of the constraint in its default version.
t_constant – The right hand-side of the constraint in its default version.
t_name – The given name for the constraint.
-
inline const std::string &name() const
Returns the name of the optimization object.
- Returns:
The name of the optimization object.
-
inline unsigned int id() const
Returns the id of the optimization object.
- Returns:
The id of the optimization object.
-
inline bool is_in(const Model &t_model) const
Returns true if the optimization object is part of the model
t_model
, false otherwise.- Parameters:
t_model – The model.
- Returns:
True if the optimization object is part of the model
t_model
, false otherwise.
-
inline const ValueT &get(const Annotation<Ctr, ValueT> &t_annotation) const
Returns the value of the given annotation
t_annotation
associated to the object.If no value is found, the default value of the annotation is returned. If no default value was set, an exception is thrown.
- Template Parameters:
ValueT – The value type of the annotation.
- Parameters:
t_annotation – The annotation.
- Returns:
The value of the annotation.
-
inline void set(const Annotation<Ctr, ValueT> &t_annotation, ArgsT&&... t_args) const
Sets the value of the given annotation
t_annotation
associated to the object.- Template Parameters:
ValueT – The value type of the annotation.
ArgsT – The parameter pack types for constructing the value of the annotation.
- Parameters:
t_annotation – The annotation.
t_args – The parameter pack arguments used to construct “in place” the value of the annotation.
Public Static Functions
-
template<unsigned int N = 1, unsigned int I = 0>
static inline Vector<Ctr, N - I> make_vector(Env &t_env, const Dim<N> &t_dim, CtrType t_type, const Constant &t_constant, const std::string &t_name = "") Creates a (nested) vector of constraints.
Example:
Env env; auto constraint = Ctr::make_vector(env, Dim<2>(m, n), LessOrEqual, 0., "constraint"); std::cout << constraint[1][4].name() << std::endl; // "constraint_1_4"
- Template Parameters:
N – The dimension of the (nested) vector.
I – Used for recursion.
- Parameters:
t_env – The environment to store the constraints.
t_dim – The number of elements in each dimension.
t_type – The type of the constraints.
t_constant – The right hand-side of the constraints.
t_name – The given name of the constraints.
- Returns:
A (nested) vector of constraints.
Friends
- friend class impl::Env
-
Ctr(Env &t_env, TempCtr &&t_temp_ctr, std::string t_name = "")