- Procedure GMP::Row::SetRightHandSideMulti(GMP, binding, row, value)
GMP::Row::SetRightHandSideMulti
The procedure GMP::Row::SetRightHandSideMulti
changes the
right-hand-sides of a group of rows, belonging to a constraint, in a
generated mathematical program.
GMP::Row::SetRightHandSideMulti(
GMP, ! (input) a generated mathematical program
binding, ! (input) an index binding
row, ! (input) a constraint 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.
- row
A constraint that, combined with the binding domain, specifies the rows.
- value
The new right-hand-side for each row, defined over the binding domain.
Return Value
The procedure returns 1 on success, and 0 otherwise.
Note
If the constraint has a unit then value should have the same unit. If
value has no unit then you should multiply it by the row scale, as
returned by the function GMP::Row::GetScale
. See
GMP::Row::SetRightHandSide
for an example with units.
Example
To set the right-hand-side values of constraint c(i)
to rhs(i)
we can use:
for (i) do
GMP::Row::SetRightHandSide( myGMP, c(i), rhs(i) );
endfor;
It is more efficient to use:
GMP::Row::SetRightHandSideMulti( myGMP, i, c(i), rhs(i) );
If we
only want to set the right-hand-side values of those c(i)
for which
dom(i)
is unequal to zero, then we use:
GMP::Row::SetRightHandSideMulti( myGMP, i | dom(i), c(i), rhs(i) );
See also