text: /* BEGIN LICENSE BLOCK
   * Version: CMPL 1.1
   *
   * The contents of this file are subject to the Cisco-style Mozilla Public
   * License Version 1.1 (the "License"); you may not use this file except
   * in compliance with the License.  You may obtain a copy of the License
   * at www.eclipse-clp.org/license.
   * 
   * Software distributed under the License is distributed on an "AS IS"
   * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See
   * the License for the specific language governing rights and limitations
   * under the License. 
   * 
   * The Original Code is  The ECLiPSe Constraint Logic Programming System. 
   * The Initial Developer of the Original Code is  Cisco Systems, Inc. 
   * Portions created by the Initial Developer are
   * Copyright (C) 1999-2006 Cisco Systems, Inc.  All Rights Reserved.
   * 
   * Contributor(s): Joachim Schimpf and Kish Shen , IC-Parc
   * 
   * END LICENSE BLOCK */
  /*
   * ECLiPSe / CPLEX interface
   *
   * System:	ECLiPSe Constraint Logic Programming System
   * Author/s:	Joachim Schimpf, IC-Parc
   * Version:	$Id: eplex_params.h,v 1.4 2008/10/22 16:26:24 kish_shen Exp $
   *
   */
  
  /*
  
  This file defines a table params[] which maps the symbolic names
  of the optimizer flags to the internal numbers. The set of flags
  and the numbers differ in each version and between optimizers,
  therefore this file has to be updated for every new release
  of CPLEX/XPRESS etc.
  
  For a new version do the following:
  
  - CPLEX: grep the CPX_PARAM_ lines out of cplex.h
    ignore the aliases for old names in ifndef CPLEX_MODERN
    ignore the boundary definitions CPX_PARAM_ALL_MIN/MAX
  - XPRESS: grep the N_ lines out of xpresso.h (only the control variable ones)
  - convert the lines into the table entries
    (with :% to do global replacement in vi)
    CPLEX:
      s/^#define[	 ]CPX_PARAM_\([^ ]*\).*$/{"\L\1\E", CPX_PARAM_\1, 0},/
  
    XPRESS pre 13:
      s/^#define N_\([^ ]*\).*$/{"\L\1\E", N_\1, 0},/
  
    XPRESS 13+:
      s/^#define XPRS_\([^ ]*\).*$/{"\L\1\E", XPRS_\1, 0},/
  
  - mark the int params with 0, the doubles with 1, the strings with 2
  - count the lines and define NUMPARAMS accordingly!
  - add the new section within the proper #if's
  
  */
  
  
  /* The number of version-independent aliases, see end of file */
  
  #define COIN
  
  #ifdef CPLEX
  #define NUMALIASES 44
  #endif
  #ifdef XPRESS
  #define NUMALIASES 13
  #endif
  #ifdef COIN
  #define NUMALIASES 2
  #endif
  
  /*
   * The version-dependent definition of params[]
   */
  
  
  #if CPLEX==6 && CPLEXMINOR<5
  
  #define NUMPARAMS 106
  static struct param_desc params[NUMPARAMS+NUMALIASES] = {
  {"advind", CPX_PARAM_ADVIND, 0},
  {"aggfill", CPX_PARAM_AGGFILL, 0},
  {"aggind", CPX_PARAM_AGGIND, 0},
  {"basinterval", CPX_PARAM_BASINTERVAL, 0},
  {"cfilemul", CPX_PARAM_CFILEMUL, 0},
  {"clocktype", CPX_PARAM_CLOCKTYPE, 0},
  {"craind", CPX_PARAM_CRAIND, 0},
  {"depind", CPX_PARAM_DEPIND, 0},
  {"dpriind", CPX_PARAM_DPRIIND, 0},
  {"pricelim", CPX_PARAM_PRICELIM, 0},
  {"rimreadlim", CPX_PARAM_RIMREADLIM, 0},
  {"rimnzreadlim", CPX_PARAM_RIMNZREADLIM, 0},
  {"epmrk", CPX_PARAM_EPMRK, 1},
  {"epopt", CPX_PARAM_EPOPT, 1},
  {"epper", CPX_PARAM_EPPER, 1},
  {"eprhs", CPX_PARAM_EPRHS, 1},
  {"fastmip", CPX_PARAM_FASTMIP, 0},
  {"iisind", CPX_PARAM_IISIND, 0},
  {"simdisplay", CPX_PARAM_SIMDISPLAY, 0},
  {"itlim", CPX_PARAM_ITLIM, 0},
  {"rowreadlim", CPX_PARAM_ROWREADLIM, 0},
  {"netfind", CPX_PARAM_NETFIND, 0},
  {"colreadlim", CPX_PARAM_COLREADLIM, 0},
  {"nzreadlim", CPX_PARAM_NZREADLIM, 0},
  {"objllim", CPX_PARAM_OBJLLIM, 1},
  {"objulim", CPX_PARAM_OBJULIM, 1},
  {"perind", CPX_PARAM_PERIND, 0},
  {"perlim", CPX_PARAM_PERLIM, 0},
  {"ppriind", CPX_PARAM_PPRIIND, 0},
  {"preind", CPX_PARAM_PREIND, 0},
  {"reinv", CPX_PARAM_REINV, 0},
  {"reverseind", CPX_PARAM_REVERSEIND, 0},
  {"rfilemul", CPX_PARAM_RFILEMUL, 0},
  {"scaind", CPX_PARAM_SCAIND, 0},
  {"scrind", CPX_PARAM_SCRIND, 0},
  {"simthreads", CPX_PARAM_SIMTHREADS, 0},
  {"singlim", CPX_PARAM_SINGLIM, 0},
  {"singtol", CPX_PARAM_SINGTOL, 0},
  {"tilim", CPX_PARAM_TILIM, 1},
  {"pppind", CPX_PARAM_PPPIND, 0},
  {"xxxind", CPX_PARAM_XXXIND, 0},
  {"effslackind", CPX_PARAM_EFFSLACKIND, 0},
  {"predisp", CPX_PARAM_PREDISP, 0},
  {"predual", CPX_PARAM_PREDUAL, 0},
  {"prememfact", CPX_PARAM_PREMEMFACT, 0},
  {"rowgrowth", CPX_PARAM_ROWGROWTH, 0},
  {"colgrowth", CPX_PARAM_COLGROWTH, 0},
  {"nzgrowth", CPX_PARAM_NZGROWTH, 0},
  {"epopt_h", CPX_PARAM_EPOPT_H, 1},
  {"eprhs_h", CPX_PARAM_EPRHS_H, 1},
  {"flipind", CPX_PARAM_FLIPIND, 0},
  {"bardstart", CPX_PARAM_BARDSTART, 0},
  {"barepcomp", CPX_PARAM_BAREPCOMP, 1},
  {"bargrowth", CPX_PARAM_BARGROWTH, 1},
  {"barobjrng", CPX_PARAM_BAROBJRNG, 1},
  {"barpstart", CPX_PARAM_BARPSTART, 0},
  {"barvarup", CPX_PARAM_BARVARUP, 1},
  {"baralg", CPX_PARAM_BARALG, 0},
  {"barunroll", CPX_PARAM_BARUNROLL, 0},
  {"barcolnz", CPX_PARAM_BARCOLNZ, 0},
  {"bardisplay", CPX_PARAM_BARDISPLAY, 0},
  {"barfactor", CPX_PARAM_BARFACTOR, 0},
  {"baritlim", CPX_PARAM_BARITLIM, 0},
  {"barmaxcor", CPX_PARAM_BARMAXCOR, 0},
  {"barorder", CPX_PARAM_BARORDER, 0},
  {"barrowsden", CPX_PARAM_BARROWSDEN, 0},
  {"barthreads", CPX_PARAM_BARTHREADS, 0},
  {"barstartalg", CPX_PARAM_BARSTARTALG, 0},
  {"brdir", CPX_PARAM_BRDIR, 0},
  {"bttol", CPX_PARAM_BTTOL, 1},
  {"cliques", CPX_PARAM_CLIQUES, 0},
  {"coeredind", CPX_PARAM_COEREDIND, 0},
  {"covers", CPX_PARAM_COVERS, 0},
  {"cutlo", CPX_PARAM_CUTLO, 1},
  {"cutup", CPX_PARAM_CUTUP, 1},
  {"epagap", CPX_PARAM_EPAGAP, 1},
  {"epgap", CPX_PARAM_EPGAP, 1},
  {"epint", CPX_PARAM_EPINT, 1},
  {"heuristic", CPX_PARAM_HEURISTIC, 0},
  {"mipdisplay", CPX_PARAM_MIPDISPLAY, 0},
  {"mipinterval", CPX_PARAM_MIPINTERVAL, 0},
  {"mipthreads", CPX_PARAM_MIPTHREADS, 0},
  {"intsollim", CPX_PARAM_INTSOLLIM, 0},
  {"nodefileind", CPX_PARAM_NODEFILEIND, 0},
  {"nodelim", CPX_PARAM_NODELIM, 0},
  {"nodesel", CPX_PARAM_NODESEL, 0},
  {"objdif", CPX_PARAM_OBJDIF, 1},
  {"mipordind", CPX_PARAM_MIPORDIND, 0},
  {"rcfixind", CPX_PARAM_RCFIXIND, 0},
  {"relobjdif", CPX_PARAM_RELOBJDIF, 1},
  {"sosind", CPX_PARAM_SOSIND, 0},
  {"sosminsz", CPX_PARAM_SOSMINSZ, 0},
  {"startalg", CPX_PARAM_STARTALG, 0},
  {"subalg", CPX_PARAM_SUBALG, 0},
  {"trelim", CPX_PARAM_TRELIM, 1},
  {"varsel", CPX_PARAM_VARSEL, 0},
  {"bndstrenind", CPX_PARAM_BNDSTRENIND, 0},
  {"nodefilelim", CPX_PARAM_NODEFILELIM, 1},
  {"heurfreq", CPX_PARAM_HEURFREQ, 0},
  {"mipordtype", CPX_PARAM_MIPORDTYPE, 0},
  {"cutsfactor", CPX_PARAM_CUTSFACTOR, 1},
  {"relaxpreind", CPX_PARAM_RELAXPREIND, 0},
  {"mipstart", CPX_PARAM_MIPSTART, 0},
  {"nodefiledir", CPX_PARAM_NODEFILEDIR, 0},
  {"qpnzreadlim", CPX_PARAM_QPNZREADLIM, 0},
  {"qpnzgrowth", CPX_PARAM_QPNZGROWTH, 0},
  
  #elif CPLEX==6 && CPLEXMINOR==5
  
  #define NUMPARAMS 117
  static struct param_desc params[NUMPARAMS+NUMALIASES] = {
  {"advind", CPX_PARAM_ADVIND, 0},
  {"aggfill", CPX_PARAM_AGGFILL, 0},
  {"aggind", CPX_PARAM_AGGIND, 0},
  {"basinterval", CPX_PARAM_BASINTERVAL, 0},
  {"cfilemul", CPX_PARAM_CFILEMUL, 0},
  {"clocktype", CPX_PARAM_CLOCKTYPE, 0},
  {"craind", CPX_PARAM_CRAIND, 0},
  {"depind", CPX_PARAM_DEPIND, 0},
  {"dpriind", CPX_PARAM_DPRIIND, 0},
  {"pricelim", CPX_PARAM_PRICELIM, 0},
  {"rimreadlim", CPX_PARAM_RIMREADLIM, 0},
  {"rimnzreadlim", CPX_PARAM_RIMNZREADLIM, 0},
  {"epmrk", CPX_PARAM_EPMRK, 1},
  {"epopt", CPX_PARAM_EPOPT, 1},
  {"epper", CPX_PARAM_EPPER, 1},
  {"eprhs", CPX_PARAM_EPRHS, 1},
  {"fastmip", CPX_PARAM_FASTMIP, 0},
  {"iisind", CPX_PARAM_IISIND, 0},
  {"simdisplay", CPX_PARAM_SIMDISPLAY, 0},
  {"itlim", CPX_PARAM_ITLIM, 0},
  {"rowreadlim", CPX_PARAM_ROWREADLIM, 0},
  {"netfind", CPX_PARAM_NETFIND, 0},
  {"colreadlim", CPX_PARAM_COLREADLIM, 0},
  {"nzreadlim", CPX_PARAM_NZREADLIM, 0},
  {"objllim", CPX_PARAM_OBJLLIM, 1},
  {"objulim", CPX_PARAM_OBJULIM, 1},
  {"perind", CPX_PARAM_PERIND, 0},
  {"perlim", CPX_PARAM_PERLIM, 0},
  {"ppriind", CPX_PARAM_PPRIIND, 0},
  {"preind", CPX_PARAM_PREIND, 0},
  {"reinv", CPX_PARAM_REINV, 0},
  {"reverseind", CPX_PARAM_REVERSEIND, 0},
  {"rfilemul", CPX_PARAM_RFILEMUL, 0},
  {"scaind", CPX_PARAM_SCAIND, 0},
  {"scrind", CPX_PARAM_SCRIND, 0},
  {"simthreads", CPX_PARAM_SIMTHREADS, 0},
  {"singlim", CPX_PARAM_SINGLIM, 0},
  {"singtol", CPX_PARAM_SINGTOL, 0},
  {"tilim", CPX_PARAM_TILIM, 1},
  {"xxxind", CPX_PARAM_XXXIND, 0},
  {"effslackind", CPX_PARAM_EFFSLACKIND, 0},
  {"predisp", CPX_PARAM_PREDISP, 0},
  {"predual", CPX_PARAM_PREDUAL, 0},
  {"prememfact", CPX_PARAM_PREMEMFACT, 0},
  {"rowgrowth", CPX_PARAM_ROWGROWTH, 0},
  {"colgrowth", CPX_PARAM_COLGROWTH, 0},
  {"nzgrowth", CPX_PARAM_NZGROWTH, 0},
  {"epopt_h", CPX_PARAM_EPOPT_H, 1},
  {"eprhs_h", CPX_PARAM_EPRHS_H, 1},
  {"flipind", CPX_PARAM_FLIPIND, 0},
  {"prepass", CPX_PARAM_PREPASS, 0},
  {"longnameind", CPX_PARAM_LONGNAMEIND, 0},
  {"bardstart", CPX_PARAM_BARDSTART, 0},
  {"barepcomp", CPX_PARAM_BAREPCOMP, 1},
  {"bargrowth", CPX_PARAM_BARGROWTH, 1},
  {"barobjrng", CPX_PARAM_BAROBJRNG, 1},
  {"barpstart", CPX_PARAM_BARPSTART, 0},
  {"barvarup", CPX_PARAM_BARVARUP, 1},
  {"baralg", CPX_PARAM_BARALG, 0},
  {"barunroll", CPX_PARAM_BARUNROLL, 0},
  {"barcolnz", CPX_PARAM_BARCOLNZ, 0},
  {"bardisplay", CPX_PARAM_BARDISPLAY, 0},
  {"baritlim", CPX_PARAM_BARITLIM, 0},
  {"barmaxcor", CPX_PARAM_BARMAXCOR, 0},
  {"barorder", CPX_PARAM_BARORDER, 0},
  {"barrowsden", CPX_PARAM_BARROWSDEN, 0},
  {"barthreads", CPX_PARAM_BARTHREADS, 0},
  {"barstartalg", CPX_PARAM_BARSTARTALG, 0},
  {"brdir", CPX_PARAM_BRDIR, 0},
  {"bttol", CPX_PARAM_BTTOL, 1},
  {"cliques", CPX_PARAM_CLIQUES, 0},
  {"coeredind", CPX_PARAM_COEREDIND, 0},
  {"covers", CPX_PARAM_COVERS, 0},
  {"cutlo", CPX_PARAM_CUTLO, 1},
  {"cutup", CPX_PARAM_CUTUP, 1},
  {"epagap", CPX_PARAM_EPAGAP, 1},
  {"epgap", CPX_PARAM_EPGAP, 1},
  {"epint", CPX_PARAM_EPINT, 1},
  {"heuristic", CPX_PARAM_HEURISTIC, 0},
  {"mipdisplay", CPX_PARAM_MIPDISPLAY, 0},
  {"mipinterval", CPX_PARAM_MIPINTERVAL, 0},
  {"mipthreads", CPX_PARAM_MIPTHREADS, 0},
  {"intsollim", CPX_PARAM_INTSOLLIM, 0},
  {"nodefileind", CPX_PARAM_NODEFILEIND, 0},
  {"nodelim", CPX_PARAM_NODELIM, 0},
  {"nodesel", CPX_PARAM_NODESEL, 0},
  {"objdif", CPX_PARAM_OBJDIF, 1},
  {"mipordind", CPX_PARAM_MIPORDIND, 0},
  {"relobjdif", CPX_PARAM_RELOBJDIF, 1},
  {"startalg", CPX_PARAM_STARTALG, 0},
  {"subalg", CPX_PARAM_SUBALG, 0},
  {"trelim", CPX_PARAM_TRELIM, 1},
  {"varsel", CPX_PARAM_VARSEL, 0},
  {"bndstrenind", CPX_PARAM_BNDSTRENIND, 0},
  {"nodefilelim", CPX_PARAM_NODEFILELIM, 1},
  {"heurfreq", CPX_PARAM_HEURFREQ, 0},
  {"mipordtype", CPX_PARAM_MIPORDTYPE, 0},
  {"cutsfactor", CPX_PARAM_CUTSFACTOR, 1},
  {"relaxpreind", CPX_PARAM_RELAXPREIND, 0},
  {"mipstart", CPX_PARAM_MIPSTART, 0},
  {"nodefiledir", CPX_PARAM_NODEFILEDIR, 0},
  {"bbinterval", CPX_PARAM_BBINTERVAL, 0},
  {"flowcovers", CPX_PARAM_FLOWCOVERS, 0},
  {"implbd", CPX_PARAM_IMPLBD, 0},
  {"probe", CPX_PARAM_PROBE, 0},
  {"miphybalg", CPX_PARAM_MIPHYBALG, 0},
  {"gubcovers", CPX_PARAM_GUBCOVERS, 0},
  {"strongcandlim", CPX_PARAM_STRONGCANDLIM, 0},
  {"strongitlim", CPX_PARAM_STRONGITLIM, 0},
  {"strongthreadlim", CPX_PARAM_STRONGTHREADLIM, 0},
  {"qpnzreadlim", CPX_PARAM_QPNZREADLIM, 0},
  {"qpnzgrowth", CPX_PARAM_QPNZGROWTH, 0},
  {"netitlim", CPX_PARAM_NETITLIM, 0},
  {"netepopt", CPX_PARAM_NETEPOPT, 1},
  {"neteprhs", CPX_PARAM_NETEPRHS, 1},
  {"netppriind", CPX_PARAM_NETPPRIIND, 0},
  {"netdisplay", CPX_PARAM_NETDISPLAY, 0},
  
  #elif CPLEX==7 && (CPLEXMINOR>=1)
  
  #define NUMPARAMS 129
  static struct param_desc params[NUMPARAMS+NUMALIASES] = {
  {"advind", CPX_PARAM_ADVIND, 0},
  {"aggfill", CPX_PARAM_AGGFILL, 0},
  {"aggind", CPX_PARAM_AGGIND, 0},
  {"basinterval", CPX_PARAM_BASINTERVAL, 0},
  {"cfilemul", CPX_PARAM_CFILEMUL, 0},
  {"clocktype", CPX_PARAM_CLOCKTYPE, 0},
  {"craind", CPX_PARAM_CRAIND, 0},
  {"depind", CPX_PARAM_DEPIND, 0},
  {"dpriind", CPX_PARAM_DPRIIND, 0},
  {"pricelim", CPX_PARAM_PRICELIM, 0},
  {"rimreadlim", CPX_PARAM_RIMREADLIM, 0},
  {"rimnzreadlim", CPX_PARAM_RIMNZREADLIM, 0},
  {"epmrk", CPX_PARAM_EPMRK, 1},
  {"epopt", CPX_PARAM_EPOPT, 1},
  {"epper", CPX_PARAM_EPPER, 1},
  {"eprhs", CPX_PARAM_EPRHS, 1},
  {"fastmip", CPX_PARAM_FASTMIP, 0},
  {"iisind", CPX_PARAM_IISIND, 0},
  {"simdisplay", CPX_PARAM_SIMDISPLAY, 0},
  {"itlim", CPX_PARAM_ITLIM, 0},
  {"rowreadlim", CPX_PARAM_ROWREADLIM, 0},
  {"netfind", CPX_PARAM_NETFIND, 0},
  {"colreadlim", CPX_PARAM_COLREADLIM, 0},
  {"nzreadlim", CPX_PARAM_NZREADLIM, 0},
  {"objllim", CPX_PARAM_OBJLLIM, 1},
  {"objulim", CPX_PARAM_OBJULIM, 1},
  {"perind", CPX_PARAM_PERIND, 0},
  {"perlim", CPX_PARAM_PERLIM, 0},
  {"ppriind", CPX_PARAM_PPRIIND, 0},
  {"preind", CPX_PARAM_PREIND, 0},
  {"reinv", CPX_PARAM_REINV, 0},
  {"reverseind", CPX_PARAM_REVERSEIND, 0},
  {"rfilemul", CPX_PARAM_RFILEMUL, 0},
  {"scaind", CPX_PARAM_SCAIND, 0},
  {"scrind", CPX_PARAM_SCRIND, 0},
  {"simthreads", CPX_PARAM_SIMTHREADS, 0},
  {"singlim", CPX_PARAM_SINGLIM, 0},
  {"singtol", CPX_PARAM_SINGTOL, 0},
  {"tilim", CPX_PARAM_TILIM, 1},
  {"xxxind", CPX_PARAM_XXXIND, 0},
  {"effslackind", CPX_PARAM_EFFSLACKIND, 0},
  {"predual", CPX_PARAM_PREDUAL, 0},
  {"rowgrowth", CPX_PARAM_ROWGROWTH, 0},
  {"colgrowth", CPX_PARAM_COLGROWTH, 0},
  {"nzgrowth", CPX_PARAM_NZGROWTH, 0},
  {"epopt_h", CPX_PARAM_EPOPT_H, 0},
  {"eprhs_h", CPX_PARAM_EPRHS_H, 0},
  {"prepass", CPX_PARAM_PREPASS, 0},
  {"datacheck", CPX_PARAM_DATACHECK, 0},
  {"reduce", CPX_PARAM_REDUCE, 0},
  {"prelinear", CPX_PARAM_PRELINEAR, 0},
  {"lpmethod", CPX_PARAM_LPMETHOD, 0},
  {"workdir", CPX_PARAM_WORKDIR, 2},
  {"workmem", CPX_PARAM_WORKMEM, 1},
  {"precompress", CPX_PARAM_PRECOMPRESS, 0},
  {"bardstart", CPX_PARAM_BARDSTART, 0},
  {"barepcomp", CPX_PARAM_BAREPCOMP, 1},
  {"bargrowth", CPX_PARAM_BARGROWTH, 1},
  {"barobjrng", CPX_PARAM_BAROBJRNG, 1},
  {"barpstart", CPX_PARAM_BARPSTART, 0},
  {"barvarup", CPX_PARAM_BARVARUP, 1},
  {"baralg", CPX_PARAM_BARALG, 0},
  {"barcolnz", CPX_PARAM_BARCOLNZ, 0},
  {"bardisplay", CPX_PARAM_BARDISPLAY, 0},
  {"baritlim", CPX_PARAM_BARITLIM, 0},
  {"barmaxcor", CPX_PARAM_BARMAXCOR, 0},
  {"barorder", CPX_PARAM_BARORDER, 0},
  {"barrowsden", CPX_PARAM_BARROWSDEN, 0},
  {"barthreads", CPX_PARAM_BARTHREADS, 0},
  {"barstartalg", CPX_PARAM_BARSTARTALG, 0},
  {"barcrossalg", CPX_PARAM_BARCROSSALG, 0},
  {"barooc", CPX_PARAM_BAROOC, 0},
  {"brdir", CPX_PARAM_BRDIR, 0}, 
  {"bttol", CPX_PARAM_BTTOL, 1},
  {"cliques", CPX_PARAM_CLIQUES, 0},
  {"coeredind", CPX_PARAM_COEREDIND, 0},
  {"covers", CPX_PARAM_COVERS, 0},
  {"cutlo", CPX_PARAM_CUTLO, 1},
  {"cutup", CPX_PARAM_CUTUP, 1},
  {"epagap", CPX_PARAM_EPAGAP, 1},
  {"epgap", CPX_PARAM_EPGAP, 1},
  {"epint", CPX_PARAM_EPINT, 1},
  {"heuristic", CPX_PARAM_HEURISTIC, 0},
  {"mipdisplay", CPX_PARAM_MIPDISPLAY, 0},
  {"mipinterval", CPX_PARAM_MIPINTERVAL, 0},
  {"mipthreads", CPX_PARAM_MIPTHREADS, 0},
  {"intsollim", CPX_PARAM_INTSOLLIM, 0},
  {"nodefileind", CPX_PARAM_NODEFILEIND, 0},
  {"nodelim", CPX_PARAM_NODELIM, 0},
  {"nodesel", CPX_PARAM_NODESEL, 0},
  {"objdif", CPX_PARAM_OBJDIF, 1},
  {"mipordind", CPX_PARAM_MIPORDIND, 0},
  {"relobjdif", CPX_PARAM_RELOBJDIF, 1},
  {"startalg", CPX_PARAM_STARTALG, 0},
  {"subalg", CPX_PARAM_SUBALG, 0},
  {"trelim", CPX_PARAM_TRELIM, 1},
  {"varsel", CPX_PARAM_VARSEL, 0},
  {"bndstrenind", CPX_PARAM_BNDSTRENIND, 0},
  {"heurfreq", CPX_PARAM_HEURFREQ, 0},
  {"mipordtype", CPX_PARAM_MIPORDTYPE, 0},
  {"cutsfactor", CPX_PARAM_CUTSFACTOR, 1},
  {"relaxpreind", CPX_PARAM_RELAXPREIND, 0},
  {"mipstart", CPX_PARAM_MIPSTART, 0},
  {"preslvnd", CPX_PARAM_PRESLVND, 0},
  {"bbinterval", CPX_PARAM_BBINTERVAL, 0},
  {"flowcovers", CPX_PARAM_FLOWCOVERS, 0},
  {"implbd", CPX_PARAM_IMPLBD, 0},
  {"probe", CPX_PARAM_PROBE, 0},
  {"gubcovers", CPX_PARAM_GUBCOVERS, 0},
  {"strongcandlim", CPX_PARAM_STRONGCANDLIM, 0},
  {"strongitlim", CPX_PARAM_STRONGITLIM, 0},
  {"strongthreadlim", CPX_PARAM_STRONGTHREADLIM, 0},
  {"fraccand", CPX_PARAM_FRACCAND, 0},
  {"fraccuts", CPX_PARAM_FRACCUTS, 0},
  {"fracpass", CPX_PARAM_FRACPASS, 0},
  {"flowpaths", CPX_PARAM_FLOWPATHS, 0},
  {"mircuts", CPX_PARAM_MIRCUTS, 0},
  {"disjcuts", CPX_PARAM_DISJCUTS, 0},
  {"aggcutlim", CPX_PARAM_AGGCUTLIM, 0},
  {"mipcbredlp", CPX_PARAM_MIPCBREDLP, 0},
  {"cutpass", CPX_PARAM_CUTPASS, 0},
  {"mipemphasis", CPX_PARAM_MIPEMPHASIS, 0},
  {"netitlim", CPX_PARAM_NETITLIM, 0},
  {"netepopt", CPX_PARAM_NETEPOPT, 1},
  {"neteprhs", CPX_PARAM_NETEPRHS, 1},
  {"netppriind", CPX_PARAM_NETPPRIIND, 0},
  {"netdisplay", CPX_PARAM_NETDISPLAY, 0},
  {"qpnzreadlim", CPX_PARAM_QPNZREADLIM, 0},
  {"qpnzgrowth", CPX_PARAM_QPNZGROWTH, 0},
  
  #elif CPLEX==8
  
  #define NUMPARAMS 134
  static struct param_desc params[NUMPARAMS+NUMALIASES] = {
  {"advind", CPX_PARAM_ADVIND, 0},
  {"aggfill", CPX_PARAM_AGGFILL, 0},
  {"aggind", CPX_PARAM_AGGIND, 0},
  {"basinterval", CPX_PARAM_BASINTERVAL, 0},
  {"cfilemul", CPX_PARAM_CFILEMUL, 0},
  {"clocktype", CPX_PARAM_CLOCKTYPE, 0},
  {"craind", CPX_PARAM_CRAIND, 0},
  {"depind", CPX_PARAM_DEPIND, 0},
  {"dpriind", CPX_PARAM_DPRIIND, 0},
  {"pricelim", CPX_PARAM_PRICELIM, 0},
  {"epmrk", CPX_PARAM_EPMRK, 1},
  {"epopt", CPX_PARAM_EPOPT, 1},
  {"epper", CPX_PARAM_EPPER, 1},
  {"eprhs", CPX_PARAM_EPRHS, 1},
  {"fastmip", CPX_PARAM_FASTMIP, 0},
  {"iisind", CPX_PARAM_IISIND, 0},
  {"simdisplay", CPX_PARAM_SIMDISPLAY, 0},
  {"itlim", CPX_PARAM_ITLIM, 0},
  {"rowreadlim", CPX_PARAM_ROWREADLIM, 0},
  {"netfind", CPX_PARAM_NETFIND, 0},
  {"colreadlim", CPX_PARAM_COLREADLIM, 0},
  {"nzreadlim", CPX_PARAM_NZREADLIM, 0},
  {"objllim", CPX_PARAM_OBJLLIM, 1},
  {"objulim", CPX_PARAM_OBJULIM, 1},
  {"perind", CPX_PARAM_PERIND, 0},
  {"perlim", CPX_PARAM_PERLIM, 0},
  {"ppriind", CPX_PARAM_PPRIIND, 0},
  {"preind", CPX_PARAM_PREIND, 0},
  {"reinv", CPX_PARAM_REINV, 0},
  {"reverseind", CPX_PARAM_REVERSEIND, 0},
  {"rfilemul", CPX_PARAM_RFILEMUL, 0},
  {"scaind", CPX_PARAM_SCAIND, 0},
  {"scrind", CPX_PARAM_SCRIND, 0},
  {"simthreads", CPX_PARAM_SIMTHREADS, 0},
  {"singlim", CPX_PARAM_SINGLIM, 0},
  {"singtol", CPX_PARAM_SINGTOL, 0},
  {"tilim", CPX_PARAM_TILIM, 1},
  {"xxxind", CPX_PARAM_XXXIND, 0},
  {"predual", CPX_PARAM_PREDUAL, 0},
  {"rowgrowth", CPX_PARAM_ROWGROWTH, 0},
  {"colgrowth", CPX_PARAM_COLGROWTH, 0},
  {"nzgrowth", CPX_PARAM_NZGROWTH, 0},
  {"epopt_h", CPX_PARAM_EPOPT_H, 0},
  {"eprhs_h", CPX_PARAM_EPRHS_H, 0},
  {"prepass", CPX_PARAM_PREPASS, 0},
  {"datacheck", CPX_PARAM_DATACHECK, 0},
  {"reduce", CPX_PARAM_REDUCE, 0},
  {"prelinear", CPX_PARAM_PRELINEAR, 0},
  {"lpmethod", CPX_PARAM_LPMETHOD, 0},
  {"qpmethod", CPX_PARAM_QPMETHOD, 0},
  {"workdir", CPX_PARAM_WORKDIR, 2},
  {"workmem", CPX_PARAM_WORKMEM, 1},
  {"precompress", CPX_PARAM_PRECOMPRESS, 0},
  {"threads", CPX_PARAM_THREADS, 0},
  {"siftdisplay", CPX_PARAM_SIFTDISPLAY, 0},
  {"siftalg", CPX_PARAM_SIFTALG, 0},
  {"siftitlim", CPX_PARAM_SIFTITLIM, 0}, 
  {"bardstart", CPX_PARAM_BARDSTART, 0},
  {"barepcomp", CPX_PARAM_BAREPCOMP, 1},
  {"bargrowth", CPX_PARAM_BARGROWTH, 1},
  {"barobjrng", CPX_PARAM_BAROBJRNG, 1},
  {"barpstart", CPX_PARAM_BARPSTART, 0},
  {"barvarup", CPX_PARAM_BARVARUP, 1},
  {"baralg", CPX_PARAM_BARALG, 0},
  {"barcolnz", CPX_PARAM_BARCOLNZ, 0},
  {"bardisplay", CPX_PARAM_BARDISPLAY, 0},
  {"baritlim", CPX_PARAM_BARITLIM, 0},
  {"barmaxcor", CPX_PARAM_BARMAXCOR, 0},
  {"barorder", CPX_PARAM_BARORDER, 0},
  {"barrowsden", CPX_PARAM_BARROWSDEN, 0},
  {"barthreads", CPX_PARAM_BARTHREADS, 0},
  {"barstartalg", CPX_PARAM_BARSTARTALG, 0},
  {"barcrossalg", CPX_PARAM_BARCROSSALG, 0},
  {"barooc", CPX_PARAM_BAROOC, 0},
  {"brdir", CPX_PARAM_BRDIR, 0}, 
  {"bttol", CPX_PARAM_BTTOL, 1},
  {"cliques", CPX_PARAM_CLIQUES, 0},
  {"coeredind", CPX_PARAM_COEREDIND, 0},
  {"covers", CPX_PARAM_COVERS, 0},
  {"cutlo", CPX_PARAM_CUTLO, 1},
  {"cutup", CPX_PARAM_CUTUP, 1},
  {"epagap", CPX_PARAM_EPAGAP, 1},
  {"epgap", CPX_PARAM_EPGAP, 1},
  {"epint", CPX_PARAM_EPINT, 1},
  {"heuristic", CPX_PARAM_HEURISTIC, 0},
  {"mipdisplay", CPX_PARAM_MIPDISPLAY, 0},
  {"mipinterval", CPX_PARAM_MIPINTERVAL, 0},
  {"mipthreads", CPX_PARAM_MIPTHREADS, 0},
  {"intsollim", CPX_PARAM_INTSOLLIM, 0},
  {"nodefileind", CPX_PARAM_NODEFILEIND, 0},
  {"nodelim", CPX_PARAM_NODELIM, 0},
  {"nodesel", CPX_PARAM_NODESEL, 0},
  {"objdif", CPX_PARAM_OBJDIF, 1},
  {"mipordind", CPX_PARAM_MIPORDIND, 0},
  {"relobjdif", CPX_PARAM_RELOBJDIF, 1},
  {"startalg", CPX_PARAM_STARTALG, 0},
  {"subalg", CPX_PARAM_SUBALG, 0},
  {"trelim", CPX_PARAM_TRELIM, 1},
  {"varsel", CPX_PARAM_VARSEL, 0},
  {"bndstrenind", CPX_PARAM_BNDSTRENIND, 0},
  {"heurfreq", CPX_PARAM_HEURFREQ, 0},
  {"mipordtype", CPX_PARAM_MIPORDTYPE, 0},
  {"cutsfactor", CPX_PARAM_CUTSFACTOR, 1},
  {"relaxpreind", CPX_PARAM_RELAXPREIND, 0},
  {"mipstart", CPX_PARAM_MIPSTART, 0},
  {"preslvnd", CPX_PARAM_PRESLVND, 0},
  {"bbinterval", CPX_PARAM_BBINTERVAL, 0},
  {"flowcovers", CPX_PARAM_FLOWCOVERS, 0},
  {"implbd", CPX_PARAM_IMPLBD, 0},
  {"probe", CPX_PARAM_PROBE, 0},
  {"gubcovers", CPX_PARAM_GUBCOVERS, 0},
  {"strongcandlim", CPX_PARAM_STRONGCANDLIM, 0},
  {"strongitlim", CPX_PARAM_STRONGITLIM, 0},
  {"strongthreadlim", CPX_PARAM_STRONGTHREADLIM, 0},
  {"fraccand", CPX_PARAM_FRACCAND, 0},
  {"fraccuts", CPX_PARAM_FRACCUTS, 0},
  {"fracpass", CPX_PARAM_FRACPASS, 0},
  {"flowpaths", CPX_PARAM_FLOWPATHS, 0},
  {"mircuts", CPX_PARAM_MIRCUTS, 0},
  {"disjcuts", CPX_PARAM_DISJCUTS, 0},
  {"aggcutlim", CPX_PARAM_AGGCUTLIM, 0},
  {"mipcbredlp", CPX_PARAM_MIPCBREDLP, 0},
  {"cutpass", CPX_PARAM_CUTPASS, 0},
  {"mipemphasis", CPX_PARAM_MIPEMPHASIS, 0},
  {"symmetry", CPX_PARAM_SYMMETRY, 0},
  {"divetype", CPX_PARAM_DIVETYPE, 0},
  {"netitlim", CPX_PARAM_NETITLIM, 0},
  {"netepopt", CPX_PARAM_NETEPOPT, 1},
  {"neteprhs", CPX_PARAM_NETEPRHS, 1},
  {"netppriind", CPX_PARAM_NETPPRIIND, 0},
  {"netdisplay", CPX_PARAM_NETDISPLAY, 0},
  {"qpnzreadlim", CPX_PARAM_QPNZREADLIM, 0},
  {"qpnzgrowth", CPX_PARAM_QPNZGROWTH, 0},
  {"qpmakepsdind", CPX_PARAM_QPMAKEPSDIND, 0},
  
  #elif CPLEX==9
  
  #define NUMPARAMS 135
  
  static struct param_desc params[NUMPARAMS+NUMALIASES] = {
  {"advind", CPX_PARAM_ADVIND, 0},
  {"aggfill", CPX_PARAM_AGGFILL, 0},
  {"aggind", CPX_PARAM_AGGIND, 0},
  {"basinterval", CPX_PARAM_BASINTERVAL, 0},
  {"cfilemul", CPX_PARAM_CFILEMUL, 0},
  {"clocktype", CPX_PARAM_CLOCKTYPE, 0},
  {"craind", CPX_PARAM_CRAIND, 0},
  {"depind", CPX_PARAM_DEPIND, 0},
  {"dpriind", CPX_PARAM_DPRIIND, 0},
  {"pricelim", CPX_PARAM_PRICELIM, 0},
  {"epmrk", CPX_PARAM_EPMRK, 1},
  {"epopt", CPX_PARAM_EPOPT, 1},
  {"epper", CPX_PARAM_EPPER, 1},
  {"eprhs", CPX_PARAM_EPRHS, 1},
  {"fastmip", CPX_PARAM_FASTMIP, 0},
  {"iisind", CPX_PARAM_IISIND, 0},
  {"simdisplay", CPX_PARAM_SIMDISPLAY, 0},
  {"itlim", CPX_PARAM_ITLIM, 0},
  {"rowreadlim", CPX_PARAM_ROWREADLIM, 0},
  {"netfind", CPX_PARAM_NETFIND, 0},
  {"colreadlim", CPX_PARAM_COLREADLIM, 0},
  {"nzreadlim", CPX_PARAM_NZREADLIM, 0},
  {"objllim", CPX_PARAM_OBJLLIM, 1},
  {"objulim", CPX_PARAM_OBJULIM, 1},
  {"perind", CPX_PARAM_PERIND, 0},
  {"perlim", CPX_PARAM_PERLIM, 0},
  {"ppriind", CPX_PARAM_PPRIIND, 0},
  {"preind", CPX_PARAM_PREIND, 0},
  {"reinv", CPX_PARAM_REINV, 0},
  {"reverseind", CPX_PARAM_REVERSEIND, 0},
  {"rfilemul", CPX_PARAM_RFILEMUL, 0},
  {"scaind", CPX_PARAM_SCAIND, 0},
  {"scrind", CPX_PARAM_SCRIND, 0},
  {"singlim", CPX_PARAM_SINGLIM, 0},
  {"singtol", CPX_PARAM_SINGTOL, 0},
  {"tilim", CPX_PARAM_TILIM, 1},
  {"xxxind", CPX_PARAM_XXXIND, 0},
  {"predual", CPX_PARAM_PREDUAL, 0},
  {"rowgrowth", CPX_PARAM_ROWGROWTH, 0},
  {"colgrowth", CPX_PARAM_COLGROWTH, 0},
  {"nzgrowth", CPX_PARAM_NZGROWTH, 0},
  {"epopt_h", CPX_PARAM_EPOPT_H, 0},
  {"eprhs_h", CPX_PARAM_EPRHS_H, 0},
  {"prepass", CPX_PARAM_PREPASS, 0},
  {"datacheck", CPX_PARAM_DATACHECK, 0},
  {"reduce", CPX_PARAM_REDUCE, 0},
  {"prelinear", CPX_PARAM_PRELINEAR, 0},
  {"lpmethod", CPX_PARAM_LPMETHOD, 0},
  {"qpmethod", CPX_PARAM_QPMETHOD, 0},
  {"workdir", CPX_PARAM_WORKDIR, 2},
  {"workmem", CPX_PARAM_WORKMEM, 1},
  {"precompress", CPX_PARAM_PRECOMPRESS, 0},
  {"threads", CPX_PARAM_THREADS, 0},
  {"siftdisplay", CPX_PARAM_SIFTDISPLAY, 0},
  {"siftalg", CPX_PARAM_SIFTALG, 0},
  {"siftitlim", CPX_PARAM_SIFTITLIM, 0},
  {"finalfactor", CPX_PARAM_FINALFACTOR, 0},
  {"bardstart", CPX_PARAM_BARDSTART, 0},
  {"barepcomp", CPX_PARAM_BAREPCOMP, 1},
  {"bargrowth", CPX_PARAM_BARGROWTH, 1},
  {"barobjrng", CPX_PARAM_BAROBJRNG, 1},
  {"barpstart", CPX_PARAM_BARPSTART, 0},
  {"baralg", CPX_PARAM_BARALG, 0},
  {"barcolnz", CPX_PARAM_BARCOLNZ, 0},
  {"bardisplay", CPX_PARAM_BARDISPLAY, 0},
  {"baritlim", CPX_PARAM_BARITLIM, 0},
  {"barmaxcor", CPX_PARAM_BARMAXCOR, 0},
  {"barorder", CPX_PARAM_BARORDER, 0},
  {"barrowsden", CPX_PARAM_BARROWSDEN, 0},
  {"barthreads", CPX_PARAM_BARTHREADS, 0},
  {"barstartalg", CPX_PARAM_BARSTARTALG, 0},
  {"barcrossalg", CPX_PARAM_BARCROSSALG, 0},
  {"barooc", CPX_PARAM_BAROOC, 0},
  {"barqcpepcomp", CPX_PARAM_BARQCPEPCOMP, 1},
  {"brdir", CPX_PARAM_BRDIR, 0},
  {"bttol", CPX_PARAM_BTTOL, 1},
  {"cliques", CPX_PARAM_CLIQUES, 0},
  {"coeredind", CPX_PARAM_COEREDIND, 0},
  {"covers", CPX_PARAM_COVERS, 0},
  {"cutlo", CPX_PARAM_CUTLO, 1},
  {"cutup", CPX_PARAM_CUTUP, 1},
  {"epagap", CPX_PARAM_EPAGAP, 1},
  {"epgap", CPX_PARAM_EPGAP, 1},
  {"epint", CPX_PARAM_EPINT, 1},
  {"mipdisplay", CPX_PARAM_MIPDISPLAY, 0},
  {"mipinterval", CPX_PARAM_MIPINTERVAL, 0},
  {"mipthreads", CPX_PARAM_MIPTHREADS, 0},
  {"intsollim", CPX_PARAM_INTSOLLIM, 0},
  {"nodefileind", CPX_PARAM_NODEFILEIND, 0},
  {"nodelim", CPX_PARAM_NODELIM, 0},
  {"nodesel", CPX_PARAM_NODESEL, 0},
  {"objdif", CPX_PARAM_OBJDIF, 1},
  {"mipordind", CPX_PARAM_MIPORDIND, 0},
  {"relobjdif", CPX_PARAM_RELOBJDIF, 1},
  {"startalg", CPX_PARAM_STARTALG, 0},
  {"subalg", CPX_PARAM_SUBALG, 0},
  {"trelim", CPX_PARAM_TRELIM, 1},
  {"varsel", CPX_PARAM_VARSEL, 0},
  {"bndstrenind", CPX_PARAM_BNDSTRENIND, 0},
  {"heurfreq", CPX_PARAM_HEURFREQ, 0},
  {"mipordtype", CPX_PARAM_MIPORDTYPE, 0},
  {"cutsfactor", CPX_PARAM_CUTSFACTOR, 1},
  {"relaxpreind", CPX_PARAM_RELAXPREIND, 0},
  {"mipstart", CPX_PARAM_MIPSTART, 0},
  {"preslvnd", CPX_PARAM_PRESLVND, 0},
  {"bbinterval", CPX_PARAM_BBINTERVAL, 0},
  {"flowcovers", CPX_PARAM_FLOWCOVERS, 0},
  {"implbd", CPX_PARAM_IMPLBD, 0},
  {"probe", CPX_PARAM_PROBE, 0},
  {"gubcovers", CPX_PARAM_GUBCOVERS, 0},
  {"strongcandlim", CPX_PARAM_STRONGCANDLIM, 0},
  {"strongitlim", CPX_PARAM_STRONGITLIM, 0},
  {"strongthreadlim", CPX_PARAM_STRONGTHREADLIM, 0},
  {"fraccand", CPX_PARAM_FRACCAND, 0},
  {"fraccuts", CPX_PARAM_FRACCUTS, 0},
  {"fracpass", CPX_PARAM_FRACPASS, 0},
  {"flowpaths", CPX_PARAM_FLOWPATHS, 0},
  {"mircuts", CPX_PARAM_MIRCUTS, 0},
  {"disjcuts", CPX_PARAM_DISJCUTS, 0},
  {"aggcutlim", CPX_PARAM_AGGCUTLIM, 0},
  {"mipcbredlp", CPX_PARAM_MIPCBREDLP, 0},
  {"cutpass", CPX_PARAM_CUTPASS, 0},
  {"mipemphasis", CPX_PARAM_MIPEMPHASIS, 0},
  {"symmetry", CPX_PARAM_SYMMETRY, 0},
  {"divetype", CPX_PARAM_DIVETYPE, 0},
  {"rinsheur", CPX_PARAM_RINSHEUR, 0},
  {"submipnodelim", CPX_PARAM_SUBMIPNODELIM, 0},
  {"netitlim", CPX_PARAM_NETITLIM, 0},
  {"netepopt", CPX_PARAM_NETEPOPT, 1},
  {"neteprhs", CPX_PARAM_NETEPRHS, 1},
  {"netppriind", CPX_PARAM_NETPPRIIND, 0},
  {"netdisplay", CPX_PARAM_NETDISPLAY, 0},
  {"qpnzreadlim", CPX_PARAM_QPNZREADLIM, 0},
  {"qpnzgrowth", CPX_PARAM_QPNZGROWTH, 0},
  {"qpmakepsdind", CPX_PARAM_QPMAKEPSDIND, 0},
  
  #elif CPLEX==10
  
  #define NUMPARAMS 137
  
  static struct param_desc params[NUMPARAMS+NUMALIASES] = {
  {"advind", CPX_PARAM_ADVIND, 0},
  {"aggfill", CPX_PARAM_AGGFILL, 0},
  {"aggind", CPX_PARAM_AGGIND, 0},
  {"basinterval", CPX_PARAM_BASINTERVAL, 0},
  {"cfilemul", CPX_PARAM_CFILEMUL, 0},
  {"clocktype", CPX_PARAM_CLOCKTYPE, 0},
  {"craind", CPX_PARAM_CRAIND, 0},
  {"depind", CPX_PARAM_DEPIND, 0},
  {"dpriind", CPX_PARAM_DPRIIND, 0},
  {"pricelim", CPX_PARAM_PRICELIM, 0},
  {"epmrk", CPX_PARAM_EPMRK, 1},
  {"epopt", CPX_PARAM_EPOPT, 1},
  {"epper", CPX_PARAM_EPPER, 1},
  {"eprhs", CPX_PARAM_EPRHS, 1},
  {"fastmip", CPX_PARAM_FASTMIP, 0},
  {"simdisplay", CPX_PARAM_SIMDISPLAY, 0},
  {"itlim", CPX_PARAM_ITLIM, 0},
  {"rowreadlim", CPX_PARAM_ROWREADLIM, 0},
  {"netfind", CPX_PARAM_NETFIND, 0},
  {"colreadlim", CPX_PARAM_COLREADLIM, 0},
  {"nzreadlim", CPX_PARAM_NZREADLIM, 0},
  {"objllim", CPX_PARAM_OBJLLIM, 1},
  {"objulim", CPX_PARAM_OBJULIM, 1},
  {"perind", CPX_PARAM_PERIND, 0},
  {"perlim", CPX_PARAM_PERLIM, 0},
  {"ppriind", CPX_PARAM_PPRIIND, 0},
  {"preind", CPX_PARAM_PREIND, 0},
  {"reinv", CPX_PARAM_REINV, 0},
  {"reverseind", CPX_PARAM_REVERSEIND, 0},
  {"rfilemul", CPX_PARAM_RFILEMUL, 0},
  {"scaind", CPX_PARAM_SCAIND, 0},
  {"scrind", CPX_PARAM_SCRIND, 0},
  {"singlim", CPX_PARAM_SINGLIM, 0},
  {"singtol", CPX_PARAM_SINGTOL, 0},
  {"tilim", CPX_PARAM_TILIM, 1},
  {"xxxind", CPX_PARAM_XXXIND, 0},
  {"predual", CPX_PARAM_PREDUAL, 0},
  {"epopt_h", CPX_PARAM_EPOPT_H, 0},
  {"eprhs_h", CPX_PARAM_EPRHS_H, 0},
  {"prepass", CPX_PARAM_PREPASS, 0},
  {"datacheck", CPX_PARAM_DATACHECK, 0},
  {"reduce", CPX_PARAM_REDUCE, 0},
  {"prelinear", CPX_PARAM_PRELINEAR, 0},
  {"lpmethod", CPX_PARAM_LPMETHOD, 0},
  {"qpmethod", CPX_PARAM_QPMETHOD, 0},
  {"workdir", CPX_PARAM_WORKDIR, 2},
  {"workmem", CPX_PARAM_WORKMEM, 1},
  {"threads", CPX_PARAM_THREADS, 0},
  {"conflictdisplay", CPX_PARAM_CONFLICTDISPLAY, 0},
  {"siftdisplay", CPX_PARAM_SIFTDISPLAY, 0},
  {"siftalg", CPX_PARAM_SIFTALG, 0},
  {"siftitlim", CPX_PARAM_SIFTITLIM, 0},
  {"mpslongnum", CPX_PARAM_MPSLONGNUM, 0},
  {"memoryemphasis", CPX_PARAM_MEMORYEMPHASIS, 0},
  {"numericalemphasis", CPX_PARAM_NUMERICALEMPHASIS, 0},
  {"feasoptmode", CPX_PARAM_FEASOPTMODE, 0},
  {"bardstart", CPX_PARAM_BARDSTART, 0},
  {"barepcomp", CPX_PARAM_BAREPCOMP, 1},
  {"bargrowth", CPX_PARAM_BARGROWTH, 1},
  {"barobjrng", CPX_PARAM_BAROBJRNG, 1},
  {"barpstart", CPX_PARAM_BARPSTART, 0},
  {"baralg", CPX_PARAM_BARALG, 0},
  {"barcolnz", CPX_PARAM_BARCOLNZ, 0},
  {"bardisplay", CPX_PARAM_BARDISPLAY, 0},
  {"baritlim", CPX_PARAM_BARITLIM, 0},
  {"barmaxcor", CPX_PARAM_BARMAXCOR, 0},
  {"barorder", CPX_PARAM_BARORDER, 0},
  {"barthreads", CPX_PARAM_BARTHREADS, 0},
  {"barstartalg", CPX_PARAM_BARSTARTALG, 0},
  {"barcrossalg", CPX_PARAM_BARCROSSALG, 0},
  {"barqcpepcomp", CPX_PARAM_BARQCPEPCOMP, 1},
  {"brdir", CPX_PARAM_BRDIR, 0},
  {"bttol", CPX_PARAM_BTTOL, 1},
  {"cliques", CPX_PARAM_CLIQUES, 0},
  {"coeredind", CPX_PARAM_COEREDIND, 0},
  {"covers", CPX_PARAM_COVERS, 0},
  {"cutlo", CPX_PARAM_CUTLO, 1},
  {"cutup", CPX_PARAM_CUTUP, 1},
  {"epagap", CPX_PARAM_EPAGAP, 1},
  {"epgap", CPX_PARAM_EPGAP, 1},
  {"epint", CPX_PARAM_EPINT, 1},
  {"mipdisplay", CPX_PARAM_MIPDISPLAY, 0},
  {"mipinterval", CPX_PARAM_MIPINTERVAL, 0},
  {"mipthreads", CPX_PARAM_MIPTHREADS, 0},
  {"intsollim", CPX_PARAM_INTSOLLIM, 0},
  {"nodefileind", CPX_PARAM_NODEFILEIND, 0},
  {"nodelim", CPX_PARAM_NODELIM, 0},
  {"nodesel", CPX_PARAM_NODESEL, 0},
  {"objdif", CPX_PARAM_OBJDIF, 1},
  {"mipordind", CPX_PARAM_MIPORDIND, 0},
  {"relobjdif", CPX_PARAM_RELOBJDIF, 1},
  {"startalg", CPX_PARAM_STARTALG, 0},
  {"subalg", CPX_PARAM_SUBALG, 0},
  {"trelim", CPX_PARAM_TRELIM, 1},
  {"varsel", CPX_PARAM_VARSEL, 0},
  {"bndstrenind", CPX_PARAM_BNDSTRENIND, 0},
  {"heurfreq", CPX_PARAM_HEURFREQ, 0},
  {"mipordtype", CPX_PARAM_MIPORDTYPE, 0},
  {"cutsfactor", CPX_PARAM_CUTSFACTOR, 1},
  {"relaxpreind", CPX_PARAM_RELAXPREIND, 0},
  {"preslvnd", CPX_PARAM_PRESLVND, 0},
  {"bbinterval", CPX_PARAM_BBINTERVAL, 0},
  {"flowcovers", CPX_PARAM_FLOWCOVERS, 0},
  {"implbd", CPX_PARAM_IMPLBD, 0},
  {"probe", CPX_PARAM_PROBE, 0},
  {"gubcovers", CPX_PARAM_GUBCOVERS, 0},
  {"strongcandlim", CPX_PARAM_STRONGCANDLIM, 0},
  {"strongitlim", CPX_PARAM_STRONGITLIM, 0},
  {"strongthreadlim", CPX_PARAM_STRONGTHREADLIM, 0},
  {"fraccand", CPX_PARAM_FRACCAND, 0},
  {"fraccuts", CPX_PARAM_FRACCUTS, 0},
  {"fracpass", CPX_PARAM_FRACPASS, 0},
  {"flowpaths", CPX_PARAM_FLOWPATHS, 0},
  {"mircuts", CPX_PARAM_MIRCUTS, 0},
  {"disjcuts", CPX_PARAM_DISJCUTS, 0},
  {"aggcutlim", CPX_PARAM_AGGCUTLIM, 0},
  {"mipcbredlp", CPX_PARAM_MIPCBREDLP, 0},
  {"cutpass", CPX_PARAM_CUTPASS, 0},
  {"mipemphasis", CPX_PARAM_MIPEMPHASIS, 0},
  {"symmetry", CPX_PARAM_SYMMETRY, 0},
  {"divetype", CPX_PARAM_DIVETYPE, 0},
  {"rinsheur", CPX_PARAM_RINSHEUR, 0},
  {"submipnodelim", CPX_PARAM_SUBMIPNODELIM, 0},
  {"lbheur", CPX_PARAM_LBHEUR, 0},
  {"repeatpresolve", CPX_PARAM_REPEATPRESOLVE, 0},
  {"probetime", CPX_PARAM_PROBETIME, 1},
  {"polishtime", CPX_PARAM_POLISHTIME, 1},
  {"repairtries", CPX_PARAM_REPAIRTRIES, 0},
  {"eplin", CPX_PARAM_EPLIN, 1},
  {"eprelax", CPX_PARAM_EPRELAX, 1},
  {"netitlim", CPX_PARAM_NETITLIM, 0},
  {"netepopt", CPX_PARAM_NETEPOPT, 1},
  {"neteprhs", CPX_PARAM_NETEPRHS, 1},
  {"netppriind", CPX_PARAM_NETPPRIIND, 0},
  {"netdisplay", CPX_PARAM_NETDISPLAY, 0},
  {"qpnzreadlim", CPX_PARAM_QPNZREADLIM, 0},
  {"qpmakepsdind", CPX_PARAM_QPMAKEPSDIND, 0},
  
  #elif CPLEX==11
  
  #define NUMPARAMS 150
  
  static struct param_desc params[NUMPARAMS+NUMALIASES] = {
  {"advind", CPX_PARAM_ADVIND, 0},
  {"aggfill", CPX_PARAM_AGGFILL, 0},
  {"aggind", CPX_PARAM_AGGIND, 0},
  {"basinterval", CPX_PARAM_BASINTERVAL, 0},
  {"cfilemul", CPX_PARAM_CFILEMUL, 0},
  {"clocktype", CPX_PARAM_CLOCKTYPE, 0},
  {"craind", CPX_PARAM_CRAIND, 0},
  {"depind", CPX_PARAM_DEPIND, 0},
  {"dpriind", CPX_PARAM_DPRIIND, 0},
  {"pricelim", CPX_PARAM_PRICELIM, 0},
  {"epmrk", CPX_PARAM_EPMRK, 1},
  {"epopt", CPX_PARAM_EPOPT, 1},
  {"epper", CPX_PARAM_EPPER, 1},
  {"eprhs", CPX_PARAM_EPRHS, 1},
  {"fastmip", CPX_PARAM_FASTMIP, 0},
  {"simdisplay", CPX_PARAM_SIMDISPLAY, 0},
  {"itlim", CPX_PARAM_ITLIM, 0},
  {"rowreadlim", CPX_PARAM_ROWREADLIM, 0},
  {"netfind", CPX_PARAM_NETFIND, 0},
  {"colreadlim", CPX_PARAM_COLREADLIM, 0},
  {"nzreadlim", CPX_PARAM_NZREADLIM, 0},
  {"objllim", CPX_PARAM_OBJLLIM, 1},
  {"objulim", CPX_PARAM_OBJULIM, 1},
  {"perind", CPX_PARAM_PERIND, 0},
  {"perlim", CPX_PARAM_PERLIM, 0},
  {"ppriind", CPX_PARAM_PPRIIND, 0},
  {"preind", CPX_PARAM_PREIND, 0},
  {"reinv", CPX_PARAM_REINV, 0},
  {"reverseind", CPX_PARAM_REVERSEIND, 0},
  {"rfilemul", CPX_PARAM_RFILEMUL, 0},
  {"scaind", CPX_PARAM_SCAIND, 0},
  {"scrind", CPX_PARAM_SCRIND, 0},
  {"singlim", CPX_PARAM_SINGLIM, 0},
  {"singtol", CPX_PARAM_SINGTOL, 0},
  {"tilim", CPX_PARAM_TILIM, 1},
  {"xxxind", CPX_PARAM_XXXIND, 0},
  {"predual", CPX_PARAM_PREDUAL, 0},
  {"epopt_h", CPX_PARAM_EPOPT_H, 0},
  {"eprhs_h", CPX_PARAM_EPRHS_H, 0},
  {"prepass", CPX_PARAM_PREPASS, 0},
  {"datacheck", CPX_PARAM_DATACHECK, 0},
  {"reduce", CPX_PARAM_REDUCE, 0},
  {"prelinear", CPX_PARAM_PRELINEAR, 0},
  {"lpmethod", CPX_PARAM_LPMETHOD, 0},
  {"qpmethod", CPX_PARAM_QPMETHOD, 0},
  {"workdir", CPX_PARAM_WORKDIR, 2},
  {"workmem", CPX_PARAM_WORKMEM, 1},
  {"threads", CPX_PARAM_THREADS, 0},
  {"conflictdisplay", CPX_PARAM_CONFLICTDISPLAY, 0},
  {"siftdisplay", CPX_PARAM_SIFTDISPLAY, 0},
  {"siftalg", CPX_PARAM_SIFTALG, 0},
  {"siftitlim", CPX_PARAM_SIFTITLIM, 0},
  {"mpslongnum", CPX_PARAM_MPSLONGNUM, 0},
  {"memoryemphasis", CPX_PARAM_MEMORYEMPHASIS, 0},
  {"numericalemphasis", CPX_PARAM_NUMERICALEMPHASIS, 0},
  {"feasoptmode", CPX_PARAM_FEASOPTMODE, 0},
  {"parallelmode", CPX_PARAM_PARALLELMODE, 0},
  {"tuningmeasure", CPX_PARAM_TUNINGMEASURE, 0},
  {"tuningrepeat", CPX_PARAM_TUNINGREPEAT, 0},
  {"tuningtilim", CPX_PARAM_TUNINGTILIM, 0},
  {"tuningdisplay", CPX_PARAM_TUNINGDISPLAY, 0},
  {"bardstart", CPX_PARAM_BARDSTART, 0},
  {"barepcomp", CPX_PARAM_BAREPCOMP, 1},
  {"bargrowth", CPX_PARAM_BARGROWTH, 1},
  {"barobjrng", CPX_PARAM_BAROBJRNG, 1},
  {"barpstart", CPX_PARAM_BARPSTART, 0},
  {"baralg", CPX_PARAM_BARALG, 0},
  {"barcolnz", CPX_PARAM_BARCOLNZ, 0},
  {"bardisplay", CPX_PARAM_BARDISPLAY, 0},
  {"baritlim", CPX_PARAM_BARITLIM, 0},
  {"barmaxcor", CPX_PARAM_BARMAXCOR, 0},
  {"barorder", CPX_PARAM_BARORDER, 0},
  {"barstartalg", CPX_PARAM_BARSTARTALG, 0},
  {"barcrossalg", CPX_PARAM_BARCROSSALG, 0},
  {"barqcpepcomp", CPX_PARAM_BARQCPEPCOMP, 1},
  {"brdir", CPX_PARAM_BRDIR, 0},
  {"bttol", CPX_PARAM_BTTOL, 1},
  {"cliques", CPX_PARAM_CLIQUES, 0},
  {"coeredind", CPX_PARAM_COEREDIND, 0},
  {"covers", CPX_PARAM_COVERS, 0},
  {"cutlo", CPX_PARAM_CUTLO, 1},
  {"cutup", CPX_PARAM_CUTUP, 1},
  {"epagap", CPX_PARAM_EPAGAP, 1},
  {"epgap", CPX_PARAM_EPGAP, 1},
  {"epint", CPX_PARAM_EPINT, 1},
  {"mipdisplay", CPX_PARAM_MIPDISPLAY, 0},
  {"mipinterval", CPX_PARAM_MIPINTERVAL, 0},
  {"intsollim", CPX_PARAM_INTSOLLIM, 0},
  {"nodefileind", CPX_PARAM_NODEFILEIND, 0},
  {"nodelim", CPX_PARAM_NODELIM, 0},
  {"nodesel", CPX_PARAM_NODESEL, 0},
  {"objdif", CPX_PARAM_OBJDIF, 1},
  {"mipordind", CPX_PARAM_MIPORDIND, 0},
  {"relobjdif", CPX_PARAM_RELOBJDIF, 1},
  {"startalg", CPX_PARAM_STARTALG, 0},
  {"subalg", CPX_PARAM_SUBALG, 0},
  {"trelim", CPX_PARAM_TRELIM, 1},
  {"varsel", CPX_PARAM_VARSEL, 0},
  {"bndstrenind", CPX_PARAM_BNDSTRENIND, 0},
  {"heurfreq", CPX_PARAM_HEURFREQ, 0},
  {"mipordtype", CPX_PARAM_MIPORDTYPE, 0},
  {"cutsfactor", CPX_PARAM_CUTSFACTOR, 1},
  {"relaxpreind", CPX_PARAM_RELAXPREIND, 0},
  {"preslvnd", CPX_PARAM_PRESLVND, 0},
  {"bbinterval", CPX_PARAM_BBINTERVAL, 0},
  {"flowcovers", CPX_PARAM_FLOWCOVERS, 0},
  {"implbd", CPX_PARAM_IMPLBD, 0},
  {"probe", CPX_PARAM_PROBE, 0},
  {"gubcovers", CPX_PARAM_GUBCOVERS, 0},
  {"strongcandlim", CPX_PARAM_STRONGCANDLIM, 0},
  {"strongitlim", CPX_PARAM_STRONGITLIM, 0},
  {"fraccand", CPX_PARAM_FRACCAND, 0},
  {"fraccuts", CPX_PARAM_FRACCUTS, 0},
  {"fracpass", CPX_PARAM_FRACPASS, 0},
  {"flowpaths", CPX_PARAM_FLOWPATHS, 0},
  {"mircuts", CPX_PARAM_MIRCUTS, 0},
  {"disjcuts", CPX_PARAM_DISJCUTS, 0},
  {"aggcutlim", CPX_PARAM_AGGCUTLIM, 0},
  {"mipcbredlp", CPX_PARAM_MIPCBREDLP, 0},
  {"cutpass", CPX_PARAM_CUTPASS, 0},
  {"mipemphasis", CPX_PARAM_MIPEMPHASIS, 0},
  {"symmetry", CPX_PARAM_SYMMETRY, 0},
  {"divetype", CPX_PARAM_DIVETYPE, 0},
  {"rinsheur", CPX_PARAM_RINSHEUR, 0},
  {"submipnodelim", CPX_PARAM_SUBMIPNODELIM, 0},
  {"lbheur", CPX_PARAM_LBHEUR, 0},
  {"repeatpresolve", CPX_PARAM_REPEATPRESOLVE, 0},
  {"probetime", CPX_PARAM_PROBETIME, 1},
  {"polishtime", CPX_PARAM_POLISHTIME, 1},
  {"repairtries", CPX_PARAM_REPAIRTRIES, 0},
  {"eplin", CPX_PARAM_EPLIN, 1},
  {"eprelax", CPX_PARAM_EPRELAX, 1},
  {"fpheur", CPX_PARAM_FPHEUR, 0},
  {"eachcutlim", CPX_PARAM_EACHCUTLIM, 0},
  {"solnpoolcapacity", CPX_PARAM_SOLNPOOLCAPACITY, 0},
  {"solnpoolreplace", CPX_PARAM_SOLNPOOLREPLACE, 0},
  {"solnpoolgap", CPX_PARAM_SOLNPOOLGAP, 1},
  {"solnpoolagap", CPX_PARAM_SOLNPOOLAGAP, 1},
  {"solnpoolintensity", CPX_PARAM_SOLNPOOLINTENSITY, 0},
  {"populatelim", CPX_PARAM_POPULATELIM, 0},
  {"mipsearch", CPX_PARAM_MIPSEARCH, 0},
  {"miqcpstrat", CPX_PARAM_MIQCPSTRAT, 0},
  {"zerohalfcuts", CPX_PARAM_ZEROHALFCUTS, 0},
  {"netitlim", CPX_PARAM_NETITLIM, 0},
  {"netepopt", CPX_PARAM_NETEPOPT, 1},
  {"neteprhs", CPX_PARAM_NETEPRHS, 1},
  {"netppriind", CPX_PARAM_NETPPRIIND, 0},
  {"netdisplay", CPX_PARAM_NETDISPLAY, 0},
  {"qpnzreadlim", CPX_PARAM_QPNZREADLIM, 0},
  {"qpmakepsdind", CPX_PARAM_QPMAKEPSDIND, 0},
  
  #elif (XPRESS==13)
  
  #define NUMPARAMS 105
  static struct param_desc params[NUMPARAMS+NUMALIASES] = {
  {"mpsrhsname", XPRS_MPSRHSNAME, 2},
  {"mpsobjname", XPRS_MPSOBJNAME, 2},
  {"mpsrangename", XPRS_MPSRANGENAME, 2},
  {"mpsboundname", XPRS_MPSBOUNDNAME, 2},
  {"outputmask", XPRS_OUTPUTMASK, 2},
  {"omnidataname", XPRS_OMNIDATANAME, 2},
  {"matrixtol", XPRS_MATRIXTOL, 1},
  {"pivottol", XPRS_PIVOTTOL, 1},
  {"feastol", XPRS_FEASTOL, 1},
  {"outputtol", XPRS_OUTPUTTOL, 1},
  {"sosreftol", XPRS_SOSREFTOL, 1},
  {"optimalitytol", XPRS_OPTIMALITYTOL, 1},
  {"etatol", XPRS_ETATOL, 1},
  {"relpivottol", XPRS_RELPIVOTTOL, 1},
  {"miptol", XPRS_MIPTOL, 1},
  {"degradefactor", XPRS_DEGRADEFACTOR, 1},
  {"miptarget", XPRS_MIPTARGET, 1},
  {"mipaddcutoff", XPRS_MIPADDCUTOFF, 1},
  {"mipabscutoff", XPRS_MIPABSCUTOFF, 1},
  {"miprelcutoff", XPRS_MIPRELCUTOFF, 1},
  {"pseudocost", XPRS_PSEUDOCOST, 1},
  {"penalty", XPRS_PENALTY, 1},
  {"bigm", XPRS_BIGM, 1},
  {"mipabsstop", XPRS_MIPABSSTOP, 1},
  {"miprelstop", XPRS_MIPRELSTOP, 1},
  {"choleskytol", XPRS_CHOLESKYTOL, 1},
  {"bargapstop", XPRS_BARGAPSTOP, 1},
  {"bardualstop", XPRS_BARDUALSTOP, 1},
  {"barprimalstop", XPRS_BARPRIMALSTOP, 1},
  {"barstepstop", XPRS_BARSTEPSTOP, 1},
  {"elimtol", XPRS_ELIMTOL, 1},
  {"perturb", XPRS_PERTURB, 1},
  {"markowitztol", XPRS_MARKOWITZTOL, 1},
  {"recsteplength", XPRS_RECSTEPLENGTH, 1},
  {"recexpand", XPRS_RECEXPAND, 1},
  {"recshrink", XPRS_RECSHRINK, 1},
  {"recstop", XPRS_RECSTOP, 1},
  {"ppfactor", XPRS_PPFACTOR, 1},
  {"extrarows", XPRS_EXTRAROWS, 0},
  {"extracols", XPRS_EXTRACOLS, 0},
  {"extraelems", XPRS_EXTRAELEMS, 0},
  {"lpiterlimit", XPRS_LPITERLIMIT, 0},
  {"lplog", XPRS_LPLOG, 0},
  {"scaling", XPRS_SCALING, 0},
  {"presolve", XPRS_PRESOLVE, 0},
  {"crash", XPRS_CRASH, 0},
  {"pricingalg", XPRS_PRICINGALG, 0},
  {"invertfreq", XPRS_INVERTFREQ, 0},
  {"invertmin", XPRS_INVERTMIN, 0},
  {"maxnode", XPRS_MAXNODE, 0},
  {"maxtime", XPRS_MAXTIME, 0},
  {"maxmipsol", XPRS_MAXMIPSOL, 0},
  {"keepmipsol", XPRS_KEEPMIPSOL, 0},
  {"defaultalg", XPRS_DEFAULTALG, 0},
  {"varselection", XPRS_VARSELECTION, 0},
  {"nodeselection", XPRS_NODESELECTION, 0},
  {"backtrack", XPRS_BACKTRACK, 0},
  {"miplog", XPRS_MIPLOG, 0},
  {"mpserrignore", XPRS_MPSERRIGNORE, 0},
  {"keepnrows", XPRS_KEEPNROWS, 0},
  {"mpsecho", XPRS_MPSECHO, 0},
  {"maxpagelines", XPRS_MAXPAGELINES, 0},
  {"outputlog", XPRS_OUTPUTLOG, 0},
  {"extrapresolve", XPRS_EXTRAPRESOLVE, 0},
  {"cpmaxcuts", XPRS_CPMAXCUTS, 0},
  {"cpmaxelems", XPRS_CPMAXELEMS, 0},
  {"cpkeepallcuts", XPRS_CPKEEPALLCUTS, 0},
  {"cachesize", XPRS_CACHESIZE, 0},
  {"crossover", XPRS_CROSSOVER, 0},
  {"bariterlimit", XPRS_BARITERLIMIT, 0},
  {"choleskyalg", XPRS_CHOLESKYALG, 0},
  {"baroutput", XPRS_BAROUTPUT, 0},
  {"cstyle", XPRS_CSTYLE, 0},
  {"extramipents", XPRS_EXTRAMIPENTS, 0},
  {"refactor", XPRS_REFACTOR, 0},
  {"barthreads", XPRS_BARTHREADS, 0},
  {"keepbasis", XPRS_KEEPBASIS, 0},
  {"omniformat", XPRS_OMNIFORMAT, 0},
  {"version", XPRS_VERSION, 0},
  {"recmaxpasses", XPRS_RECMAXPASSES, 0},
  {"bigmmethod", XPRS_BIGMMETHOD, 0},
  {"rel10style", XPRS_REL10STYLE, 0},
  {"mpsnamelength", XPRS_MPSNAMELENGTH, 0},
  {"solutionfile", XPRS_SOLUTIONFILE, 0},
  {"presolveops", XPRS_PRESOLVEOPS, 0},
  {"mippresolve", XPRS_MIPPRESOLVE, 0},
  {"maxslave", XPRS_MAXSLAVE, 0},
  {"barorder", XPRS_BARORDER, 0},
  {"breadthfirst", XPRS_BREADTHFIRST, 0},
  {"autoperturb", XPRS_AUTOPERTURB, 0},
  {"densecollimit", XPRS_DENSECOLLIMIT, 0},
  {"cutfreq", XPRS_CUTFREQ, 0},
  {"trace", XPRS_TRACE, 0},
  {"maxiis", XPRS_MAXIIS, 0},
  {"cputime", XPRS_CPUTIME, 0},
  {"covercuts", XPRS_COVERCUTS, 0},
  {"gomcuts", XPRS_GOMCUTS, 0},
  {"mpsformat", XPRS_MPSFORMAT, 0},
  {"cutstrategy", XPRS_CUTSTRATEGY, 0},
  {"cutdepth", XPRS_CUTDEPTH, 0},
  {"treecovercuts", XPRS_TREECOVERCUTS, 0},
  {"treegomcuts", XPRS_TREEGOMCUTS, 0},
  {"barmemory", XPRS_BARMEMORY, 0},
  /*{"dualgradient", XPRS_DUALGRADIENT, 0}, not in 13.10 */
  {"sbiterlimit", XPRS_SBITERLIMIT, 0},
  {"sbbest", XPRS_SBBEST, 0},
  
  #elif (XPRESS==14)
  
  #define NUMPARAMS 109
  static struct param_desc params[NUMPARAMS+NUMALIASES] = {
  {"mpsrhsname", XPRS_MPSRHSNAME, 2},
  {"mpsobjname", XPRS_MPSOBJNAME, 2},
  {"mpsrangename", XPRS_MPSRANGENAME, 2},
  {"mpsboundname", XPRS_MPSBOUNDNAME, 2},
  {"outputmask", XPRS_OUTPUTMASK, 2},
  {"omnidataname", XPRS_OMNIDATANAME, 2},
  {"matrixtol", XPRS_MATRIXTOL, 1},
  {"pivottol", XPRS_PIVOTTOL, 1},
  {"feastol", XPRS_FEASTOL, 1},
  {"outputtol", XPRS_OUTPUTTOL, 1},
  {"sosreftol", XPRS_SOSREFTOL, 1},
  {"optimalitytol", XPRS_OPTIMALITYTOL, 1},
  {"etatol", XPRS_ETATOL, 1},
  {"relpivottol", XPRS_RELPIVOTTOL, 1},
  {"miptol", XPRS_MIPTOL, 1},
  {"degradefactor", XPRS_DEGRADEFACTOR, 1},
  {"miptarget", XPRS_MIPTARGET, 1},
  {"mipaddcutoff", XPRS_MIPADDCUTOFF, 1},
  {"mipabscutoff", XPRS_MIPABSCUTOFF, 1},
  {"miprelcutoff", XPRS_MIPRELCUTOFF, 1},
  {"pseudocost", XPRS_PSEUDOCOST, 1},
  {"penalty", XPRS_PENALTY, 1},
  {"bigm", XPRS_BIGM, 1},
  {"mipabsstop", XPRS_MIPABSSTOP, 1},
  {"miprelstop", XPRS_MIPRELSTOP, 1},
  {"choleskytol", XPRS_CHOLESKYTOL, 1},
  {"bargapstop", XPRS_BARGAPSTOP, 1},
  {"bardualstop", XPRS_BARDUALSTOP, 1},
  {"barprimalstop", XPRS_BARPRIMALSTOP, 1},
  {"barstepstop", XPRS_BARSTEPSTOP, 1},
  {"elimtol", XPRS_ELIMTOL, 1},
  {"perturb", XPRS_PERTURB, 1},
  {"markowitztol", XPRS_MARKOWITZTOL, 1},
  {"ppfactor", XPRS_PPFACTOR, 1},
  {"extrarows", XPRS_EXTRAROWS, 0},
  {"extracols", XPRS_EXTRACOLS, 0},
  {"extraelems", XPRS_EXTRAELEMS, 0},
  {"lpiterlimit", XPRS_LPITERLIMIT, 0},
  {"lplog", XPRS_LPLOG, 0},
  {"scaling", XPRS_SCALING, 0},
  {"presolve", XPRS_PRESOLVE, 0},
  {"crash", XPRS_CRASH, 0},
  {"pricingalg", XPRS_PRICINGALG, 0},
  {"invertfreq", XPRS_INVERTFREQ, 0},
  {"invertmin", XPRS_INVERTMIN, 0},
  {"maxnode", XPRS_MAXNODE, 0},
  {"maxtime", XPRS_MAXTIME, 0},
  {"maxmipsol", XPRS_MAXMIPSOL, 0},
  {"keepmipsol", XPRS_KEEPMIPSOL, 0},
  {"defaultalg", XPRS_DEFAULTALG, 0},
  {"varselection", XPRS_VARSELECTION, 0},
  {"nodeselection", XPRS_NODESELECTION, 0},
  {"backtrack", XPRS_BACKTRACK, 0},
  {"miplog", XPRS_MIPLOG, 0},
  {"mpserrignore", XPRS_MPSERRIGNORE, 0},
  {"keepnrows", XPRS_KEEPNROWS, 0},
  {"mpsecho", XPRS_MPSECHO, 0},
  {"maxpagelines", XPRS_MAXPAGELINES, 0},
  {"outputlog", XPRS_OUTPUTLOG, 0},
  {"extrapresolve", XPRS_EXTRAPRESOLVE, 0},
  {"cpmaxcuts", XPRS_CPMAXCUTS, 0},
  {"cpmaxelems", XPRS_CPMAXELEMS, 0},
  {"cpkeepallcuts", XPRS_CPKEEPALLCUTS, 0},
  {"cachesize", XPRS_CACHESIZE, 0},
  {"crossover", XPRS_CROSSOVER, 0},
  {"bariterlimit", XPRS_BARITERLIMIT, 0},
  {"choleskyalg", XPRS_CHOLESKYALG, 0},
  {"baroutput", XPRS_BAROUTPUT, 0},
  {"cstyle", XPRS_CSTYLE, 0},
  {"extramipents", XPRS_EXTRAMIPENTS, 0},
  {"refactor", XPRS_REFACTOR, 0},
  {"barthreads", XPRS_BARTHREADS, 0},
  {"keepbasis", XPRS_KEEPBASIS, 0},
  {"omniformat", XPRS_OMNIFORMAT, 0},
  {"version", XPRS_VERSION, 0},
  {"bigmmethod", XPRS_BIGMMETHOD, 0},
  {"rel10style", XPRS_REL10STYLE, 0},
  {"mpsnamelength", XPRS_MPSNAMELENGTH, 0},
  {"solutionfile", XPRS_SOLUTIONFILE, 0},
  {"presolveops", XPRS_PRESOLVEOPS, 0},
  {"mippresolve", XPRS_MIPPRESOLVE, 0},
  {"maxslave", XPRS_MAXSLAVE, 0},
  {"barorder", XPRS_BARORDER, 0},
  {"breadthfirst", XPRS_BREADTHFIRST, 0},
  {"autoperturb", XPRS_AUTOPERTURB, 0},
  {"densecollimit", XPRS_DENSECOLLIMIT, 0},
  {"cutfreq", XPRS_CUTFREQ, 0},
  {"trace", XPRS_TRACE, 0},
  {"maxiis", XPRS_MAXIIS, 0},
  {"cputime", XPRS_CPUTIME, 0},
  {"covercuts", XPRS_COVERCUTS, 0},
  {"gomcuts", XPRS_GOMCUTS, 0},
  {"mpsformat", XPRS_MPSFORMAT, 0},
  {"cutstrategy", XPRS_CUTSTRATEGY, 0},
  {"cutdepth", XPRS_CUTDEPTH, 0},
  {"treecovercuts", XPRS_TREECOVERCUTS, 0},
  {"treegomcuts", XPRS_TREEGOMCUTS, 0},
  {"barmemory", XPRS_BARMEMORY, 0},
  {"dualgradient", XPRS_DUALGRADIENT, 0},
  {"sbiterlimit", XPRS_SBITERLIMIT, 0},
  {"sbbest", XPRS_SBBEST, 0},
  {"maxcuttime", XPRS_MAXCUTTIME, 0},
  {"activeset", XPRS_ACTIVESET, 0},
  {"barindeflimit", XPRS_BARINDEFLIMIT, 0},
  {"heurstrategy", XPRS_HEURSTRATEGY, 0},
  {"heurfreq", XPRS_HEURFREQ, 0},
  {"heurdepth", XPRS_HEURDEPTH, 0},
  {"heurmaxsol", XPRS_HEURMAXSOL, 0},
  {"heurnodes", XPRS_HEURNODES, 0},
  
  #elif XPRESS==15
  
  #define NUMPARAMS 114
  static struct param_desc params[NUMPARAMS+NUMALIASES] = {
  {"mpsrhsname", XPRS_MPSRHSNAME, 2},
  {"mpsobjname", XPRS_MPSOBJNAME, 2},
  {"mpsrangename", XPRS_MPSRANGENAME, 2},
  {"mpsboundname", XPRS_MPSBOUNDNAME, 2},
  {"outputmask", XPRS_OUTPUTMASK, 2},
  {"omnidataname", XPRS_OMNIDATANAME, 2},
  {"matrixtol", XPRS_MATRIXTOL, 1},
  {"pivottol", XPRS_PIVOTTOL, 1},
  {"feastol", XPRS_FEASTOL, 1},
  {"outputtol", XPRS_OUTPUTTOL, 1},
  {"sosreftol", XPRS_SOSREFTOL, 1},
  {"optimalitytol", XPRS_OPTIMALITYTOL, 1},
  {"etatol", XPRS_ETATOL, 1},
  {"relpivottol", XPRS_RELPIVOTTOL, 1},
  {"miptol", XPRS_MIPTOL, 1},
  {"degradefactor", XPRS_DEGRADEFACTOR, 1},
  {"miptarget", XPRS_MIPTARGET, 1},
  {"mipaddcutoff", XPRS_MIPADDCUTOFF, 1},
  {"mipabscutoff", XPRS_MIPABSCUTOFF, 1},
  {"miprelcutoff", XPRS_MIPRELCUTOFF, 1},
  {"pseudocost", XPRS_PSEUDOCOST, 1},
  {"penalty", XPRS_PENALTY, 1},
  {"bigm", XPRS_BIGM, 1},
  {"mipabsstop", XPRS_MIPABSSTOP, 1},
  {"miprelstop", XPRS_MIPRELSTOP, 1},
  {"choleskytol", XPRS_CHOLESKYTOL, 1},
  {"bargapstop", XPRS_BARGAPSTOP, 1},
  {"bardualstop", XPRS_BARDUALSTOP, 1},
  {"barprimalstop", XPRS_BARPRIMALSTOP, 1},
  {"barstepstop", XPRS_BARSTEPSTOP, 1},
  {"elimtol", XPRS_ELIMTOL, 1},
  {"perturb", XPRS_PERTURB, 1},
  {"markowitztol", XPRS_MARKOWITZTOL, 1},
  {"ppfactor", XPRS_PPFACTOR, 1},
  {"extrarows", XPRS_EXTRAROWS, 0},
  {"extracols", XPRS_EXTRACOLS, 0},
  {"extraelems", XPRS_EXTRAELEMS, 0},
  {"lpiterlimit", XPRS_LPITERLIMIT, 0},
  {"lplog", XPRS_LPLOG, 0},
  {"scaling", XPRS_SCALING, 0},
  {"presolve", XPRS_PRESOLVE, 0},
  {"crash", XPRS_CRASH, 0},
  {"pricingalg", XPRS_PRICINGALG, 0},
  {"invertfreq", XPRS_INVERTFREQ, 0},
  {"invertmin", XPRS_INVERTMIN, 0},
  {"maxnode", XPRS_MAXNODE, 0},
  {"maxtime", XPRS_MAXTIME, 0},
  {"maxmipsol", XPRS_MAXMIPSOL, 0},
  {"keepmipsol", XPRS_KEEPMIPSOL, 0},
  {"defaultalg", XPRS_DEFAULTALG, 0},
  {"varselection", XPRS_VARSELECTION, 0},
  {"nodeselection", XPRS_NODESELECTION, 0},
  {"backtrack", XPRS_BACKTRACK, 0},
  {"miplog", XPRS_MIPLOG, 0},
  {"mpserrignore", XPRS_MPSERRIGNORE, 0},
  {"keepnrows", XPRS_KEEPNROWS, 0},
  {"mpsecho", XPRS_MPSECHO, 0},
  {"maxpagelines", XPRS_MAXPAGELINES, 0},
  {"outputlog", XPRS_OUTPUTLOG, 0},
  {"extrapresolve", XPRS_EXTRAPRESOLVE, 0},
  {"cpmaxcuts", XPRS_CPMAXCUTS, 0},
  {"cpmaxelems", XPRS_CPMAXELEMS, 0},
  {"cpkeepallcuts", XPRS_CPKEEPALLCUTS, 0},
  {"cachesize", XPRS_CACHESIZE, 0},
  {"crossover", XPRS_CROSSOVER, 0},
  {"bariterlimit", XPRS_BARITERLIMIT, 0},
  {"choleskyalg", XPRS_CHOLESKYALG, 0},
  {"baroutput", XPRS_BAROUTPUT, 0},
  {"cstyle", XPRS_CSTYLE, 0},
  {"extramipents", XPRS_EXTRAMIPENTS, 0},
  {"refactor", XPRS_REFACTOR, 0},
  {"barthreads", XPRS_BARTHREADS, 0},
  {"keepbasis", XPRS_KEEPBASIS, 0},
  {"omniformat", XPRS_OMNIFORMAT, 0},
  {"version", XPRS_VERSION, 0},
  {"bigmmethod", XPRS_BIGMMETHOD, 0},
  {"rel10style", XPRS_REL10STYLE, 0},
  {"mpsnamelength", XPRS_MPSNAMELENGTH, 0},
  {"solutionfile", XPRS_SOLUTIONFILE, 0},
  {"presolveops", XPRS_PRESOLVEOPS, 0},
  {"mippresolve", XPRS_MIPPRESOLVE, 0},
  {"maxslave", XPRS_MAXSLAVE, 0},
  {"barorder", XPRS_BARORDER, 0},
  {"breadthfirst", XPRS_BREADTHFIRST, 0},
  {"autoperturb", XPRS_AUTOPERTURB, 0},
  {"densecollimit", XPRS_DENSECOLLIMIT, 0},
  {"cutfreq", XPRS_CUTFREQ, 0},
  {"trace", XPRS_TRACE, 0},
  {"maxiis", XPRS_MAXIIS, 0},
  {"cputime", XPRS_CPUTIME, 0},
  {"covercuts", XPRS_COVERCUTS, 0},
  {"gomcuts", XPRS_GOMCUTS, 0},
  {"mpsformat", XPRS_MPSFORMAT, 0},
  {"cutstrategy", XPRS_CUTSTRATEGY, 0},
  {"cutdepth", XPRS_CUTDEPTH, 0},
  {"treecovercuts", XPRS_TREECOVERCUTS, 0},
  {"treegomcuts", XPRS_TREEGOMCUTS, 0},
  {"barmemory", XPRS_BARMEMORY, 0},
  {"dualgradient", XPRS_DUALGRADIENT, 0},
  {"sbiterlimit", XPRS_SBITERLIMIT, 0},
  {"sbbest", XPRS_SBBEST, 0},
  {"maxcuttime", XPRS_MAXCUTTIME, 0},
  {"activeset", XPRS_ACTIVESET, 0},
  {"barindeflimit", XPRS_BARINDEFLIMIT, 0},
  {"heurstrategy", XPRS_HEURSTRATEGY, 0},
  {"heurfreq", XPRS_HEURFREQ, 0},
  {"heurdepth", XPRS_HEURDEPTH, 0},
  {"heurmaxsol", XPRS_HEURMAXSOL, 0},
  {"heurnodes", XPRS_HEURNODES, 0},
  {"lnpbest", XPRS_LNPBEST, 0},
  {"lnpiterlimit", XPRS_LNPITERLIMIT, 0},
  {"branchchoice", XPRS_BRANCHCHOICE, 0},
  {"sbselect", XPRS_SBSELECT, 0},
  {"sbthreads", XPRS_SBTHREADS, 0},
  
  #elif XPRESS==16
  
  #define NUMPARAMS 115
  static struct param_desc params[NUMPARAMS+NUMALIASES] = {
  {"mpsrhsname", XPRS_MPSRHSNAME, 2},
  {"mpsobjname", XPRS_MPSOBJNAME, 2},
  {"mpsrangename", XPRS_MPSRANGENAME, 2},
  {"mpsboundname", XPRS_MPSBOUNDNAME, 2},
  {"outputmask", XPRS_OUTPUTMASK, 2},
  {"omnidataname", XPRS_OMNIDATANAME, 2},
  {"matrixtol", XPRS_MATRIXTOL, 1},
  {"pivottol", XPRS_PIVOTTOL, 1},
  {"feastol", XPRS_FEASTOL, 1},
  {"outputtol", XPRS_OUTPUTTOL, 1},
  {"sosreftol", XPRS_SOSREFTOL, 1},
  {"optimalitytol", XPRS_OPTIMALITYTOL, 1},
  {"etatol", XPRS_ETATOL, 1},
  {"relpivottol", XPRS_RELPIVOTTOL, 1},
  {"miptol", XPRS_MIPTOL, 1},
  {"degradefactor", XPRS_DEGRADEFACTOR, 1},
  {"miptarget", XPRS_MIPTARGET, 1},
  {"mipaddcutoff", XPRS_MIPADDCUTOFF, 1},
  {"mipabscutoff", XPRS_MIPABSCUTOFF, 1},
  {"miprelcutoff", XPRS_MIPRELCUTOFF, 1},
  {"pseudocost", XPRS_PSEUDOCOST, 1},
  {"penalty", XPRS_PENALTY, 1},
  {"bigm", XPRS_BIGM, 1},
  {"mipabsstop", XPRS_MIPABSSTOP, 1},
  {"miprelstop", XPRS_MIPRELSTOP, 1},
  {"choleskytol", XPRS_CHOLESKYTOL, 1},
  {"bargapstop", XPRS_BARGAPSTOP, 1},
  {"bardualstop", XPRS_BARDUALSTOP, 1},
  {"barprimalstop", XPRS_BARPRIMALSTOP, 1},
  {"barstepstop", XPRS_BARSTEPSTOP, 1},
  {"elimtol", XPRS_ELIMTOL, 1},
  {"perturb", XPRS_PERTURB, 1},
  {"markowitztol", XPRS_MARKOWITZTOL, 1},
  {"ppfactor", XPRS_PPFACTOR, 1},
  {"extrarows", XPRS_EXTRAROWS, 0},
  {"extracols", XPRS_EXTRACOLS, 0},
  {"extraelems", XPRS_EXTRAELEMS, 0},
  {"lpiterlimit", XPRS_LPITERLIMIT, 0},
  {"lplog", XPRS_LPLOG, 0},
  {"scaling", XPRS_SCALING, 0},
  {"presolve", XPRS_PRESOLVE, 0},
  {"crash", XPRS_CRASH, 0},
  {"pricingalg", XPRS_PRICINGALG, 0},
  {"invertfreq", XPRS_INVERTFREQ, 0},
  {"invertmin", XPRS_INVERTMIN, 0},
  {"maxnode", XPRS_MAXNODE, 0},
  {"maxtime", XPRS_MAXTIME, 0},
  {"maxmipsol", XPRS_MAXMIPSOL, 0},
  {"keepmipsol", XPRS_KEEPMIPSOL, 0},
  {"defaultalg", XPRS_DEFAULTALG, 0},
  {"varselection", XPRS_VARSELECTION, 0},
  {"nodeselection", XPRS_NODESELECTION, 0},
  {"backtrack", XPRS_BACKTRACK, 0},
  {"miplog", XPRS_MIPLOG, 0},
  {"mpserrignore", XPRS_MPSERRIGNORE, 0},
  {"keepnrows", XPRS_KEEPNROWS, 0},
  {"mpsecho", XPRS_MPSECHO, 0},
  {"maxpagelines", XPRS_MAXPAGELINES, 0},
  {"outputlog", XPRS_OUTPUTLOG, 0},
  {"extrapresolve", XPRS_EXTRAPRESOLVE, 0},
  {"cpmaxcuts", XPRS_CPMAXCUTS, 0},
  {"cpmaxelems", XPRS_CPMAXELEMS, 0},
  {"cpkeepallcuts", XPRS_CPKEEPALLCUTS, 0},
  {"cachesize", XPRS_CACHESIZE, 0},
  {"crossover", XPRS_CROSSOVER, 0},
  {"bariterlimit", XPRS_BARITERLIMIT, 0},
  {"choleskyalg", XPRS_CHOLESKYALG, 0},
  {"baroutput", XPRS_BAROUTPUT, 0},
  {"cstyle", XPRS_CSTYLE, 0},
  {"extramipents", XPRS_EXTRAMIPENTS, 0},
  {"refactor", XPRS_REFACTOR, 0},
  {"barthreads", XPRS_BARTHREADS, 0},
  {"keepbasis", XPRS_KEEPBASIS, 0},
  {"omniformat", XPRS_OMNIFORMAT, 0},
  {"version", XPRS_VERSION, 0},
  {"bigmmethod", XPRS_BIGMMETHOD, 0},
  {"rel10style", XPRS_REL10STYLE, 0},
  {"mpsnamelength", XPRS_MPSNAMELENGTH, 0},
  {"solutionfile", XPRS_SOLUTIONFILE, 0},
  {"presolveops", XPRS_PRESOLVEOPS, 0},
  {"mippresolve", XPRS_MIPPRESOLVE, 0},
  {"mipthreads", XPRS_MIPTHREADS, 0},
  {"barorder", XPRS_BARORDER, 0},
  {"breadthfirst", XPRS_BREADTHFIRST, 0},
  {"autoperturb", XPRS_AUTOPERTURB, 0},
  {"densecollimit", XPRS_DENSECOLLIMIT, 0},
  {"cutfreq", XPRS_CUTFREQ, 0},
  {"trace", XPRS_TRACE, 0},
  {"maxiis", XPRS_MAXIIS, 0},
  {"cputime", XPRS_CPUTIME, 0},
  {"covercuts", XPRS_COVERCUTS, 0},
  {"gomcuts", XPRS_GOMCUTS, 0},
  {"mpsformat", XPRS_MPSFORMAT, 0},
  {"cutstrategy", XPRS_CUTSTRATEGY, 0},
  {"cutdepth", XPRS_CUTDEPTH, 0},
  {"treecovercuts", XPRS_TREECOVERCUTS, 0},
  {"treegomcuts", XPRS_TREEGOMCUTS, 0},
  {"dualgradient", XPRS_DUALGRADIENT, 0},
  {"sbiterlimit", XPRS_SBITERLIMIT, 0},
  {"sbbest", XPRS_SBBEST, 0},
  {"maxcuttime", XPRS_MAXCUTTIME, 0},
  {"activeset", XPRS_ACTIVESET, 0},
  {"barindeflimit", XPRS_BARINDEFLIMIT, 0},
  {"heurstrategy", XPRS_HEURSTRATEGY, 0},
  {"heurfreq", XPRS_HEURFREQ, 0},
  {"heurdepth", XPRS_HEURDEPTH, 0},
  {"heurmaxsol", XPRS_HEURMAXSOL, 0},
  {"heurnodes", XPRS_HEURNODES, 0},
  {"lnpbest", XPRS_LNPBEST, 0},
  {"lnpiterlimit", XPRS_LNPITERLIMIT, 0},
  {"branchchoice", XPRS_BRANCHCHOICE, 0},
  {"sbselect", XPRS_SBSELECT, 0},
  {"sbthreads", XPRS_SBTHREADS, 0},
  {"heurdivestrategy", XPRS_HEURDIVESTRATEGY, 0},
  {"heurselect", XPRS_HEURSELECT, 0},
  
  #elif defined(COIN)
  
  #define NUMPARAMS 14
  
  /* these are taken from OsiSolverParameters.hpp */
  #define OsiProbName 			0
  #define OsiSolverName 			1
  #define OsiDualObjectiveLimit 		0
  #define OsiPrimallObjectiveLimit 	1
  #define OsiDualTolerance 		2
  #define OsiPrimalTolerance 		3
  #define OsiMaxNumIteration 		0
  #define OsiMaxNumIterationHotStart 	1
  /* Solver dependent parameters - these define the positions in the arrays
     that maps to the corresponding actual paramters of the solver
     (e.g. cbc_iparam[] and cbc_dparam[]) in coinplex.cpp
  */
  #define SolverMaxNumNode		0
  #define SolverMaxNumSol			1
  #define SolverIntegerTolerance		0
  #define SolverAllowableGap		1
  #define SolverAllowableFractionGap	2
  #define SolverCutoffIncrement		3
  
  static struct param_desc params[NUMPARAMS+NUMALIASES] = {
  {"probname", OsiProbName, 2},
  {"solvername", OsiSolverName, 2},
  {"dualobjectivelimit", OsiDualObjectiveLimit, 1},
  {"prinmalobjectivelimit", OsiPrimallObjectiveLimit, 1},
  {"dualtolerance", OsiDualTolerance, 1},
  {"primaltolerance", OsiPrimalTolerance, 1},
  {"maxnumiteration", OsiMaxNumIteration, 0},
  {"maxnumiterationhotstart", OsiMaxNumIterationHotStart, 0},
  /* the following are solver dependent (i.e. non-OSI)
  */
  {"node_limit", SolverMaxNumNode,  3},
  {"solution_limit", SolverMaxNumSol, 3},
  {"integrality", SolverIntegerTolerance, 4},
  {"absmipgap", SolverAllowableGap, 4},
  {"mipgap", SolverAllowableFractionGap, 4},
  {"objdifference", SolverCutoffIncrement, 4},
  
  #else
  
  No parameter data for this version!!!
  
  #endif
  
  
  /*
   * Add some version-independent aliases to the table
   * This must remain at the end of the file!!!
   * If you add lines here, update NUMALIASES above!
   */
  
  #ifdef CPLEX
  
  /* NUMALIASES lines follow */
  {"timelimit", CPX_PARAM_TILIM, 1},
  {"time_limit", CPX_PARAM_TILIM, 1},
  {"perturbation_const", CPX_PARAM_EPPER, 1},
  {"lowerobj_limit", CPX_PARAM_OBJLLIM, 1},
  {"upperobj_limit", CPX_PARAM_OBJULIM, 1},
  {"feasibility_tol", CPX_PARAM_EPRHS, 1},
  {"markowitz_tol", CPX_PARAM_EPMRK, 1},
  {"optimality_tol", CPX_PARAM_EPOPT, 1},
  {"backtrack", CPX_PARAM_BTTOL, 1},
  {"treememory", CPX_PARAM_TRELIM, 1},
  {"lowercutoff", CPX_PARAM_CUTLO, 1},
  {"uppercutoff", CPX_PARAM_CUTUP, 1},
  {"absmipgap", CPX_PARAM_EPAGAP, 1},
  {"mipgap", CPX_PARAM_EPGAP, 1},
  {"integrality", CPX_PARAM_EPINT, 1},
  {"objdifference", CPX_PARAM_OBJDIF, 1},
  {"relobjdifference", CPX_PARAM_RELOBJDIF, 1},
  {"crash", CPX_PARAM_CRAIND, 0},
  {"dgradient", CPX_PARAM_DPRIIND, 0},
  {"pricing", CPX_PARAM_PRICELIM, 0},
  /*{"iisfind", CPX_PARAM_IISIND, 0}, removed in CPLEX 10 */
  {"perturbation_ind", CPX_PARAM_PERIND, 0},
  {"pgradient", CPX_PARAM_PPRIIND, 0},
  {"refactor", CPX_PARAM_REINV, 0},
  {"iteration_limit", CPX_PARAM_ITLIM, 0},
  {"singularity_limit", CPX_PARAM_SINGLIM, 0},
  {"simplex_display", CPX_PARAM_SIMDISPLAY, 0},
  {"basisinterval", CPX_PARAM_BASINTERVAL, 0},
  {"branch", CPX_PARAM_BRDIR, 0},
  {"nodeselect", CPX_PARAM_NODESEL, 0},
  {"order", CPX_PARAM_MIPORDIND, 0},
  {"startalgorithm", CPX_PARAM_STARTALG, 0},
  {"subalgorithm", CPX_PARAM_SUBALG, 0},
  {"variableselect", CPX_PARAM_VARSEL, 0},
  {"solution_limit", CPX_PARAM_INTSOLLIM, 0},
  {"node_limit", CPX_PARAM_NODELIM, 0},
  {"mip_display", CPX_PARAM_MIPDISPLAY, 0},
  {"mip_interval", CPX_PARAM_MIPINTERVAL, 0},
  {"advance", CPX_PARAM_ADVIND, 0},
  {"aggregator", CPX_PARAM_AGGIND, 0},
  {"coeffreduce", CPX_PARAM_COEREDIND, 0},
  {"dependency", CPX_PARAM_DEPIND, 0},
  {"presolve", CPX_PARAM_PREIND, 0},
  {"scale", CPX_PARAM_SCAIND, 0},
  {"xxxstart", CPX_PARAM_XXXIND, 0},
  
  #endif
  #ifdef XPRESS
  
  /* NUMALIASES lines follow */
  {"timelimit", XPRS_MAXTIME, 0},
  {"time_limit", XPRS_MAXTIME, 0},
  {"feasibility_tol", XPRS_FEASTOL, 1},
  {"integrality", XPRS_MIPTOL, 1},
  {"objdifference", XPRS_MIPADDCUTOFF, 1},
  {"iteration_limit", XPRS_LPITERLIMIT, 0},
  {"presolve", XPRS_PRESOLVE, 0},
  {"crash", XPRS_CRASH, 0},
  {"refactor", XPRS_INVERTFREQ, 0},
  {"node_limit", XPRS_MAXNODE, 0},
  {"scrind", XPRS_OUTPUTLOG, 0},
  {"logfile", 0, 3},		/* special */
  {"subalgorithm", XPRS_DEFAULTALG, 0},
  
  #endif
  #ifdef COIN
  {"iteration_limit",OsiMaxNumIteration, 0},
  {"feasibility_tol", OsiPrimalTolerance, 1},
  #endif
  };
  