int user_pack_cg_data(void *user, void **user_cg)
The user has to send all problem-specific data that will be needed by the cut generator for separation. This is one of the few places where the user will need to worry about the configuration of the modules. If either the tree manager, the LP, or the cut generator are running as a separate process (either COMPILE_IN_LP, COMPILE_IN_TM, or COMPILE_IN_CG are FALSE in the make file), then the data will be sent and received through message-passing. See user_receive_cg_data() for more discussion. Otherwise, it can be copied over directly to the user-defined data structure for the CG. In the latter case, *user_cg is a pointer to the user-defined data structure for the CG that must be allocated and initialized. For a discussion of message-passing in SYMPHONY, see Section 1.7. The code for the two cases is put in the same source file by use of #ifdef statements. See the comments in the code stub for this function for more details.
void *user | IN | Pointer to the user-defined data structure. |
void **user_cg | OUT | Pointer to the user-defined data structure for the cut generator process. |
ERROR | Error. SYMPHONY stops. |
USER_NO_PP | Packing is done. |