~verifypn-cpn/verifypn/col_weight_fix

« back to all changes in this revision

Viewing changes to lpsolve/lp_mipbb.h

  • Committer: Jonas Finnemann Jensen
  • Date: 2013-10-19 05:57:48 UTC
  • Revision ID: jopsen@gmail.com-20131019055748-ujmf009kwz6k6x3v
Support for osx32 and osx64 bit builds, we now have ugly binaries in source tree

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef HEADER_lp_mipbb
 
2
#define HEADER_lp_mipbb
 
3
 
 
4
#include "lp_types.h"
 
5
#include "lp_utils.h"
 
6
 
 
7
 
 
8
/* Bounds storage for B&B routines */
 
9
typedef struct _BBrec
 
10
{
 
11
  struct    _BBrec *parent;
 
12
  struct    _BBrec *child;
 
13
  lprec     *lp;
 
14
  int       varno;
 
15
  int       vartype;
 
16
  int       lastvarcus;            /* Count of non-int variables of the previous branch */
 
17
  int       lastrcf;
 
18
  int       nodesleft;
 
19
  int       nodessolved;
 
20
  int       nodestatus;
 
21
  REAL      noderesult;
 
22
  REAL      lastsolution;          /* Optimal solution of the previous branch */
 
23
  REAL      sc_bound;
 
24
  REAL      *upbo,   *lowbo;
 
25
  REAL      UPbound, LObound;
 
26
  int       UBtrack, LBtrack;      /* Signals that incoming bounds were changed */
 
27
  MYBOOL    contentmode;           /* Flag indicating if we "own" the bound vectors */
 
28
  MYBOOL    sc_canset;
 
29
  MYBOOL    isSOS;
 
30
  MYBOOL    isGUB;
 
31
  int       *varmanaged;           /* Extended list of variables managed by this B&B level */
 
32
  MYBOOL    isfloor;               /* State variable indicating the active B&B bound */
 
33
  MYBOOL    UBzerobased;           /* State variable indicating if bounds have been rebased */
 
34
} BBrec;
 
35
 
 
36
#ifdef __cplusplus
 
37
extern "C" {
 
38
#endif
 
39
 
 
40
STATIC BBrec *create_BB(lprec *lp, BBrec *parentBB, MYBOOL dofullcopy);
 
41
STATIC BBrec *push_BB(lprec *lp, BBrec *parentBB, int varno, int vartype, int varcus);
 
42
STATIC MYBOOL initbranches_BB(BBrec *BB);
 
43
STATIC MYBOOL fillbranches_BB(BBrec *BB);
 
44
STATIC MYBOOL nextbranch_BB(BBrec *BB);
 
45
STATIC MYBOOL strongbranch_BB(lprec *lp, BBrec *BB, int varno, int vartype, int varcus);
 
46
STATIC MYBOOL initcuts_BB(lprec *lp);
 
47
STATIC int updatecuts_BB(lprec *lp);
 
48
STATIC MYBOOL freecuts_BB(lprec *lp);
 
49
STATIC BBrec *findself_BB(BBrec *BB);
 
50
STATIC int solve_LP(lprec *lp, BBrec *BB);
 
51
STATIC int rcfbound_BB(BBrec *BB, int varno, MYBOOL isINT, REAL *newbound, MYBOOL *isfeasible);
 
52
STATIC MYBOOL findnode_BB(BBrec *BB, int *varno, int *vartype, int *varcus);
 
53
STATIC int solve_BB(BBrec *BB);
 
54
STATIC MYBOOL free_BB(BBrec **BB);
 
55
STATIC BBrec *pop_BB(BBrec *BB);
 
56
 
 
57
STATIC int run_BB(lprec *lp);
 
58
 
 
59
#ifdef __cplusplus
 
60
 }
 
61
#endif
 
62
 
 
63
#endif /* HEADER_lp_mipbb */
 
64