14.2.9 Class DJC


A class providing static methods to manipulate terms of disjunctive constraints (DJC).

Static members

DJC.AND – Create a conjunction of simple terms.

DJC.term – Create a simple term.

Term::t DJC::AND(shared_ptr<ndarray<SimpleTerm::t,1>> slist)
Term::t DJC::AND(SimpleTerm::t s1)
Term::t DJC::AND(SimpleTerm::t s1, SimpleTerm::t s2)
Term::t DJC::AND(SimpleTerm::t s1, SimpleTerm::t s2, SimpleTerm::t s3)

Creates a conjunction of existing simple terms \(S_1,\ldots,S_n\), that is a term representing:

\[S_1 \ \mathrm{AND}\ \cdots\ \mathrm{AND}\ S_n.\]


SimpleTerm::t DJC::term(Variable::t x, LinearDomain::t dom)
SimpleTerm::t DJC::term(Expression::t expr, LinearDomain::t dom)
SimpleTerm::t DJC::term(Variable::t x, RangeDomain::t dom)
SimpleTerm::t DJC::term(Expression::t expr, RangeDomain::t dom)

Creates a simple term, that is a condition which can be used as a building block in disjunctive constraints. A simple term has the form an expression belongs to a domain. Only linear and ranged domains are allowed in a disjunctive constraint.

A simple term can be used to construct a conjunctive term with DJC.AND or it can enter directly as a term into a disjunctive constraint via Model.disjunction.