lib(eplex)


   This library lets you use an external Mathematical Programming  solver 
   from within ECLiPSe. This is done either directly to the solver, like
   CPLEX or XPRESS-MP, or indirectly via COIN-OR project's Open Solver
   Interface (OSI), which provides a common and open API for several solvers.
   Specifically, this allow COIN-OR's own open source solvers like CLP and 
   For the commercial solvers, the library provides just the interface, 
   and does not include the solver or any required licence to use them.

    The constraints provided are:
    
    X =:= Yequality over linear expressions
    X >= Yinequality over linear expressions
    X =< Yinequality over linear expressions
    X $= Yequality over linear expressions
    X $>= Yinequality over linear expressions
    X $=< Yinequality over linear expressions
    integers(Xs)integrality of variables
    Vs :: BoundBounds on variables
    Vs $:: BoundBounds on variables
    
    Their operational behaviour is as follows:

    When they contain no variables, they simply succeed or fail.

    When they contain exactly one variable, they are translated into a
    bound update on that variable for the external solver instance. This
    can lead to immediate failure if the lower bound is greater than the upper.

    Otherwise, the constraint is transferred to the external solver
    instance immediately.

The following arithmetic expression can be used inside the constraints:

X
Variables. If X is not yet a problem variable for the external solver
    instance, it  is turned into one via an implicit declaration 
    X :: -inf..inf.


123, 3.4
Integer or floating point constants.


+Expr
Identity.


-Expr
Sign change.


E1+E2
Addition.


sum(ListOfExpr)
Equivalent to the sum of all list elements.


E1-E2
Subtraction.


E1*E2
Multiplication.


ListOfExpr1*ListOfExpr2
Scalar product: The sum of the products of the corresponding
elements in the two lists.  The lists must be of equal length.


The external solver can either be explicitly invoked to solve the
problem represented by the constraints, or be invoked in response to
certain trigger conditions. This mechanism makes it possible to tailor
the solving behaviour for a particular application's needs.



