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.
The ColumnSpecification list can optionally start with a special element 'obj':Coeff, in which case the coefficient is the objective coefficient for the column (otherwise zero). This can be optionally followed by two entries of the form 'lo':Lwb,'hi':Upb, which specify initial lower and upper bound on the column variable (otherwise unbounded). 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.