
lp_add_columns(+Handle, +Columns)

   Add new variables as columns to the external solver's matrix.

Arguments
   Handle              Handle to a solver state
   Columns             A list of Variable:ColumnSpecification pairs.

Type
   library(eplex)

Description

   Add new variables as columns to the external solver's matrix. This 
   allows non-zero coefficients for the objective and existing constraints
   to be specified for these variables. 

   Each column is specified as a Variable:ColumnSpecification pair.
   Variable is the variable that is being added to the problem, and
   ColumnSpecification is the specification for the non-zero coefficients
   for the column representing the variable in the external solver matrix:
   this is a list of Index:Coefficient pairs. Where index is the index of an
   existing constraint (obtained when the constraint was added using
   lp_add_constraints/4), and coefficient is its coefficient. Index
   can also be the atom 'obj', in which case the coefficient is the objective
   coefficient for the column. If the objective coefficient is specified,
   it must be the first element in the ColumnSpecification list. Each
   constraint coefficient should only occur once. Any index not specified
   is given a zero value.

   Note that lp_add_columns/2 essentially modifies the problem represented
   by Handle. This is not compatible with the view of the problem as a
   compound constraint, and therefore, lp_add_columns/2 can only be used
   for problems that are not eplex instances, and/or have no trigger
   conditions for triggering the external solver. 

  

Exceptions
     4 --- Handle or Columns are uninstantiated.
     5 --- A Variable in Columns is already a problem variable for problem represented by Handle.
    40 --- Handle not valid: solver state had been destroyed by cleanup
   abort --- Handle is an eplex instance problem, or trigger conditions have been specified.


