1 #ifndef __XNECKLAC_H 2 #define __XNECKLAC_H 3 typedef struct Xneckedge { 4 struct PQ_node *ends[2]; 5 struct PQ_node *cends[2]; 6 double x; 7 int magiclabel; 8 int insystem; 9 int inspanning; 10 int necklabel; 11 struct Xneckedge *next; 12 } Xneckedge; 13 14 typedef struct Xneckedgeptr { 15 struct Xneckedge *this; 16 struct Xneckedgeptr *next; 17 } Xneckedgeptr; 18 19 typedef struct Xeqn { 20 struct Xintptr *lhs; 21 int rhs; 22 struct Xeqn *next; 23 int pivot; 24 int hitdense; 25 } Xeqn; 26 27 typedef struct bin_var { 28 #define VALUE_UNKNOWN (-1) 29 int value; 30 int fixed; 31 struct Xeqn *elim; 32 } bin_var; 33 34 typedef struct bin_system { 35 int nvars; 36 int nfreevars; 37 struct bin_var *vars; 38 struct Xeqn *sparselist; 39 struct Xeqn *denseeqn; 40 } bin_system; 41 42 #ifdef CC_PROTOTYPE_ANSI 43 44 /* ouralloc.c */ 45 46 Xeqn *Xeqnalloc (void); 47 Xneckedgeptr *Xneckedgeptralloc (void); 48 void Xadd_neckedgeptr (Xneckedgeptr **, Xneckedge *); 49 void Xeqnfree (Xeqn *); 50 void Xneckedgeptrfree (Xneckedgeptr *); 51 void Xneckedgeptr_list_free (Xneckedgeptr *); 52 53 #else 54 55 /* ouralloc.c */ 56 57 Xeqn *Xeqnalloc (); 58 Xneckedgeptr *Xneckedgeptralloc (); 59 void Xadd_neckedgeptr (); 60 void Xeqnfree (); 61 void Xneckedgeptrfree (); 62 void Xneckedgeptr_list_free (); 63 64 #endif 65 #endif /* __XNECKLAC_H */ 66