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 the Model::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 do

model.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