Overview | Group | Tree | Graph | Index | Concepts |
An integer tuple is an ordered set of integer values. A set of
integer tuples is represented by an instance of IlcIntTupleSet
.
That is, the elements of an integer tuple set are integer tuples.
The number of values in a tuple is known as the arity of the tuple,
and the arity of the tuples in a set is called the arity of the
set. (In contrast, the number of tuples in the set is known as the
cardinality of the set.)
As a handle class, IlcIntTupleSet
manages certain set
operations efficiently. In particular, elements can be added to such a set.
It is also possible to search a given set with the member function
IlcIntTupleSet::isIn
to see whether or not
the set contains a given element.
In addition, a set of integer tuples can represent a constraint defined on a constrained integer variable, either as the set of allowed combinations of values of the constrained variable on which the constraint is defined, or as the set of forbidden combinations of values.
There are a few conventions governing integer tuple sets:
IlcIntTupleSet::add
to add integer tuples to the
set.IlcIntTupleSet::close
. This
operation—-closing the set—-improves the performance of certain
other operations on the set.Solver will throw an exception (an instance of
IloSolver::SolverErrorException
) if you attempt:
You do not have to worry about memory allocation. If you respect these conventions, Solver manages allocation and de-allocation transparently for you.
See Also:
Constructor Summary | |
---|---|
public | IlcIntTupleSet() |
public | IlcIntTupleSet(IlcECSetOfSharedTupleI * impl) |
public | IlcIntTupleSet(IloSolver solver, IlcInt arity) |
Method Summary | |
---|---|
public void | add(IlcIntArray tuple) const |
public void | close() const |
public IlcECSetOfSharedTupleI * | getImpl() const |
public IlcBool | isClosed() const |
public IlcBool | isIn(IlcIntArray tuple) const |
public void | operator=(const IlcIntTupleSet & h) |
public void | setBigTuple() const |
public void | setHoloTuple() const |
public void | setSimpleTuple() const |
Constructor Detail |
---|
This constructor creates an empty handle. You must initialize it before you use it.
This constructor creates a handle object from a pointer to an implementation object.
This constructor creates a set of integer tuples (an instance of the class
IlcIntTupleSet
) with the arity indicated by arity
.
Method Detail |
---|
This member function adds an integer tuple represented by the array
tuple
to the invoking set. If you attempt to add an element
that is already in the set, that element will not be added again;
in other words, Solver respects the definition of a set as containing exclusive
elements with no duplicates. Added elements are not copied; that is, there is no
memory duplication. Solver will throw an exception (an instance of
IloSolver::SolverErrorException
) if the set has already been closed.
Solver will throw an exception (an instance of IloSolver::SolverErrorException
)
if the size of the array is not equal to the arity of the invoking set.
This member function closes the invoking set. That is, it states that all the tuples in the set are known so efficient data structures can be defined and exploited.
This member function returns a pointer to the implementation object of the invoking handle.
This member function returns IlcTrue
if the invoking set has been
closed. Otherwise, it returns IlcFalse
.
This member function returns IlcTrue
if tuple belongs to the invoking
set. Otherwise, it returns IlcFalse
. Solver will throw an exception
(an instance of IloSolver::SolverErrorException
) if the set has not yet
been closed. Solver will throw an exception (an instance of IloSolver::SolverErrorException
)
if the size of the array is not equal to the arity of the invoking set.
This operator assigns an address to the handle pointer of the invoking object. That address is the location of the implementation object of the provided argument.
This member function states that the tuples in the set will be compile in a specific data structure. It must be called before close().
This member function states that the tuples in the set will be compile in a specific data structure. It must be called before close().
This member function states that the tuples in the set will be compile in a specific data structure (the one by default). It must be called before close().