Options reference

Parameters can be queried and set through the get_parameter and set_parameter functions.

In all that follows, $\epsilon$ refers to the numerical precision, which is given by eps(Tv) where Tv is the arithmetic of the current model. For instance, in double-precision arithmetic, i.e., Tv=Float64, we have $\epsilon \simeq 10^{-16}$.

Tulip.FactoryType
Factory{T}

Factory-like struct for passing options to lower-level components.

source

Presolve

These parameters control the execution of the presolve phase. They should be called as "Presolve_<Param>".

Linear Algebra

These parameters control the linear algebra implementation

ParameterDescriptionDefault
MatrixFactorySee FactoryFactory(SparseMatrixCSC)

KKT solvers

ParameterDescriptionDefault
FactorySee FactoryKKT.CholmodSQD for Float64, KKT.LDLFactSQD otherwise

Interior-Point

Tolerances

Numerical tolerances for the interior-point algorithm.

ParameterDescriptionDefault
TolerancePFeasPrimal feasibility tolerance$\sqrt{\epsilon}$
ToleranceDFeasDual feasibility tolerance$\sqrt{\epsilon}$
ToleranceRGapRelative optimality gap tolerance$\sqrt{\epsilon}$
ToleranceIFeasInfeasibility tolerance$\sqrt{\epsilon}$

Algorithmic parameters

ParameterDescriptionDefault
BarrierAlgorithmInterior-point algorithm1
CorrectionLimitMaximum number of additional centrality corrections5
StepDampFactorStep0.9995
GammaMinMinimum value of $\gamma$ for computing correctors0.1
CentralityOutlierThresholdRelative threshold for computing extra centrality corrections0.1
PRegMinMinimum value of primal regularization$\sqrt{\epsilon}$
DRegMinMinimum value of dual regularization$\sqrt{\epsilon}$

Stopping criterion

ParameterDescriptionDefault
IterationsLimitMaximum number of barrier iterations100
TimeLimitTime limit, in secondsInf

Others

ParameterDescriptionDefault
OutputLevelControls the solver's output0
ThreadsMaximum number of threads1
PresolvePresolve (no presolve if set to ≤ 0)1