Overview | Group | Tree | Graph | Index | Concepts |
This is an advanced routine. Advanced routines typically demand a profound understanding of the algorithms used by ILOG CPLEX. Thus they incur a higher risk of incorrect behavior in your application, behavior that can be difficult to debug. Therefore, ILOG encourages you to consider carefully whether you can accomplish the same task by means of other Callable Library routines instead.
The routine CPXsolwrite
is a generic routine for writing
solutions. It performs all the calculations needed to produce a solution
file, but it writes only through functions that the user provides to it,
so that the user may choose the data representation, data selection, and
file format.
The user must open the file before calling CPXsolwrite
and
close the file after calling CPXsolwrite
.
The arguments to CPXsolwrite
are functions it calls to
write the file. CPXsolwrite
does not “know”
anything about the file or the type of output being written. The argument
info
, the last parameter,
communicates information to the routines
hsection
, rsectionbeg
, csectionbeg
,
write_entry
, and sectionend
.
The function indicated by hsection
writes a header section in a formatted file.
Its only arguments are the ILOG CPLEX environment pointer
env
, the problem pointer lp
, and the
info
parameter. CPXsolwrite
calls this function
first. It uses the lp
problem pointer to retrieve any
information needed by the header-section function.
The function indicated by rsectionbeg
writes information
at the beginning of the row section of a formatted file.
It is called after hsection
and sectionend
.
Its only argument is the info
parameter.
The function indicated by csection
writes information
at the beginning of the column section of a formatted file. It is called
after all row entries have been completed. Its only argument is the
info
parameter.
The function indicated by write_entry
is called once
for each row and column in the problem. The following table summarizes its
arguments.
The function indicated by sectionend
is used at the end
of each header, row, and column section. The only argument to this function
is the info
parameter.
Type | Name | Meaning |
---|---|---|
void | *info | the
info parameter of CPXsolwrite |
int | aflag | a for alternate optimum |
int | num | sequence number; cumulative over rows and columns |
char | *name | name of row or column |
char | *state | state of row or column; one of: UL , LL ,
BS , EQ , FR , ** |
double | val1 | for rows, row activity; for columns, column solution value |
double | val2 | for rows, slack activitiy; for columns, objective coefficient |
double | ll | for rows, lower limit; for columns, lower bound |
double | ul | for rows, upper limit; for columns, upper bound |
double | val3 | for rows, dual value; for columns, reduced cost |
env | The pointer to the ILOG CPLEX environment, as returned by one of the |
lp | A pointer to a CPLEX LP problem object, as returned by |
info | A generic pointer that passes information to each of the functions called by |