18 class SetVar :
public SetExpr,
public VarBase
22 explicit SetVar(Index n)
26 virtual const ExprID& unique_id()
const
28 return SetExpr::unique_id();
31 std::shared_ptr<VarBase> arg_copy()
const
33 return std::make_shared<SetVar>(*
this);
36 std::shared_ptr<ExprBase> copy()
const
38 return std::make_shared<SetVar>(*
this);
46 void replace_expr(
const ExprID& old_expr_id,
const std::shared_ptr<ExprBase>& new_expr)
49 operator std::shared_ptr<SetExpr>()
const
51 return std::dynamic_pointer_cast<SetExpr>(this->copy());
54 virtual bool belongs_to_args_list(
const FunctionArgsList& args)
const
56 for(
const auto& xi : args)
57 if(xi->unique_id() == this->unique_id())
62 std::shared_ptr<CtcBase<IntervalVector>> create_ctc(
const FunctionArgsList& args,
const std::vector<std::shared_ptr<CtcBase<IntervalVector>>>& x)
const
64 for(Index i = 0 ; i < args.size() ; i++)
65 if(args[i]->unique_id() == unique_id())
71 std::shared_ptr<SepBase> create_sep(
const FunctionArgsList& args,
const std::vector<std::shared_ptr<SepBase>>& x)
const
73 for(Index i = 0 ; i < args.size() ; i++)
74 if(args[i]->unique_id() == unique_id())