18 class SetVar :
public SetExpr,
public VarBase
22 explicit SetVar(Index n,
const std::string& name =
"?")
23 : VarBase(name), _n(n)
26 virtual const ExprID& unique_id()
const
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_arg(
const ExprID& old_arg_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())
const ExprID & unique_id() const
Returns the unique identifier of the expression.
Abstract base class for representing variables in analytic or set functions.
Definition codac2_VarBase.h:24