Constants

The following list contains the set of constants needed by the Gurobi .NET interface. You would refer to them using a GRB. prefix (e.g., GRB.Status.OPTIMAL).

  // Model status codes (after call to optimize())

  public class Status
  {
    public const int LOADED          = 1;
    public const int OPTIMAL         = 2;
    public const int INFEASIBLE      = 3;
    public const int INF_OR_UNBD     = 4;
    public const int UNBOUNDED       = 5;
    public const int CUTOFF          = 6;
    public const int ITERATION_LIMIT = 7;
    public const int NODE_LIMIT      = 8;
    public const int TIME_LIMIT      = 9;
    public const int SOLUTION_LIMIT  = 10;
    public const int INTERRUPTED     = 11;
    public const int NUMERIC         = 12;
    public const int SUBOPTIMAL      = 13;
    public const int INPROGRESS      = 14;
    public const int USER_OBJ_LIMIT  = 15;
  }

  // Basis status info

  public const int BASIC          = 0;
  public const int NONBASIC_LOWER = -1;
  public const int NONBASIC_UPPER = -2;
  public const int SUPERBASIC     = -3;

  // Constraint senses

  public const char LESS_EQUAL    = '<';
  public const char GREATER_EQUAL = '>';
  public const char EQUAL         = '=';

  // Variable types

  public const char CONTINUOUS   = 'C';
  public const char BINARY       = 'B';
  public const char INTEGER      = 'I';
  public const char SEMICONT     = 'S';
  public const char SEMIINT      = 'N';

  // Objective sense

  public const int MINIMIZE = 1;
  public const int MAXIMIZE = -1;

  // SOS types

  public const int SOS_TYPE1 = 1;
  public const int SOS_TYPE2 = 2;

  // General constraint types

  public const int GENCONSTR_MAX       = 0;
  public const int GENCONSTR_MIN       = 1;
  public const int GENCONSTR_ABS       = 2;
  public const int GENCONSTR_AND       = 3;
  public const int GENCONSTR_OR        = 4;
  public const int GENCONSTR_INDICATOR = 5;

  // Numeric constants

  public const double INFINITY    = 1e100;
  public const double UNDEFINED   = 1e101;

  // Limits

  public const int MAX_STRLEN  = 512;

  // Callback constants

  public class Callback
  {
    public const int POLLING       =     0;
    public const int PRESOLVE      =     1;
    public const int SIMPLEX       =     2;
    public const int MIP           =     3;
    public const int MIPSOL        =     4;
    public const int MIPNODE       =     5;
    public const int MESSAGE       =     6;
    public const int BARRIER       =     7;

    public const int PRE_COLDEL      = 1000;
    public const int PRE_ROWDEL      = 1001;
    public const int PRE_SENCHG      = 1002;
    public const int PRE_BNDCHG      = 1003;
    public const int PRE_COECHG      = 1004;
    public const int SPX_ITRCNT      = 2000;
    public const int SPX_OBJVAL      = 2001;
    public const int SPX_PRIMINF     = 2002;
    public const int SPX_DUALINF     = 2003;
    public const int SPX_ISPERT      = 2004;
    public const int MIP_OBJBST      = 3000;
    public const int MIP_OBJBND      = 3001;
    public const int MIP_NODCNT      = 3002;
    public const int MIP_SOLCNT      = 3003;
    public const int MIP_CUTCNT      = 3004;
    public const int MIP_NODLFT      = 3005;
    public const int MIP_ITRCNT      = 3006;
    public const int MIPSOL_SOL      = 4001;
    public const int MIPSOL_OBJ      = 4002;
    public const int MIPSOL_OBJBST   = 4003;
    public const int MIPSOL_OBJBND   = 4004;
    public const int MIPSOL_NODCNT   = 4005;
    public const int MIPSOL_SOLCNT   = 4006;
    public const int MIPNODE_STATUS  = 5001;
    public const int MIPNODE_REL     = 5002;
    public const int MIPNODE_OBJBST  = 5003;
    public const int MIPNODE_OBJBND  = 5004;
    public const int MIPNODE_NODCNT  = 5005;
    public const int MIPNODE_SOLCNT  = 5006;
    public const int BARRIER_ITRCNT  = 7001;
    public const int BARRIER_PRIMOBJ = 7002;
    public const int BARRIER_DUALOBJ = 7003;
    public const int BARRIER_PRIMINF = 7004;
    public const int BARRIER_DUALINF = 7005;
    public const int BARRIER_COMPL   = 7006;
    public const int MSG_STRING      = 6001;
    public const int RUNTIME         = 6002;
  }

  // Errors

  public class Error
  {
    public const int OUT_OF_MEMORY            = 10001;
    public const int NULL_ARGUMENT            = 10002;
    public const int INVALID_ARGUMENT         = 10003;
    public const int UNKNOWN_ATTRIBUTE        = 10004;
    public const int DATA_NOT_AVAILABLE       = 10005;
    public const int INDEX_OUT_OF_RANGE       = 10006;
    public const int UNKNOWN_PARAMETER        = 10007;
    public const int VALUE_OUT_OF_RANGE       = 10008;
    public const int NO_LICENSE               = 10009;
    public const int SIZE_LIMIT_EXCEEDED      = 10010;
    public const int CALLBACK                 = 10011;
    public const int FILE_READ                = 10012;
    public const int FILE_WRITE               = 10013;
    public const int NUMERIC                  = 10014;
    public const int IIS_NOT_INFEASIBLE       = 10015;
    public const int NOT_FOR_MIP              = 10016;
    public const int OPTIMIZATION_IN_PROGRESS = 10017;
    public const int DUPLICATES               = 10018;
    public const int NODEFILE                 = 10019;
    public const int Q_NOT_PSD                = 10020;
    public const int QCP_EQUALITY_CONSTRAINT  = 10021;
    public const int NETWORK                  = 10022;
    public const int JOB_REJECTED             = 10023;
    public const int NOT_SUPPORTED            = 10024;
    public const int EXCEED_2B_NONZEROS       = 10025;
    public const int INVALID_PIECEWISE_OBJ    = 10026;
    public const int UPDATEMODE_CHANGE        = 10027;
    public const int CLOUD                    = 10028;
    public const int MODEL_MODIFICATION       = 10029;
    public const int NOT_IN_MODEL             = 20001;
    public const int FAILED_TO_CREATE_MODEL   = 20002;
    public const int INTERNAL                 = 20003;
  }

  public const int METHOD_AUTO                     = -1;
  public const int METHOD_PRIMAL                   = 0;
  public const int METHOD_DUAL                     = 1;
  public const int METHOD_BARRIER                  = 2;
  public const int METHOD_CONCURRENT               = 3;
  public const int METHOD_DETERMINISTIC_CONCURRENT = 4;

  public const int FEASRELAX_LINEAR      = 0;
  public const int FEASRELAX_QUADRATIC   = 1;
  public const int FEASRELAX_CARDINALITY = 2;