1 #pragma once 2 3 4 #define OVER_C 8 5 #define ADJACENT_PAIRS 1 6 #define CORR_IN_1_AND_2 2 7 #define ALL_IN_1_AND_2 3 8 #define NO_PAIRING 4 9 #define ALL_IN_FIRST 5 10 #define TREE1 8 11 #define TREE2 9 12 13 #define FULL_MATRIX 11 14 #define VERBOSE 22 15 #define SPARSE 33 16 17 /* Number of columns per block in a matrix output */ 18 #define COLUMNS_PER_BLOCK 10 19 extern int tree_pairing; 20 21 extern Phylip_Char outfilename[FNMLNGTH], intreename[FNMLNGTH], intree2name[FNMLNGTH], outtreename[FNMLNGTH]; 22 extern node *root; 23 24 extern long numopts, outgrno_cons, col, setsz; 25 extern long maxgrp; /* max. no. of groups in all trees found */ 26 27 extern boolean trout, firsttree, noroot, outgropt_cons, didreroot, prntsets, 28 treeprint_cons, goteof, strict, mr, mre, 29 ml; /* initialized all false for Treedist */ 30 extern boolean progress; 31 extern pointarray nodep_cons; 32 extern pointarray treenode; 33 extern group_type **grouping, **grping2, **group2;/* to store groups found */ 34 extern double *lengths, *lengths2; 35 extern long **order, **order2, lasti; 36 extern group_type *fullset; 37 extern node *grbg; 38 extern long tipy; 39 40 extern double **timesseen, **tmseen2, **times2 ; 41 extern double *tchange2; 42 extern double trweight, ntrees, mlfrac; 43 44 typedef struct pattern_elm { 45 group_type *apattern; 46 long *patternsize; 47 double *length; 48 } pattern_elm; 49 50 #define NUM_BUCKETS 100 51 52 typedef struct namenode { 53 struct namenode *next; 54 plotstring naym; 55 int hitCount; 56 } namenode; 57 58 typedef namenode **hashtype; 59 60 extern hashtype hashp; 61 62 63 64 long namesGetBucket(plotstring); 65 void namesAdd(plotstring); 66 boolean namesSearch(plotstring); 67 void namesDelete(plotstring); 68 void namesClearTable(void); 69 void namesCheckTable(void); 70 void missingnameRecurs(node *p); 71 72 73 #ifndef OLDC 74 /* function prototypes */ 75 void consens_starter(const char* filename, double fraction, bool _strict, bool _mre, bool _mr, bool _m1); 76 void consens_free_res(); 77 78 void initconsnode(node **, node **, node *, long, long, long *, long *, 79 initops, pointarray, pointarray, Phylip_Char *, Phylip_Char *, FILE *); 80 void compress(long *); 81 void sort(long); 82 void eliminate(long *, long *); 83 void printset(long); 84 void bigsubset(group_type *, long); 85 void recontraverse(node **, group_type *, long, long *); 86 void reconstruct(long); 87 void coordinates(node *, long *); 88 void drawline(long i); 89 90 void printree(void); 91 void consensus(pattern_elm ***, long); 92 void rehash(void); 93 void enternodeset(node *r); 94 void accumulate(node *); 95 void dupname2(Phylip_Char *, node *, node *); 96 void dupname(node *); 97 void missingname(node *); 98 void gdispose(node *); 99 void initreenode(node *); 100 void reroot(node *, long *); 101 102 void store_pattern (pattern_elm ***, int); 103 boolean samename(naym, plotstring); 104 void reordertips(void); 105 void read_groups (pattern_elm ****, long, long, FILE *); 106 void clean_up_final(void); 107 /* function prototypes */ 108 #endif 109 110 extern long setsz; 111 112 113