00001 //===========================================================================// 00002 // This file is part of the Decomp Solver Framework. // 00003 // // 00004 // Decomp is distributed under the Common Public License as part of the // 00005 // COIN-OR repository (http://www.coin-or.org). // 00006 // // 00007 // Author: Matthew Galati, Lehigh University // 00008 // // 00009 // Copyright (C) 2002-2015, Lehigh University, Matthew Galati, and Ted Ralphs// 00010 // All Rights Reserved. // 00011 //===========================================================================// 00012 00013 #ifndef TSP_CONCORDEI_INCLUDED 00014 #define TSP_CONCORDEI_INCLUDED 00015 00016 // --------------------------------------------------------------------- // 00017 typedef struct CCtsp_skeleton { 00018 int atomcount; 00019 int * atoms; 00020 } CCtsp_skeleton; 00021 00022 typedef struct CCtsp_segment { 00023 int lo; 00024 int hi; 00025 } CCtsp_segment; 00026 00027 typedef struct CCtsp_lpclique { 00028 int segcount; 00029 struct CCtsp_segment * nodes; 00030 int hashnext; 00031 int refcount; 00032 } CCtsp_lpclique; 00033 00034 typedef struct CCtsp_lpcut_in { 00035 int cliquecount; 00036 int dominocount; 00037 int rhs; 00038 char sense; 00039 char branch; 00040 CCtsp_lpclique *cliques; 00041 struct CCtsp_lpdomino *dominos; 00042 CCtsp_skeleton skel; 00043 struct CCtsp_lpcut_in *next; 00044 struct CCtsp_lpcut_in *prev; 00045 } CCtsp_lpcut_in; 00046 00047 #define CC_FOREACH_NODE_IN_CLIQUE(i,c,tmp) \ 00048 for(tmp=0;tmp<(c).segcount;tmp++) \ 00049 for(i=(c).nodes[tmp].lo;i<=(c).nodes[tmp].hi;i++) 00050 00051 00052 00053 00054 #if 0 00055 00056 00057 typedef struct CCtsp_lpdomino { 00058 CCtsp_lpclique sets[2]; 00059 int hashnext; 00060 int refcount; 00061 } CCtsp_lpdomino; 00062 00063 #endif 00064 00065 00066 extern int CCtsp_exact_subtours (CCtsp_lpcut_in ** cuts, 00067 int * cutcount, 00068 int ncount, 00069 int ecount, 00070 int * elist, 00071 double * x); 00072 extern void 00073 CCtsp_free_lpcut_in (CCtsp_lpcut_in *c); 00074 00075 00076 #endif