The ic solver library implements two kinds of constraints

- finite domain constraints
- interval constraints

Each constraint is handled separately and individually, and the only communication between them is via the bounds on their shared variables.

The benefits of the ic solvers are

- the repeated tightening of guaranteed upper and lower bounds on the variables
- the application of tailored algorithms to standard subproblems (encapsulated as global constraints)
- the implementation of a very wide class of constraints

The eplex solver library implements two kinds of constraints

- linear numeric constraints
- integrality constraints

The linear constraints are handled by a very powerful solver that
enforces *global* consistency on all the constraints.
The integrality constraints are handled via a built-in search
mechanism.

The benefits of the eplex solvers are

- the enforcement of global consistency for linear constraints
- the production of an optimal solution satisfying the linear constraints

For some years researchers have sought to characterise the classes of problems for which the different solvers are best suited. Problems involving only linear constraints are very well handled by eplex. Problems involving disjunctions of constraints are often best handled by ic. Often set covering problems are best handled by eplex and scheduling problems by ic. However in general there is no method to recognise for a new problem which solver is best.

Luckily in ECL^{i}PS^{e} there is no need to choose a specific solver for each
problem, since it is possible to apply both solvers. Moreover the
solvers communicate with each other, thus further speeding up constraint
solving.
The ic solver communicates new tightened bounds to the
eplex solver. These tightened bounds have typically been deduced
from non-linear constraints and thus the linear solver benefits from
information which would not otherwise have been available to it.
On the other hand the eplex solver often detects inconsistencies
which would not have been detected by the ic solvers. Moreover
it returns a bound on the optimisation function which can be used by
the ic constraints.
Finally the optimal solution returned by eplex to the
“relaxed” problem
comprising just the linear constraints, can be used as a
search heuristic that can focus the ic solver on the most
promising parts of the search space.

There are two main reasons for combining eplex and ic in a hybrid algorithm

- ic handles a wider class of constraints than eplex
- The solvers extract different kinds of information from the constraints