This library allows multiple solver states to be maintained in the same program. Each solver state represents an eplex problem. For the external solver, each solver state is completely independent. For ECLiPSe, the solver states may share variables in the constraints or objective functions. The eplex library maintains seperate solution values for each solver state, and it is up to the user to reconcile these solution values if they are different.
When two eplex variables are unified, then the library ensures that the now single variable maintains the eplex values from both variables. The one exception is when two variables from the same solver state is unified. In this case, an equality constraint between the two variables is sent to the solver state, but the user can only obtain one eplex value from the unified variable, even though in the external solver, the variable is still represented as two variables (columns in the matrix). Eplex also raises the event lp_unify_same_handle, which defaults to generating a warning that two variables with the same handle are unified. This default warning can be changed by changing the event handler using set_event_handler/2, e.g. to supress it altogether:
:- set_event_handler(lp_unify_same_handle, true/0)