44 cmp = cll+clr+crl+crr;
105 son_info[sidx++] = rbtree(nsonp->
node, root);
112 while (multifurc>1) {
114 for (
int sidx1 = 0; sidx1<multifurc; sidx1 += 2) {
116 if (sidx2<multifurc) {
144 freenull(son_info[sidx1]);
145 freenull(son_info[sidx2]);
147 son_info[didx++] = sinfo;
150 son_info[didx++] = son_info[sidx1];
164 SizeAwareTree *ConsensusTree::rb_gettree(
const NT_NODE *tree) {
167 SizeAwareTree *satree =
DOWNCAST(SizeAwareTree*, info->
node);
168 satree->announce_tree_constructed();
void set_bootstrap(double bootstrap)
void GB_sort(void **array, size_t first, size_t behind_last, gb_compare_function compare, void *client_data)
int ntree_count_sons(const NT_NODE *tree)
char * ARB_strdup(const char *str)
static int RB_INFO_order(const void *v1, const void *v2, void *)
#define DOWNCAST(totype, expr)
virtual TreeNode * makeNode() const =0
double get_weight() const
TYPE * ARB_calloc(size_t nelem)
#define ASSERT_VALID_TREE(tree)
static int GBT_TREE_order(const TreeNode *t1, const TreeNode *t2)
const char * get_remark() const
static int info[maxsites+1]
const char * get_species_name(int idx) const