1 | |
---|
2 | /* version 3.6. (c) Copyright 1993-2000 by the University of Washington. |
---|
3 | Written by Joseph Felsenstein, Akiko Fuseki, Sean Lamont, and Andrew Keeffe. |
---|
4 | Permission is granted to copy and use this program provided no fee is |
---|
5 | charged for it and provided that this copyright notice is not removed. */ |
---|
6 | |
---|
7 | /* |
---|
8 | disc.h: included in mix, move, penny, dollop, dolmove, dolpenny, |
---|
9 | & clique |
---|
10 | */ |
---|
11 | |
---|
12 | |
---|
13 | /* node and pointptr used in Dollop, Dolmove, Dolpenny, Move, & Clique */ |
---|
14 | |
---|
15 | typedef node **pointptr; |
---|
16 | |
---|
17 | /* node and pointptr used in Mix & Penny */ |
---|
18 | |
---|
19 | typedef struct node2 { /* describes a tip species or an ancestor */ |
---|
20 | struct node2 *next, *back; |
---|
21 | long index; |
---|
22 | boolean tip, bottom,visited;/* present species are tips of tree */ |
---|
23 | bitptr fulstte1, fulstte0; /* see in PROCEDURE fillin */ |
---|
24 | bitptr empstte1, empstte0; /* see in PROCEDURE fillin */ |
---|
25 | bitptr fulsteps,empsteps; |
---|
26 | long xcoord, ycoord, ymin; /* used by printree */ |
---|
27 | long ymax; |
---|
28 | } node2; |
---|
29 | |
---|
30 | typedef node2 **pointptr2; |
---|
31 | |
---|
32 | typedef struct gbit { |
---|
33 | bitptr bits_; |
---|
34 | struct gbit *next; |
---|
35 | } gbit; |
---|
36 | |
---|
37 | typedef struct htrav_vars { |
---|
38 | node *r; |
---|
39 | boolean bottom, nonzero; |
---|
40 | gbit *zerobelow, *onebelow; |
---|
41 | } htrav_vars; |
---|
42 | |
---|
43 | typedef struct htrav_vars2 { |
---|
44 | node2 *r; |
---|
45 | boolean bottom, maybe, nonzero; |
---|
46 | gbit *zerobelow, *onebelow; |
---|
47 | } htrav_vars2; |
---|
48 | |
---|
49 | |
---|
50 | extern long chars, nonodes, nextree, which; |
---|
51 | /* nonodes = number of nodes in tree * |
---|
52 | * chars = number of binary characters */ |
---|
53 | extern steptr weight, extras; |
---|
54 | extern boolean printdata; |
---|
55 | |
---|
56 | #ifndef OLDC |
---|
57 | /*function prototypes*/ |
---|
58 | void inputdata(pointptr, boolean, boolean, FILE *); |
---|
59 | void inputdata2(pointptr2); |
---|
60 | void alloctree(pointptr *); |
---|
61 | void alloctree2(pointptr2 *); |
---|
62 | void setuptree(pointptr); |
---|
63 | void setuptree2(pointptr2); |
---|
64 | void inputancestors(boolean *, boolean *); |
---|
65 | void inputancestorsnew(boolean *, boolean *); |
---|
66 | void printancestors(FILE *, boolean *, boolean *); |
---|
67 | void add(node *, node *, node *, node **, pointptr); |
---|
68 | void add2(node *, node *, node *, node **, boolean, boolean, pointptr); |
---|
69 | |
---|
70 | void add3(node2 *, node2 *, node2 *, node2 **, pointptr2); |
---|
71 | void re_move(node **, node **, node **, pointptr); |
---|
72 | void re_move2(node **, node **, node **, boolean *, pointptr); |
---|
73 | void re_move3(node2 **, node2 **, node2 **, pointptr2); |
---|
74 | void coordinates(node *, long *, double , long *); |
---|
75 | void coordinates2(node2 *, long *); |
---|
76 | void treeout(node *, long, long *, node *); |
---|
77 | void treeout2(node2 *, long *, node2 *); |
---|
78 | void standev(long, long, double, double *, double **, longer); |
---|
79 | void guesstates(Char *); |
---|
80 | |
---|
81 | void freegarbage(gbit **); |
---|
82 | void disc_gnu(gbit **, gbit **); |
---|
83 | void disc_chuck(gbit *, gbit **); |
---|
84 | /*function prototypes*/ |
---|
85 | #endif |
---|