Skip to main content
FRAMES NO FRAMES

Class IlcIntPredicate

Definition file: ilcp/cpext.h
Include file: <ilcp/cpext.h>
Map of IlcIntPredicateIlcIntPredicateIlcIntPredicate
The handle class for integer predicates.

This class makes it possible for you to define integer predicates. An integer predicate is an object with a method (IlcIntPredicate::isTrue) that checks whether or not a property is satisfied by an ordered set of integers. The ordered set of integers is conventionally represented in CP Optimizer by an instance of IlcIntArray.

Most member functions in this class contain assert statements. For an explanation of the macro NDEBUG (a way to turn on or turn off these assert statements), see the concept Assert and NDEBUG.

Defining a New Class of Integer Predicates

Integer predicates, like other CP Optimizer objects, depend on two classes: a handle class, IlcIntPredicate, and an implementation class, IlcIntPredicateI, where an object of the handle class contains a data member (the handle pointer) that points to an object (its implementation object), an instance of IlcIntPredicateI allocated on the CP Optimizer heap. As a CP Optimizer user, you will be working primarily with handles.

If you define a new class of integer predicates yourself, you must define its implementation class together with the corresponding virtual member function IlcIntPredicateI::isTrue, as well as a member function that returns an instance of the handle class IlcIntPredicate.

Arity

As a developer, you can use predicates in CP Optimizer applications to define your own constraints that have not already been predefined in CP Optimizer. In that case, the arity of the predicate (that is, the number of constrained variables involved in the predicate, and thus the size of the array that the member function IlcIntPredicate::isTrue must check) must be less than or equal to three.

See Also:

Method Summary
public IlcIntPredicateI *getImpl() const
public IlcIntPredicate(IlcIntPredicateI * impl=0)
public IlcBoolisTrue(IlcIntArray val)
Method Detail

IlcIntPredicate

public IlcIntPredicate(IlcIntPredicateI * impl=0)

This constructor creates a handle object from a pointer to an implementation object. If the implementation object is zero, you must initialize the handle before using it.


getImpl

public IlcIntPredicateI * getImpl() const

This member function returns a pointer to the implementation object of the invoking handle.


isTrue

public IlcBool isTrue(IlcIntArray val)

This member function calls the member function isTrue of the implementation class IlcIntPredicateI.