source: branches/profile/GDE/PHYLIP/discrete.h

Last change on this file was 2175, checked in by westram, 20 years ago

upgrade to PHYLIP 3.6

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.4 KB
Line 
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  discrete.h: included in pars
9*/
10
11typedef struct gbases {
12  discbaseptr discbase;
13  struct gbases *next;
14} gbases;
15
16struct LOC_hyptrav {
17  boolean bottom;
18  node *r;
19  discbaseptr hypset;
20  boolean maybe, nonzero;
21  unsigned char tempset, anc;
22} ;
23
24
25extern long nonodes, endsite, outgrno, nextree, which;
26extern boolean interleaved, printdata, outgropt, treeprint, dotdiff;
27extern steptr weight, category, alias, location, ally;
28extern sequence y, convtab;
29
30#ifndef OLDC
31/*function prototypes*/
32void   inputdata(long);
33void   alloctree(pointarray *, long, boolean);
34void   setuptree(pointarray, long, boolean);
35void   alloctip(node *, long *, unsigned char *);
36void   sitesort(long, steptr);
37void   sitecombine(long);
38void   sitescrunch(long);
39
40void   makevalues(pointarray, long *, unsigned char *, boolean);
41void   fillin(node *, node *, node *);
42long   getlargest(long *);
43void   multifillin(node *, node *, long);
44void   sumnsteps(node *, node *, node *, long, long);
45void   sumnsteps2(node *, node *, node *, long, long, long *);
46void   multisumnsteps(node *, node *, long, long, long *);
47void   multisumnsteps2(node *);
48void   findoutgroup(node *, boolean *);
49boolean alltips(node *, node *);
50
51void   gdispose(node *, node **, pointarray);
52void   preorder(node *, node *, node *, node *, node *, node *, long );
53void   updatenumdesc(node *, node *, long);
54void   add(node *, node *, node *, node **, boolean, pointarray,
55           node **, long *, unsigned char *);
56void   findbelow(node **, node *, node *);
57void   re_move(node *, node **, node **, boolean, pointarray,
58               node **, long *, unsigned char *);
59void   postorder(node *);
60void   getnufork(node **, node **, pointarray, long *, unsigned char *);
61void   reroot(node *, node *);
62void   reroot2(node *, node *);
63
64void   reroot3(node *, node *, node *, node *, node **);
65void   savetraverse(node *);
66void   newindex(long, node *);
67void   flipindexes(long, pointarray);
68boolean parentinmulti(node *);
69long   sibsvisited(node *, long *);
70long   smallest(node *, long *);
71void   bintomulti(node **, node **, node **, long *, unsigned char *);
72void   backtobinary(node **, node *, node **);
73boolean outgrin(node *, node *);
74
75void   flipnodes(node *, node *);
76void   moveleft(node *, node *, node **);
77void   savetree(node *, long *, pointarray, node **, long *,
78                unsigned char *);
79void   addnsave(node *, node *, node *, node **, node **, boolean multf,
80                pointarray , long *, long *, unsigned char *);
81void   addbestever(long *, long *, long, boolean, long *, bestelm *);
82void   addtiedtree(long, long *, long, boolean, long *, bestelm *);
83void   clearcollapse(pointarray);
84void   clearbottom(pointarray);
85void   collabranch(node *,node *,node *);
86boolean allcommonbases(node *, node *, boolean *);
87
88void    findbottom(node *, node **);
89boolean moresteps(node *, node *);
90boolean passdown(node *, node *, node *, node *, node *, node *, node *,
91                node *, node *, boolean);
92boolean trycollapdesc(node *, node *, node *, node *, node *, node *,
93                node *, node *, node *, boolean ,long *, unsigned char *);
94void   setbottom(node *);
95boolean zeroinsubtree(node *, node *, node *, node *, node *, node *,
96                node *, node *, boolean , node *, long *, unsigned char *);
97boolean collapsible(node *, node *, node *, node *, node *, node *, node *, 
98                node *, boolean , node *, long *, unsigned char *, pointarray);
99void   replaceback(node **,node *,node *,node **,long *,unsigned char *);
100void   putback(node *, node *, node *, node **);
101void   savelocrearr(node *, node *, node *, node *, node *, node *,
102                node *, node *, node *, node **, long, long *, boolean, boolean,
103                boolean *, long *, bestelm *, pointarray, node **, long *,
104                unsigned char *);
105
106void   clearvisited(pointarray);
107void   hyprint(long,long,struct LOC_hyptrav *, pointarray);
108void   gnubase(gbases **, gbases **, long);
109void   chuckbase(gbases *, gbases **);
110void   hyptrav(node *, discbaseptr, long, long, boolean, pointarray,
111                gbases **);
112void   hypstates(long, node *, pointarray, gbases **);
113void   initbranchlen(node *);
114void   initmin(node *, long, boolean);
115void   initbase(node *, long);
116void   inittreetrav(node *, long);
117
118void   compmin(node *, node *);
119void   minpostorder(node *, pointarray);
120void   branchlength(node *, node *, double *, pointarray);
121void   printbranchlengths(node *);
122void   branchlentrav(node *, node *, long, long, double *, pointarray);
123void   treelength(node *, long, pointarray);
124void   coordinates(node *, long *, double , long *);
125void   drawline(long, double, node *);
126void   printree(node *, double);
127void   writesteps(long, boolean, steptr, node *);
128
129void   treeout(node *, long, long *, node *);
130void   drawline3(long, double, node *);
131void   standev(long, long, long, double, double *, long **, longer);
132void   freetip(node *);
133void   freenontip(node *);
134void   freenodes(long, pointarray);
135void   freenode(node **);
136void   freetree(long, pointarray);
137void   freegarbage(gbases **);
138void   freegrbg(node **);
139void treeout3(node *p, long nextree, long *col, node *root);
140/*function prototypes*/
141#endif
Note: See TracBrowser for help on using the repository browser.