C# API Reference¶
The Cardinal Optimizer provides C# API library. This chapter documents all COPT C# constants and API functions for C# applications.
Constants¶
There are four types of constants defined in Cardinal Optimizer. They are general constants, information constants, attributes and parameters.
General Constants¶
For the contents of C# general constants, see General Constants.
General constants are defined in Consts
class. User may refer general
constants with namespace, that is, Copt.Consts.XXXX
.
Attributes¶
For the contents of C# attribute constants, see Attributes.
All COPT C# attributes are defined in DblAttr
and IntAttr
classes.
User may refer double attributes by Copt.DblAttr.XXXX
, and integer
attributes by Copt.IntAttr.XXXX
.
In the C# API, user can get the attribute value by specifying the attribute name. The two functions of obtaining attribute values are as follows, please refer to C# API: Model Class for details.
Model.GetIntAttr()
: Get value of a COPT integer attribute.Model.GetDblAttr()
: Get value of a COPT double attribute.
Information¶
For the content of C# information constants, see Information.
In the C# API, information constants are defined in the DblInfo
class.
Users can access information constants through the prefix Copt
in the namespace (usually can be omitted) Copt.DblInfo.
For instance, Copt.DblInfo.Obj
is the coefficients of variables in the objective function.
Callback Information¶
For the content of C# API callback information class constants, see Callback Information.
In the C# API, callback-related information constants are defined in the CbInfo
class.
Users can access information constants through the prefix Copt
in the namespace (usually can be omitted) Copt.CbInfo.
For instance, Copt.CbInfo.BestObj
is the current best objective.
Parameters¶
For the contents of C# parameters constants, see Parameters.
All COPT C# parameters are defined in DblParam and IntParam classes.
User may refer double parameters by Copt.DblParam.XXXX
, and integer
parameters by Copt.IntParam.XXXX
.
In the C# API, user can get and set the parameter value by specifying the parameter name. The provided functions are as follows, please refer to C# API: Model Class for details.
Get detailed information of the specified parameter (current value/max/min):
Model.GetParamInfo()
Get the current value of the specified integer/double parameter:
Model.GetIntParam()
/Model.GetDblParam()
Set the specified integer/double parameter value:
Model.SetIntParam()
/Model.SetDblParam()
C# Modeling Classes¶
This chapter documents COPT C# interface. Users may refer to C# classes described below for details of how to construct and solve C# models.
Envr¶
Essentially, any C# application using Cardinal Optimizer should start with a COPT environment. COPT models are always associated with a COPT environment. User must create an environment object before populating models. User generally only need a single environment object in program.
EnvrConfig¶
If user connects to COPT remote services, such as floating token server or compute cluster, it is necessary to add config settings with EnvrConfig object.
Model¶
In general, a COPT model consists of a set of variables, a (linear) objective function on these variables, a set of constraints on there varaibles, etc. COPT model class encapsulates all required methods for constructing a COPT model.
- Model.Model()
- Model.AddCone()
- Model.AddCone()
- Model.AddCone()
- Model.AddCone()
- Model.AddConstr()
- Model.AddConstr()
- Model.AddConstr()
- Model.AddConstr()
- Model.AddConstr()
- Model.AddConstrs()
- Model.AddConstrs()
- Model.AddConstrs()
- Model.AddDenseMat()
- Model.AddDenseMat()
- Model.AddDiagMat()
- Model.AddDiagMat()
- Model.AddDiagMat()
- Model.AddDiagMat()
- Model.AddEyeMat()
- Model.AddGenConstrIndicator()
- Model.AddGenConstrIndicator()
- Model.AddGenConstrIndicator()
- Model.AddLazyConstr()
- Model.AddLazyConstr()
- Model.AddLazyConstr()
- Model.AddLazyConstrs()
- Model.AddLmiConstr()
- Model.AddOnesMat()
- Model.AddPsdConstr()
- Model.AddPsdConstr()
- Model.AddPsdConstr()
- Model.AddPsdConstr()
- Model.AddPsdVar()
- Model.AddPsdVars()
- Model.AddQConstr()
- Model.AddQConstr()
- Model.AddQConstr()
- Model.AddSos()
- Model.AddSos()
- Model.AddSos()
- Model.AddSparseMat()
- Model.AddSymMat()
- Model.AddUserCut()
- Model.AddUserCut()
- Model.AddUserCut()
- Model.AddUserCuts()
- Model.AddVar()
- Model.AddVar()
- Model.AddVars()
- Model.AddVars()
- Model.AddVars()
- Model.AddVars()
- Model.AddVars()
- Model.Clear()
- Model.Clone()
- Model.ComputeIIS()
- Model.DelPsdObj()
- Model.DelQuadObj()
- Model.FeasRelax()
- Model.FeasRelax()
- Model.Get()
- Model.Get()
- Model.Get()
- Model.Get()
- Model.Get()
- Model.Get()
- Model.Get()
- Model.Get()
- Model.GetCoeff()
- Model.GetCol()
- Model.GetColBasis()
- Model.GetCone()
- Model.GetConeBuilders()
- Model.GetConeBuilders()
- Model.GetConeBuilders()
- Model.GetCones()
- Model.GetConstr()
- Model.GetConstrBuilder()
- Model.GetConstrBuilders()
- Model.GetConstrByName()
- Model.GetConstrLowerIIS()
- Model.GetConstrLowerIIS()
- Model.GetConstrs()
- Model.GetConstrUpperIIS()
- Model.GetConstrUpperIIS()
- Model.GetDblAttr()
- Model.GetDblParam()
- Model.GetGenConstrIndicator()
- Model.GetIndicatorIIS()
- Model.GetIndicatorIIS()
- Model.GetIntAttr()
- Model.GetIntParam()
- Model.GetLmiCoeff()
- Model.GetLmiConstr()
- Model.GetLmiConstrByName()
- Model.GetLmiConstrs()
- Model.GetLmiRhs()
- Model.GetLmiRow()
- Model.GetLpSolution()
- Model.GetObjective()
- Model.GetParamInfo()
- Model.GetParamInfo()
- Model.GetPoolObjVal()
- Model.GetPoolSolution()
- Model.GetPoolSolution()
- Model.GetPsdCoeff()
- Model.GetPsdConstr()
- Model.GetPsdConstrBuilder()
- Model.GetPsdConstrBuilders()
- Model.GetPsdConstrByName()
- Model.GetPsdConstrs()
- Model.GetPsdObjective()
- Model.GetPsdRow()
- Model.GetPsdSolution()
- Model.GetPsdVar()
- Model.GetPsdVarByName()
- Model.GetPsdVars()
- Model.GetQConstr()
- Model.GetQConstrBuilder()
- Model.GetQConstrBuilders()
- Model.GetQConstrByName()
- Model.GetQConstrs()
- Model.GetQuadObjective()
- Model.GetQuadRow()
- Model.GetRow()
- Model.GetRowBasis()
- Model.GetSolution()
- Model.GetSos()
- Model.GetSosBuilders()
- Model.GetSosBuilders()
- Model.GetSosBuilders()
- Model.GetSOSIIS()
- Model.GetSOSIIS()
- Model.GetSoss()
- Model.GetSymMat()
- Model.GetVar()
- Model.GetVarByName()
- Model.GetVarLowerIIS()
- Model.GetVarLowerIIS()
- Model.GetVars()
- Model.GetVarUpperIIS()
- Model.GetVarUpperIIS()
- Model.Interrupt()
- Model.LoadMipStart()
- Model.LoadTuneParam()
- Model.Read()
- Model.ReadBasis()
- Model.ReadBin()
- Model.ReadCbf()
- Model.ReadLp()
- Model.ReadMps()
- Model.ReadMst()
- Model.ReadParam()
- Model.ReadSdpa()
- Model.ReadSol()
- Model.ReadTune()
- Model.Remove()
- Model.Remove()
- Model.Remove()
- Model.Remove()
- Model.Remove()
- Model.Remove()
- Model.Remove()
- Model.Remove()
- Model.Remove()
- Model.Remove()
- Model.Remove()
- Model.Remove()
- Model.Remove()
- Model.Remove()
- Model.Remove()
- Model.Remove()
- Model.Remove()
- Model.Remove()
- Model.Reset()
- Model.ResetAll()
- Model.ResetParam()
- Model.Set()
- Model.Set()
- Model.Set()
- Model.Set()
- Model.Set()
- Model.Set()
- Model.SetBasis()
- Model.SetCallback()
- Model.SetCoeff()
- Model.SetCoeffs()
- Model.SetCoeffs()
- Model.SetDblParam()
- Model.SetIntParam()
- Model.SetLmiCoeff()
- Model.SetLmiRhs()
- Model.SetLpSolution()
- Model.SetMipStart()
- Model.SetMipStart()
- Model.SetMipStart()
- Model.SetMipStart()
- Model.SetNames()
- Model.SetNames()
- Model.SetNames()
- Model.SetNames()
- Model.SetNames()
- Model.SetNames()
- Model.SetNames()
- Model.SetNames()
- Model.SetNames()
- Model.SetNames()
- Model.SetNames()
- Model.SetNames()
- Model.SetObjConst()
- Model.SetObjective()
- Model.SetObjSense()
- Model.SetPsdCoeff()
- Model.SetPsdObjective()
- Model.SetQuadObjective()
- Model.SetSlackBasis()
- Model.SetSolverLogFile()
- Model.Solve()
- Model.SolveLp()
- Model.Tune()
- Model.Write()
- Model.WriteBasis()
- Model.WriteBin()
- Model.WriteIIS()
- Model.WriteLp()
- Model.WriteMps()
- Model.WriteMpsStr()
- Model.WriteMst()
- Model.WriteParam()
- Model.WritePoolSol()
- Model.WriteRelax()
- Model.WriteSol()
- Model.WriteTuneParam()
Var¶
COPT variable object. Variables are always associated with a particular model. User creates a variable object by adding a variable to a model, rather than by using constructor of Var class.
VarArray¶
COPT variable array object. To store and access a set of C# Var objects, Cardinal Optimizer provides C# VarArray class, which defines the following methods.
Expr¶
COPT linear expression object. A linear expression consists of a constant term, a list of terms of variables and associated coefficients. Linear expressions are used to build constraints.
Constraint¶
COPT constraint object. Constraints are always associated with a particular model. User creates a constraint object by adding a constraint to a model, rather than by using constructor of Constraint class.
ConstrArray¶
COPT constraint array object. To store and access a set of C# Constraint objects, Cardinal Optimizer provides C# ConstrArray class, which defines the following methods.
ConstrBuilder¶
COPT constraint builder object. To help building a constraint, given a linear expression, constraint sense and right-hand side value, Cardinal Optimizer provides C# ConstrBuilder class, which defines the following methods.
ConstrBuilderArray¶
COPT constraint builder array object. To store and access a set of C# ConstrBuilder objects, Cardinal Optimizer provides C# ConstrBuilderArray class, which defines the following methods.
Column¶
COPT column object. A column consists of a list of constraints and associated coefficients. Columns are used to represent the set of constraints in which a variable participates, and the asssociated coefficents.
ColumnArray¶
COPT column array object. To store and access a set of C# Column objects, Cardinal Optimizer provides C# ColumnArray class, which defines the following methods.
Sos¶
COPT SOS constraint object. SOS constraints are always associated with a particular model. User creates an SOS constraint object by adding an SOS constraint to a model, rather than by using constructor of Sos class.
An SOS constraint can be type 1 or 2 (COPT_SOS_TYPE1
or COPT_SOS_TYPE2
).
SosArray¶
COPT SOS constraint array object. To store and access a set of C# Sos objects, Cardinal Optimizer provides C# SosArray class, which defines the following methods.
SosBuilder¶
COPT SOS constraint builder object. To help building an SOS constraint, given the SOS type, a set of variables and associated weights, Cardinal Optimizer provides C# SosBuilder class, which defines the following methods.
SosBuilderArray¶
COPT SOS constraint builder array object. To store and access a set of C# SosBuilder objects, Cardinal Optimizer provides C# SosBuilderArray class, which defines the following methods.
GenConstr¶
COPT general constraint object. General constraints are always associated with a particular model. User creates a general constraint object by adding a general constraint to a model, rather than by using constructor of GenConstr class.
GenConstrArray¶
COPT general constraint array object. To store and access a set of C# GenConstr objects, Cardinal Optimizer provides C# GenConstrArray class, which defines the following methods.
GenConstrBuilder¶
COPT general constraint builder object. To help building a general constraint, given a binary variable and associated value, a linear expression and constraint sense, Cardinal Optimizer provides C# GenConstrBuilder class, which defines the following methods.
GenConstrBuilderArray¶
COPT general constraint builder array object. To store and access a set of C# GenConstrBuilder objects, Cardinal Optimizer provides C# GenConstrBuilderArray class, which defines the following methods.
Cone¶
COPT cone constraint object. Cone constraints are always associated with a particular model. User creates a cone constraint object by adding a cone constraint to a model, rather than by using constructor of Cone class.
A cone constraint can be regular or rotated (COPT_CONE_QUAD
or COPT_CONE_RQUAD
).
ConeArray¶
COPT cone constraint array object. To store and access a set of C# Cone objects, Cardinal Optimizer provides C# ConeArray class, which defines the following methods.
ConeBuilder¶
COPT cone constraint builder object. To help building a cone constraint, given the cone type and a set of variables, Cardinal Optimizer provides C# ConeBuilder class, which defines the following methods.
ConeBuilderArray¶
COPT cone constraint builder array object. To store and access a set of C# ConeBuilder objects, Cardinal Optimizer provides C# ConeBuilderArray class, which defines the following methods.
QuadExpr¶
COPT quadratic expression object. A quadratic expression consists of a linear expression, a list of variable pairs and associated coefficients of quadratic terms. Quadratic expressions are used to build quadratic constraints and objectives.
- QuadExpr.QuadExpr()
- QuadExpr.QuadExpr()
- QuadExpr.QuadExpr()
- QuadExpr.QuadExpr()
- QuadExpr.QuadExpr()
- QuadExpr.AddConstant()
- QuadExpr.AddLinExpr()
- QuadExpr.AddLinExpr()
- QuadExpr.AddQuadExpr()
- QuadExpr.AddQuadExpr()
- QuadExpr.AddTerm()
- QuadExpr.AddTerm()
- QuadExpr.AddTerms()
- QuadExpr.AddTerms()
- QuadExpr.AddTerms()
- QuadExpr.AddTerms()
- QuadExpr.AddTerms()
- QuadExpr.AddTerms()
- QuadExpr.Clone()
- QuadExpr.Evaluate()
- QuadExpr.GetCoeff()
- QuadExpr.GetConstant()
- QuadExpr.GetLinExpr()
- QuadExpr.GetVar1()
- QuadExpr.GetVar2()
- QuadExpr.Remove()
- QuadExpr.Remove()
- QuadExpr.SetCoeff()
- QuadExpr.SetConstant()
- QuadExpr.Size()
QConstraint¶
COPT quadratic constraint object. Quadratic constraints are always associated with a particular model. User creates a quadratic constraint object by adding a quadratic constraint to a model, rather than by using constructor of QConstraint class.
QConstrArray¶
COPT quadratic constraint array object. To store and access a set of C# QConstraint objects, Cardinal Optimizer provides C# QConstrArray class, which defines the following methods.
QConstrBuilder¶
COPT quadratic constraint builder object. To help building a quadratic constraint, given a quadratic expression, constraint sense and right-hand side value, Cardinal Optimizer provides C# ConeBuilder class, which defines the following methods.
QConstrBuilderArray¶
COPT quadratic constraint builder array object. To store and access a set of C# QConstrBuilder objects, Cardinal Optimizer provides C# QConstrBuilderArray class, which defines the following methods.
PsdVar¶
COPT PSD variable object. PSD variables are always associated with a particular model. User creates a PSD variable object by adding a PSD variable to model, rather than by constructor of PsdVar class.
PsdVarArray¶
COPT PSD variable array object. To store and access a set of PsdVar objects, Cardinal Optimizer provides PsdVarArray class, which defines the following methods.
PsdExpr¶
COPT PSD expression object. A PSD expression consists of a linear expression, a list of PSD variables and associated coefficient matrices of PSD terms. PSD expressions are used to build PSD constraints and objectives.
- PsdExpr.PsdExpr()
- PsdExpr.PsdExpr()
- PsdExpr.PsdExpr()
- PsdExpr.PsdExpr()
- PsdExpr.PsdExpr()
- PsdExpr.AddConstant()
- PsdExpr.AddLinExpr()
- PsdExpr.AddLinExpr()
- PsdExpr.AddPsdExpr()
- PsdExpr.AddPsdExpr()
- PsdExpr.AddTerm()
- PsdExpr.AddTerm()
- PsdExpr.AddTerm()
- PsdExpr.AddTerms()
- PsdExpr.AddTerms()
- PsdExpr.AddTerms()
- PsdExpr.AddTerms()
- PsdExpr.AddTerms()
- PsdExpr.AddTerms()
- PsdExpr.Clone()
- PsdExpr.Evaluate()
- PsdExpr.GetCoeff()
- PsdExpr.GetConstant()
- PsdExpr.GetLinExpr()
- PsdExpr.GetPsdVar()
- PsdExpr.Multiply()
- PsdExpr.Remove()
- PsdExpr.Remove()
- PsdExpr.Remove()
- PsdExpr.SetCoeff()
- PsdExpr.SetConstant()
- PsdExpr.Size()
PsdConstraint¶
COPT PSD constraint object. PSD constraints are always associated with a particular model. User creates a PSD constraint object by adding a PSD constraint to model, rather than by constructor of PsdConstraint class.
PsdConstrArray¶
COPT PSD constraint array object. To store and access a set of PsdConstraint objects, Cardinal Optimizer provides PsdConstrArray class, which defines the following methods.
PsdConstrBuilder¶
COPT PSD constraint builder object. To help building a PSD constraint, given a PSD expression, constraint sense and right-hand side value, Cardinal Optimizer provides PsdConstrBuilder class, which defines the following methods.
PsdConstrBuilderArray¶
COPT PSD constraint builder array object. To store and access a set of PsdConstrBuilder objects, Cardinal Optimizer provides PsdConstrBuilderArray class, which defines the following methods.
LmiConstraint¶
COPT LMI constraint object. LMI constraints are always associated with a particular model. User creates a LMI constraint object by adding a LMI constraint to model, rather than by constructor of LmiConstraint class.
LmiConstrArray¶
COPT LMI constraint array object. To store and access a set of LmiConstraint objects, Cardinal Optimizer provides LmiConstrArray class, which defines the following methods.
LmiExpr¶
COPT LMI expression object. A LMI expression consists of a list of variables, associated coefficient matrices of LMI term, and constant matrices. LMI expressions are used to build LMI constraints.
- LmiExpr.LmiExpr()
- LmiExpr.LmiExpr()
- LmiExpr.LmiExpr()
- LmiExpr.LmiExpr()
- LmiExpr.LmiExpr()
- LmiExpr.AddConstant()
- LmiExpr.AddLmiExpr()
- LmiExpr.AddTerm()
- LmiExpr.AddTerm()
- LmiExpr.AddTerms()
- LmiExpr.AddTerms()
- LmiExpr.Clone()
- LmiExpr.GetCoeff()
- LmiExpr.GetConstant()
- LmiExpr.GetVar()
- LmiExpr.Multiply()
- LmiExpr.Remove()
- LmiExpr.Remove()
- LmiExpr.SetCoeff()
- LmiExpr.SetConstant()
- LmiExpr.Size()
SymMatrix¶
COPT symmetric matrix object. Symmetric matrices are always associated with a particular model. User creates a symmetric matrix object by adding a symmetric matrix to model, rather than by constructor of SymMatrix class.
Symmetric matrices are used as coefficient matrices of PSD terms in PSD expressions, PSD constraints or PSD objectives.
SymMatrixArray¶
COPT symmetric matrix object. To store and access a set of SymMatrix objects, Cardinal Optimizer provides SymMatrixArray class, which defines the following methods.
SymMatExpr¶
COPT symmetric matrix expression object. A symmetric matrix expression is a linear combination of symmetric matrices, which is still a symmetric matrix. However, by doing so, we are able to delay computing the final matrix until setting PSD constraints or PSD objective.
- SymMatExpr.SymMatExpr()
- SymMatExpr.SymMatExpr()
- SymMatExpr.AddSymMatExpr()
- SymMatExpr.AddTerm()
- SymMatExpr.AddTerms()
- SymMatExpr.AddTerms()
- SymMatExpr.AddTerms()
- SymMatExpr.Clone()
- SymMatExpr.GetCoeff()
- SymMatExpr.GetDim()
- SymMatExpr.GetSymMat()
- SymMatExpr.Multiply()
- SymMatExpr.Remove()
- SymMatExpr.Remove()
- SymMatExpr.Reserve()
- SymMatExpr.SetCoeff()
- SymMatExpr.Size()
CallbackBase¶
COPT Callback abstract base object. Users must implment its virtual method
virtual void CallbackBase::callback()
to instantiate an instance, which
pass to Model::SetCallback(CallbackBase cb, int cbctx)
as the first
parameter. Subclass of CallbackBase inherits the following member methods:
- CallbackBase.CallbackBase()
- CallbackBase.AddLazyConstr()
- CallbackBase.AddLazyConstr()
- CallbackBase.AddLazyConstr()
- CallbackBase.AddLazyConstrs()
- CallbackBase.AddUserCut()
- CallbackBase.AddUserCut()
- CallbackBase.AddUserCut()
- CallbackBase.AddUserCuts()
- CallbackBase.callback()
- CallbackBase.GetDblInfo()
- CallbackBase.GetIncumbent()
- CallbackBase.GetIncumbent()
- CallbackBase.GetIncumbent()
- CallbackBase.GetIncumbent()
- CallbackBase.GetIntInfo()
- CallbackBase.GetRelaxSol()
- CallbackBase.GetRelaxSol()
- CallbackBase.GetRelaxSol()
- CallbackBase.GetRelaxSol()
- CallbackBase.GetSolution()
- CallbackBase.GetSolution()
- CallbackBase.GetSolution()
- CallbackBase.GetSolution()
- CallbackBase.Interrupt()
- CallbackBase.LoadSolution()
- CallbackBase.SetSolution()
- CallbackBase.SetSolution()
- CallbackBase.SetSolution()
- CallbackBase.Where()
ProbBuffer¶
Buffer object for COPT problem. ProbBuffer object holds the (MPS) problem in string format.
CoptException¶
Copt exception object.