next up previous contents Back to SYMPHONY Home Page
Next: Data Structures Up: Introduction Previous: Source Files

User-written Functions

The majority of the user functions are called from either the master process or the LP process. For these two modules, user functions are invoked from so-called wrapper functions that provide the interface. Each wrapper function is named *_u() , where * is the name of the corresponding user function, and is defined in a file called *_wrapper.c. The wrapper function first collects the necessary data and hands it to the user by calling the user function. Based on the return value from the user, the wrapper then performs any necessary post-processing. Most user functions are designed so that the user can do as little or as much as she likes. Where it is feasible, there are default options that allow the user to do nothing if the default behavior is acceptable. This is not possible in all cases and the user must provide certain functions, such as separation.

In the next section, the user functions will be described in detail. The name of every user written function starts with user_. There are three kinds of arguments:

IN:
An argument containing information that the user might need to perform the function.
OUT:
A pointer to an argument in which the user should return a result (requested data, decision, etc.) of the function.
INOUT:
An argument which contains information the user might need, but also for which the user can change the value.
The return values from each function are as follows:
Return values:

ERROR

Error in the user function. Printing an error message is the user's responsibility. Depending on the work the user function was supposed to do, the error might be ignored (and some default option used), or the process aborts.

USER_AND_PP

The user implemented both the user function and post-processing (post-processing by SYMPHONY will be skipped).

USER_NO_PP

The user implemented the user function only.

DEFAULT

The default option is going to be used (the default is one of the built-in options, SYMPHONY decides which one to use based on initial parameter settings and the execution of the algorithm).

built_in_option1

 
built_in_option2 ... The specified built-in option will be used.

Notes:


next up previous contents
Next: Data Structures Up: Introduction Previous: Source Files
Ted Ralphs
2000-09-08