20110312
  xpress.c, README.1st, README.xpress:  update to version 7.1.

20110325
  xpress.c: omit the "debug" keyword unless compiled with -DRWA_DEBUG .

20110419
  xpress.c: fix a bug with quadratic constraints involving some
variables that only appear linearly.

20110825
  xpress.c: some bug fixes, e.g., in handling quadratic forms,
supplied by David Nielsen.

20110913
  xpress.c: add support for indicator constraints, i.e., logical
constraints of the form
	s.t. foo: b == c ==> constraint1 [else constraint2]
with b a binary variable, c = 0 or 1, and the constraints simple
inequality or equality constraints.  This requires linking with
version >= 20110913 of the AMPL/solver interface library.

20111010
 xpress.c: fix a bug in the update of 20110825.

20111220
 xpress.c: increase constraint.sstatus array length by one to fix
a possible fault.

20111223
 xpress.c: catch SIGINT (control-C) and return the best available
solution.  Quickly giving several control-C's may sometimes lead to
the new solve_result_num value 520 (and no returned solution).
 README.xpress: minor adjustments.

20120417
 xpress.c: updates for XPRESS 22.

20120605
 xpress.c: add keyword mipstartvalue with synonym mipstart to
control whether a starting guess for a MIP problem is passed
to XPRESS.  Hitherto a starting guess was ignored; now the
default is to use it, but specifying mipstartvalue=0 will cause
it not to be used.  Also arrange for "xpress -v" to report the
version of XPRESS being used.

20120731
 xpress.c: updates for XPRESS 23:  new keywords cpuplatform,
preduprow, presolvemaxgrow, symmetry.  The updated driver still
works with XPRESS 22.

20121006
  Add keyword "version", to report version details before solving
the problem.

20121011
  Updates to README.xpress, makefile.u, makefile.vc and addition
of shell scripts xpress.linux and xpress.macosx.

20130129
  Correct the description of "sos2" in the "-=" output.

20130312
  Add "network" keyword instructing xpress to identify and exploit
an embedded network.

20130419
  Update for version 7.5.  New keywords: baralg, barreg, treepresolve.

20130622
  Add keyword "lazy" for recognizing suffix .lazy, with nonzero values
indicating that linear constraints are "lazy" or "delayed" if the
problem has integer variables.
  Add keyword "objrep" controlling whether to replace
	minimize obj: v;
with
	minimize obj: f(x)
when variable v appears linearly in exactly one constraint of the form
	s.t. c: v >= f(x);
or
	s.t. c: v == f(x);
Default is no for the former, yes for the latter.  For more details,
invoke "xpress -=".  This requires use of version >= 20130622 of the
AMPL/solver interface library.

20140204
  Update for XPRESS 7.6.  New keywords barcores, miqcpalg, qccuts,
qcrootalg.  See the "xpress -=" output for details.  Tested with
libraries for which "xpress -v" says "AMPL/XPRESS 25.01.05 ...".

20140314
  Fix a glitch (possible fault) with objrep.

20140618
  When iis appears in $xpress_options and a linear problem is infeasible,
return an IIS in suffix .iis; if changing the bounds on just one
constraint or variable would remove the infeasibility, also return
suffix .iso with value 1 for each such constraint or variable.
  Change calls on Sprintf to simpler, safer calls on Bpf.  Should be
invisible.

20140624
  Update for XPRESS 7.7.  New keywords dualthreads, maxmemory,
prebndredcone, prebndredquad, prelindep, preobjcutdetect.  See the
"xpress -=" output for details.  Tested with libraries for which 
"xpress -v" says "AMPL/XPRESS 26.01.04 ...".

20141223
  New keyword "advance".  Specifying advance=0 in $xpress_options
has the same effect as "option send_statuses 0;" before "solve;"
in an AMPL session.
  Update for XPRESS 7.8.  New keywords
	algaftercrossover
	algafternetwork
	concurrentthreads
	crossovertol
	dualizeops
	feastol_target
	hdive_rounding
	lpref_itlim
	opttol_target
	precomponents
	refineops

20150417
  New keywords for MIP solution pool:
	pooldualred
	pooldupcol
	pooldups
	poolfeastol
	poolmiptol
	poolnbest
	poolstub
and updated description of "heurthreads".  For details, see the
"xpress -=" output or the updated README.xpress.

20150529
  New keyword "bestbound".  See the updated "xpress -=" output.

20150819
  Update for XPRESS 7.9.  New keywords
	maximpliedbound
	miprefiterlim
	miptoltarget

