Procedure GMP::Column::SetLowerBoundMulti(GMP, binding, column, value)

# GMP::Column::SetLowerBoundMulti

The procedure `GMP::Column::SetLowerBoundMulti` changes the lower bounds of a group of columns, belonging to a variable, in a generated mathematical program.

```GMP::Column::SetLowerBoundMulti(
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 lower bound for each column, defined over the binding domain.

## Return Value

The procedure returns 1 on success, and 0 otherwise.

Note

If the variable has a unit then value should have the same unit. If value has no unit then you should multiply it by the column scale, as returned by the function `GMP::Column::GetScale`. See `GMP::Column::SetLowerBound` for an example with units.

## Example

To set the lower bounds of variable `x(i)` to `lb(i)` we can use:

```for (i) do
GMP::Column::SetLowerBound( myGMP, x(i), lb(i) );
endfor;
```

It is more efficient to use:

```GMP::Column::SetLowerBoundMulti( myGMP, i, x(i), lb(i) );
```

If we only want to set the lower bounds of those `x(i)` for which `dom(i)` is unequal to zero, then we use:

```GMP::Column::SetLowerBoundMulti( myGMP, i | dom(i), x(i), lb(i) );
```