- Procedure GMP::Coefficient::Set(GMP, row, column, value)
GMP::Coefficient::Set
The procedure GMP::Coefficient::Set
sets the value of a (linear)
coefficient in a generated mathematical program.
GMP::Coefficient::Set(
GMP, ! (input) a generated mathematical program
row, ! (input) a scalar reference or row number
column, ! (input) a scalar reference or column number
value ! (input) a scalar numerical value
)
Arguments
- GMP
An element in
AllGeneratedMathematicalPrograms
.- row
A scalar reference to an existing row in the model or the number of that row in the range \(\{ 0 .. m-1 \}\) where \(m\) is the number of rows in the matrix.
- column
A scalar reference to an existing column in the model or the number of that column in the range \(\{ 0 .. n-1 \}\) where \(n\) is the number of columns in the matrix.
- value
A scalar numerical value indicating the value for the coefficient.
Return Value
The procedure returns 1 on success, or 0 otherwise.
Note
Use
GMP::Coefficient::SetMulti
orGMP::Coefficient::SetRaw
if many coefficients have to be set because that will be more efficient.This procedure cannot be used if the column refers to the objective variable.
In case the generated mathematical program is nonlinear, this procedure will fail if the column is part of a nonlinear term in the row. However, if the row is pure quadratic, then this procedure can be used to set the linear coefficient value for a quadratic column.
GMP procedures operate on a generated mathematical program in which all variables are moved to the left-hand-side of each constraint. This can have an influence on the sign of the coeffients as demonstrated in the example below.
Example
Assume that we have the following variable and constraint declarations (in ams format):.
Variable y; Variable z; Variable x1; Constraint c1 { Definition: x1 - 2*y - 3*z = 0; } Variable x2 { Definition: 2*y + 3*z; }To change the coefficient of variable
y
in constraintc1
to 4 we use:GMP::Coefficient::Set( myGMP, c1, y, 4 );This results in the row
x1 + 4*y - 3*z = 0
.The definition of variable
x2
is generated as the rowx2 - 2*y - 3*z = 0
by AIMMS. Therefore, usingGMP::Coefficient::Set( myGMP, x2_definition, y, -4 );will result in the row
x2 - 4*y - 3*z = 0
.
See also
The routines GMP::Coefficient::Get
, GMP::Coefficient::SetMulti
, GMP::Coefficient::SetRaw
and GMP::QuadraticCoefficient::Set
.