[ library(eplex) | Reference Manual | Alphabetic Index ]
# lp_get_license_challenge(-Challenge)

Get parameter for computing license key (some external solvers only)
*Challenge*
- Variable

## Description

This is only needed for certain OEM versions of external solvers!
The eplex-library interfaces to an external simplex/MIP solver
which might require a license to run (e.g. CPLEX, XPRESS-MP).
Certain versions of these external solvers use a challenge-
response licensing system. Only in such cases is this predicate
needed. lp_get_license_challenge/1 returns a value which is used to
compute a license key. This key is then passed into lp_get_license/2.
For the details of this procedure you will need to consult the
documentation of the solver vendor.

Be aware that the magic formula supplied by the vendor is usually
designed to be performed in a language like C, and may rely on the
behaviour of overflowing with 32 bit integers. In ECLiPSe, no
overflow will occur because of bignums, and this has to be
taken into account if the magic formula is calculated in ECLiPSe.

If you have a development license of CPLEX or XPRESS-MP, this
predicate does not need to be called. If called anyway, it fails.

### Fail Conditions

Fails if the solver doesn't use a challenge-response licensing system
## Examples

?- ( lp_get_license_challenge(Challenge) ->
magic_formula(Challenge, Response),
lp_get_license(RuntimeLicenseString, Response)
;
lp_get_license(DevelopmentLicensePath, 0)
).

## See Also

lp_get_license / 2