- Procedure GMP::Column::FreezeMulti(GMP, binding, column, value)
GMP::Column::FreezeMulti
The procedure GMP::Column::FreezeMulti freezes a group of columns,
belonging to a variable, in a generated mathematical program.
GMP::Column::FreezeMulti(
     GMP,            ! (input) a generated mathematical program
     binding,        ! (input) an index binding
     column,         ! (input) a variable expression
     value           ! (input) a numerical expression
     )
Arguments
- GMP
An element in
AllGeneratedMathematicalPrograms.- binding
An index binding that specifies and possibly limits the scope of indices.
- column
A variable that, combined with the binding domain, specifies the columns.
- value
The new value for each column, defined over the binding domain, that should be used to freeze the column value.
Return Value
The procedure returns 1 on success, and 0 otherwise.
Note
- The columns remain visible in the constraint listing and math program inspector. In addition, it will be retained in solver maintained copies of the generated math program. 
- Use - GMP::Column::UnfreezeMultito undo the freezing.
- During a call to procedure - GMP::Column::FreezeMultiAIMMS stores the upper and lower bound of the columns before the procedure was called. This information is used when procedure- GMP::Column::UnfreezeMultiis called thereafter. This information is not copied by the function- GMP::Instance::Copy.
Example
To freeze variable x(i) to demand(i) we can use:
for (i) do
    GMP::Column::Freeze( myGMP, x(i), demand(i) );
endfor;
It is more efficient to use:
GMP::Column::FreezeMulti( myGMP, i, x(i), demand(i) );
If we only want to freeze those
x(i) for which dom(i) is unequal to zero, then we use:
GMP::Column::FreezeMulti( myGMP, i | dom(i), x(i), demand(i) );
See also
- The routines - GMP::Instance::Generate,- GMP::Column::Freeze,- GMP::Column::UnfreezeMultiand- GMP::Instance::Copy.