Advanced simplex routines

This section describes a set of advanced basis routines. These routines allow you to compute solutions to various linear systems involving the simplex basis matrix. Note that these should only be used by advanced users. We provide no technical support for these routines.

Before describing the routines, we should first describe the GRBsvec data structure that is used to input or return sparse vectors:

typedef struct SVector {  
  int len;
  int *ind;
  double *val;
  } GRBsvec;  

The len field gives the number of non-zero values in the vector. The ind and val fields give the index and value for each non-zero, respectively. Indices are zero-based. To give an example, the sparse vector [0, 2.0, 0, 1.0] would be represented as len=2, ind = [1, 3], and val = [2.0, 1.0].

The user is responsible for allocating and freeing the ind and val fields. The length of the result vector for these routines is not known in advance, so the user must allocate these arrays to hold the longest possible result (whose length is noted in the documentation for each routine).