Initializing help system before first use

# Control Parameters

Topics covered in this chapter:

- Retrieving and Changing Control Values
- Bit-vector controls

Various controls exist within the Optimizer to govern the solution procedure and the form of output. The majority of these take integer values and act as switches between various types of behavior. The tolerances on values are double precision, and there are a few controls which are character strings, setting names to structures. Any of these may be altered by the user to enhance performance of the Optimizer. However, it should be noted that the default values provided have been found to work well in practice over a range of problems and caution should be exercised if they are changed.

We refer to Chapter Reference Documentation by Topic/Functionality for controls ordered by topics.

## Retrieving and Changing Control Values

Console Xpress users may obtain control values by issuing the control name at the Optimizer prompt, >, and hitting the RETURN key. Controls may be set using the assignment syntax:

control_name = new_value

where new_value is an integer value, double or string as appropriate. For character strings, the name must be enclosed in single quotes and all eight characters must be given.

Users of the FICO Xpress Libraries are provided with the following set of functions for setting and obtaining control values:

XPRSgetintcontrol | XPRSgetdblcontrol | XPRSgetstrcontrol
XPRSsetintcontrol | XPRSsetdblcontrol | XPRSsetstrcontrol

It is an important point that the controls as listed in this chapter must be prefixed with XPRS_ to be used with the FICO Xpress Libraries and failure to do so will result in an error. An example of their usage is as follows:

    XPRSgetintcontrol(prob, XPRS_PRESOLVE, &presolve);
    printf("The value of PRESOLVE is %d\n", presolve);
    XPRSsetintcontrol(prob, XPRS_PRESOLVE, 1-presolve);
    printf("The value of PRESOLVE is now %d\n", 1-presolve);

## Bit-vector controls

Some Optimizer controls are bit-vector controls, a special type of integer control where each of the 32 bits represents an independent feature toggle–either on or off. The bits are numbered from 0 to 30 (the last bit holds the sign), with each bit \( k \) corresponding to the integer value \( 2^k \). For example, enabling bits 1, 4, and 8 in a control means setting it to \( 2^1 + 2^4 + 2^8 = 2 + 16 + 256 = 274 \). Consequently, setting a bit-vector control to zero turns all bits off. Due to the way negative numbers are represented in computer systems (using the so-called "Two's Complement"), the value -1 corresponds to all bits being set to one, effectively enabling all features. For this reason, many (but not all) bit-vector controls in the Optimizer default to -1. Examples of bit-vector controls include PRESOLVEOPS, SCALING, and HEURSEARCHROOTSELECT. For a list of all bit-vector controls, see Bit-vector.

Similarly, some functions, such as XPRSdelcuts, accept bit-vectors as input, allowing multiple yes/no characteristics to be encoded into a single integer.

Covered Topics

