Procedure GMP::Row::SetPoolTypeMulti(GMP, binding, row, value, mode)


The procedure GMP::Row::SetPoolTypeMulti can be used to indicate that a group of rows, belonging to a constraint in a generated mathematical program, should become part of a pool of lazy constraints or a pool of (user) cuts. The solvers CPLEX, Gurobi and ODH-CPLEX can make use of this information.

     GMP,            ! (input) a generated mathematical program
     binding,        ! (input) an index binding
     row,            ! (input) a constraint expression
     value,          ! (input) a numerical expression
     mode            ! (input) a numerical expression



An element in AllGeneratedMathematicalPrograms.


An index binding that specifies and possibly limits the scope of indices.


A constraint that, combined with the binding domain, specifies the rows.


The pool type for each row, defined over the binding domain. A value of 1 specifies that the row should be added to the lazy constraint pool and 2 specifies that the row should be added to the cut pool. The value 0 indicates that the row will be removed from either pools (and treated as a normal row).


The lazy constraint mode for each row, defined over the binding domain. Its value should be a number between 0 and 3. The meaning of these values is explained below.

Return Value

The procedure returns 1 on success, and 0 otherwise.


  • The lazy constraint pool is supported by CPLEX, Gurobi and ODH-CPLEX while the cut pool is supported by CPLEX and ODH-CPLEX.

  • The mode is only used if the row should be added to the lazy constraint pool (i.e., if value equals 1) and if Gurobi is used. The mode should be a value between 0 and 3, and these values have the following meaning:

    • 0: The mode is specified by the Gurobi option Lazy constraint mode.

    • 1: The lazy constraint can be used to cut off a feasible solution, but it won’t necessarily be pulled in if another lazy constraint also cuts off the solution.

    • 2: Lazy constraints that are violated by a feasible solution will be pulled into the model.

    • 3: Lazy constraints that cut off the relaxation solution at the root node are also pulled into the model.

See also

The procedure GMP::Row::SetPoolType. The lazy constraint pool and the cut pool are explained in full detail in Indicator Constraints, Lazy Constraints and Cut Pools of the Language Reference.