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