- ALGAFTERCROSSOVER
- ALGAFTERNETWORK
- ALTERNATIVELPSOLS
- ALTERNATIVEREDCOSTS
- AUTOCUTTING
- AUTOPERTURB
- AUTOSCALING
- BACKGROUNDMAXTHREADS
- BACKGROUNDSELECT
- BACKTRACK
- BACKTRACKTIE
- BARALG
- BARCORES
- BARCRASH
- BARDUALSTOP
- BARFAILITERLIMIT
- BARFREESCALE
- BARGAPSTOP
- BARGAPTARGET
- BARHGEXTRAPOLATE
- BARHGGPU
- BARHGGPUBLOCKSIZE
- BARHGMAXRESTARTS
- BARHGMINORITERATIONLIMIT
- BARHGOPS
- BARHGPRECISION
- BARHGRELTOL
- BARINDEFLIMIT
- BARITERATIVE
- BARITERLIMIT
- BARKERNEL
- BARLARGEBOUND
- BAROBJPERTURB
- BAROBJSCALE
- BARORDER
- BARORDERTHREADS
- BAROUTPUT
- BARPERTURB
- BARPRESOLVEOPS
- BARPRIMALSTOP
- BARREFITER
- BARREGULARIZE
- BARRHSSCALE
- BARSOLUTION
- BARSTART
- BARSTARTWEIGHT
- BARSTEPSTOP
- BARTHREADS
- BIGM
- BIGMMETHOD
- BRANCHCHOICE
- BRANCHDISJ
- BRANCHSTRUCTURAL
- BREADTHFIRST
- CACHESIZE
- CALLBACKCHECKTIMEDELAY
- CALLBACKCHECKTIMEWORKDELAY
- CALLBACKFROMMAINTHREAD
- CHECKINPUTDATA
- CHOLESKYALG
- CHOLESKYTOL
- CLAMPING
- COMPUTE
- COMPUTEEXECSERVICE
- COMPUTEJOBPRIORITY
- COMPUTELOG
- CONCURRENTTHREADS
- CONFLICTCUTS
- CORESPERCPU
- COVERCUTS
- CPIALPHA
- CPUPLATFORM
- CPUTIME
- CRASH
- CROSSOVER
- CROSSOVERACCURACYTOL
- CROSSOVERITERLIMIT
- CROSSOVEROPS
- CROSSOVERTHREADS
- CUTDEPTH
- CUTFACTOR
- CUTFREQ
- CUTSELECT
- CUTSTRATEGY
- DEFAULTALG
- DENSECOLLIMIT
- DETERMINISTIC
- DETERMINISTICLOG
- DUALGRADIENT
- DUALIZE
- DUALIZEOPS
- DUALPERTURB
- DUALSTRATEGY
- DUALTHREADS
- EIGENVALUETOL
- ELIMFILLIN
- ELIMTOL
- ESCAPENAMES
- ETATOL
- EXTRACOLS
- EXTRAELEMS
- EXTRAMIPENTS
- EXTRAROWS
- EXTRASETELEMS
- EXTRASETS
- FEASIBILITYJUMP
- FEASIBILITYPUMP
- FEASTOL
- FEASTOLPERTURB
- FEASTOLTARGET
- FORCEOUTPUT
- FORCEPARALLELDUAL
- GENCONSABSTRANSFORMATION
- GENCONSDUALREDUCTIONS
- GLOBALBOUNDINGBOX
- GLOBALLSHEURSTRATEGY
- GLOBALNLPCUTS
- GLOBALNUMINITNLPCUTS
- GLOBALPRESOLVEOBBT
- GLOBALSPATIALBRANCHCUTTINGEFFORT
- GLOBALSPATIALBRANCHIFPREFERORIG
- GLOBALSPATIALBRANCHPROPAGATIONEFFORT
- GLOBALTREENLPCUTS
- GOMCUTS
- GPUCUDADEVICE
- GPUPLATFORM
- HEURBEFORELP
- HEURDEPTH
- HEURDIVEITERLIMIT
- HEURDIVERANDOMIZE
- HEURDIVESOFTROUNDING
- HEURDIVESPEEDUP
- HEURDIVESTRATEGY
- HEUREMPHASIS
- HEURFORCESPECIALOBJ
- HEURFREQ
- HEURMAXSOL
- HEURNODES
- HEURSEARCHBACKGROUNDSELECT
- HEURSEARCHCOPYCONTROLS
- HEURSEARCHEFFORT
- HEURSEARCHFREQ
- HEURSEARCHROOTCUTFREQ
- HEURSEARCHROOTSELECT
- HEURSEARCHTREESELECT
- HEURSHIFTPROP
- HEURTHREADS
- HISTORYCOSTS
- IFCHECKCONVEXITY
- IISLOG
- IISOPS
- INDLINBIGM
- INDPRELINBIGM
- INPUTTOL
- INVERTFREQ
- INVERTMIN
- IOTIMEOUT
- KEEPBASIS
- KEEPNROWS
- L1CACHE
- LNPBEST
- LNPITERLIMIT
- LOCALCHOICE
- LPBACKGROUNDTHREADS
- LPFLAGS
- LPFOLDING
- LPITERLIMIT
- LPLOG
- LPLOGDELAY
- LPLOGSTYLE
- LPREFINEITERLIMIT
- MARKOWITZTOL
- MATRIXTOL
- MAXCHECKSONMAXCUTTIME
- MAXCHECKSONMAXTIME
- MAXCUTTIME
- MAXIIS
- MAXIMPLIEDBOUND
- MAXLOCALBACKTRACK
- MAXMCOEFFBUFFERELEMS
- MAXMEMORYHARD
- MAXMEMORYSOFT
- MAXMIPSOL
- MAXMIPTASKS
- MAXNODE
- MAXPAGELINES
- MAXSCALEFACTOR
- MAXSTALLTIME
- MAXTIME
- MAXTOTALTREEFILESIZE
- MAXTREEFILESIZE
- MCFCUTSTRATEGY
- MIPABSCUTOFF
- MIPABSGAPNOTIFY
- MIPABSGAPNOTIFYBOUND
- MIPABSGAPNOTIFYOBJ
- MIPABSSTOP
- MIPADDCUTOFF
- MIPCOMPONENTS
- MIPCONCURRENTNODES
- MIPCONCURRENTSOLVES
- MIPDUALREDUCTIONS
- MIPFRACREDUCE
- MIPKAPPAFREQ
- MIPLOG
- MIPPRESOLVE
- MIPRAMPUP
- MIPREFINEITERLIMIT
- MIPRELCUTOFF
- MIPRELGAPNOTIFY
- MIPRELSTOP
- MIPRESTART
- MIPRESTARTFACTOR
- MIPRESTARTGAPTHRESHOLD
- MIPSTOPSTAGE
- MIPTERMINATIONMETHOD
- MIPTHREADS
- MIPTOL
- MIPTOLTARGET
- MIQCPALG
- MPS18COMPATIBLE
- MPSBOUNDNAME
- MPSECHO
- MPSFORMAT
- MPSOBJNAME
- MPSRANGENAME
- MPSRHSNAME
- MULTIOBJLOG
- MULTIOBJOPS
- MUTEXCALLBACKS
- NETSTALLLIMIT
- NODEPROBINGEFFORT
- NODESELECTION
- NUMERICALEMPHASIS
- OBJSCALEFACTOR
- OPTIMALITYTOL
- OPTIMALITYTOLTARGET
- OUTPUTCONTROLS
- OUTPUTLOG
- OUTPUTMASK
- OUTPUTTOL
- PENALTY
- PIVOTTOL
- PPFACTOR
- PREANALYTICCENTER
- PREBASISRED
- PREBNDREDCONE
- PREBNDREDQUAD
- PRECLIQUESTRATEGY
- PRECOEFELIM
- PRECOMPONENTS
- PRECOMPONENTSEFFORT
- PRECONEDECOMP
- PRECONFIGURATION
- PRECONVERTOBJTOCONS
- PRECONVERTSEPARABLE
- PREDOMCOL
- PREDOMROW
- PREDUPROW
- PREELIMQUAD
- PREFOLDING
- PREIMPLICATIONS
- PRELINDEP
- PREOBJCUTDETECT
- PREPERMUTE
- PREPERMUTESEED
- PREPROBING
- PREPROTECTDUAL
- PREROOTEFFORT
- PREROOTTHREADS
- PREROOTWORKLIMIT
- PRESOLVE
- PRESOLVEMAXGROW
- PRESOLVEOPS
- PRESOLVEPASSES
- PRESORT
- PRICINGALG
- PRIMALOPS
- PRIMALPERTURB
- PRIMALUNSHIFT
- PSEUDOCOST
- PWLDUALREDUCTIONS
- PWLNONCONVEXTRANSFORMATION
- QCCUTS
- QCROOTALG
- QSIMPLEXOPS
- QUADRATICUNSHIFT
- RANDOMSEED
- REFACTOR
- REFINEOPS
- RELAXTREEMEMORYLIMIT
- RELPIVOTTOL
- REPAIRINDEFINITEQ
- REPAIRINFEASMAXTIME
- REPAIRINFEASTIMELIMIT
- RESOURCESTRATEGY
- RLTCUTS
- ROOTPRESOLVE
- SBBEST
- SBEFFORT
- SBESTIMATE
- SBITERLIMIT
- SBSELECT
- SCALING
- SDPCUTSTRATEGY
- SERIALIZEPREINTSOL
- SIFTING
- SIFTPASSES
- SIFTPRESOLVEOPS
- SIFTSWITCH
- SLEEPONTHREADWAIT
- SOLTIMELIMIT
- SOSREFTOL
- SYMMETRY
- SYMSELECT
- THREADS
- TIMELIMIT
- TRACE
- TREECOMPRESSION
- TREECOVERCUTS
- TREECUTSELECT
- TREEDIAGNOSTICS
- TREEFILELOGINTERVAL
- TREEGOMCUTS
- TREEMEMORYLIMIT
- TREEMEMORYSAVINGTARGET
- TREEQCCUTS
- TUNERHISTORY
- TUNERMAXTIME
- TUNERMETHOD
- TUNERMETHODFILE
- TUNERMODE
- TUNEROUTPUT
- TUNEROUTPUTPATH
- TUNERPERMUTE
- TUNERSESSIONNAME
- TUNERTARGET
- TUNERTHREADS
- TUNERVERBOSE
- USERSOLHEURISTIC
- VARSELECTION
- VERSION
- WORKLIMIT

Parent Topic Optimizer Reference Manual

© 2001-2026 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.