20161110
  Update for XPRESS 8.0.  New keywords
	barorderthreads
	conedecomp
	heurrootcutfreq
	maxmiptasks
	mipstop
	permuteseed
	prepermute

20170113
  Add keyword "barobjscale".

20170314
  Add keyword "param".  See the "xpress -=" output for details.

20170404
  Suppress call on XPRSgetlpsol() when LPSTATUS is 7 (XPRS_LP_UNSOLVED),
so the solve exit code will be 0 rather than 1.

20170428
  xpress.c: change erroneous want_deriv to want_derivs, which should
slightly reduce times to read problems involving quadratic expressions.

20170511
  Update for XPRESS 8.2.  New keywords
	archconsistent
	crossoveritlim
	crossoverops
	crossoverthreads
	miprampup
	preimplications
	sifting
	tunerdir
	tunerhistory
	tunermaxtime
	tunermethod
	tunermethodfile
	tunerpermute
	tunertarget
	tunerthreads

20170904
  Arrange for the solve_message to have the form "XPRESS xx.yy.zz"
rather than just "XPRESS.xx.yy".  With XPRESS 8.2 this is
"XPRESS.31.01.02" and with XPRESS 8.3 it is "XPRESS.31.01.09".

20171004
  xpress.c: fix a glitch in the ordering of #include directives.
The glitch had no effect on binaries generated by AMPL Optimization
because of the way license checking is done.

20171006
  xpress.c:  add keyword "writeprob"; see the "xpress -=" output for
details.
  README.xpress: update with current "xpress -=" output.

20180129
  xpress.c: update to XPRESS 8.4.  New keywords heurforcespecobj,
lpfolding, preanalyticcenter, and prebasisred, and some new possible
values (7,8,9) for tunertarget.  See the "xpress -= output".

20180530
  xpress.c: add keyword bargaptarget; see the -= output for details.

20180613
  xpress.c: adjust to allow solving problems with more than 2^31
nonzeros (on 64-bit systems).

20180808
  Update to XPRESS 8.5, which has some bug fixes and improvements.
New keywords:

	dualperturb
	presolvepasses
	primalperturb

Modified keyword (to be withdrawn):

	perturb

Withdrawn keyword:

	tempbounds

See the "xpress -=" output for more details.

20190220
  xpress.c, README.xpress:  Adjust "maxtime" description (in
"xpress -=" output and in README.xpress) to accord with XPRESS
documentation.  For n > 0, maxtime=n allows execution to run more than
n seconds if needed to obtain a first feasible solution, at least on
problems with integer variables.

20190308
  xpress.c: when available (starting with XPRESS 8.5), use attribute
XPRESSVERSION to obtain the "8.5.10" in the current "AMPL/XPRESS
8.5.10(33.01.12)" part of the solve_message and "xpress -v" output.
Previously this had to specified with a -D option when compiling
xpress.c.  Now changes to the XPRESS libraries in use should be
reflected in this string.

20190711
  xpress.c: update to XPRESS 8.6, which has bug fixes and
improvements.  New keywords: barkernel, elimfillin, mipkappafreq,
objscalefactor, preconvertsep.  See the "xpress -=" output.

20191230
  xpress.c:  update to XPRESS 8.8, which has bug fixes and
improvements.  New keywords:  globalfilemax, globalloginterval,
maxmemoryhard, mipdualreductions, resourcestrategy.  Expanded
description of refineops.  Keyword nodefilebias is now noted
as "deprecated and ignored".  See the "xpress -=" output.

20201210
  xpress.c:  update to XPRESS 8.10, which has bug fixes and
improvements.  New keywords:  autoscaling, feastol_perturb.
New control bits for refineops.  See the "xpress -=" output
for details.
  No changes to xpress.c for later XPRESS versions through 8.11.2.

20210614
  xpress.c:  minor fiddle with EXPRESS_RELEASE and XPRS_XPRESSVERSION,
relevant to output of "xpress -v".
  README.xpress: minor updates to keyword descriptions.

20220112
  xpress.c:  update to XPRESS 11.0.  New keywords:  autocutting,
barobjperturb, barrefiter, clamping, heuremphasis, inputtol,
maxstalltime, mipcomponents, mipconcurnodes, mipconcursolves,
miprestart, miprestartfactor, miprestartgaptol, netstalllimit,
nodeprobingeffort, prefolding, siftpasses, siftpresolveops,
siftswitch.  See the "xpress -=" output for details.
