put_bb_nodefunc

# put_bb_nodefunc Allows to set a user function that specifies which non-integer variable to select next to make integer in the B&B solve. void put_bb_nodefunc(lprec *lp, lphandleint_intfunc newnode, void *bbnodehandle); Return Value put_bb_nodefunc has no return value. Parameters lp Pointer to previously created lp model. See return value of make_lp, copy_lp, read_lp, read_LP, read_mps, read_freemps, read_MPS, read_freeMPS, read_XLI newnode The node selection routine. typedef int (__WINAPI lphandleint_intfunc)(lprec *lp, void *bb_nodehandle, int vartype); The routine must return the node (column number) to make integer. vartype is at this moment always equal to BB_INT (1). When 0 is returned then it indicates that all variables are integer. When a negative value is returned, lp_solve will determine the next variable to make integer as if the routine is not set. Note the __WINAPI attribute. This is important under Windows. It ensures __stdcall calling convention which is required. bb_nodehandle A parameter that will be provided to the node selection routine. Remarks Allows to set a user function that specifies which non-integer variable to select next to make integer in the B&B solve. Via this routine the user can implement his own rule to select the next non-integer variable to make integer. This overrules the setting of set_bb_rule. Example
    #include <stdio.h>
    #include <stdlib.h>
    #include "lp_lib.h"

    int __WINAPI nodefunction(lprec *lp, void *bb_nodehandle, int vartype)
    {
     int node = -1;

     /* determine node to make integer */

     return(node);
    }

    int main(void)
    {
      lprec *lp;

      /* Create a new LP model */
      lp = make_lp(0, 1);
      if(lp == NULL) {
        fprintf(stderr, "Unable to create new LP model\n");
        return(1);
      }

      put_bb_nodefunc(lp, nodefunction, NULL);

      solve(lp);

      delete_lp(lp);
      return(0);
    }
lp_solve API reference See Also make_lp, copy_lp, read_lp, read_LP, read_mps, read_freemps, read_MPS, read_freeMPS, read_XLI, set_bb_rule