75 #define SIZEOF_VOID_P 4 82 #define MTR_INLINE __inline__ 83 # if (__GNUC__ >2 || __GNUC_MINOR__ >=7) 84 # define MTR_UNUSED __attribute__ ((unused)) 94 #define MTR_DEFAULT 0x00000000 95 #define MTR_TERMINAL 0x00000001 96 #define MTR_SOFT 0x00000002 97 #define MTR_FIXED 0x00000004 98 #define MTR_NEWNODE 0x00000008 104 #if SIZEOF_VOID_P == 8 && SIZEOF_INT == 4 105 #define MTR_MAXHIGH (((MtrHalfWord) ~0) >> 1) 107 #define MTR_MAXHIGH ((MtrHalfWord) ~0) 120 #if SIZEOF_VOID_P == 8 && SIZEOF_INT == 4 148 #define MTR_SET(node, flag) (node->flags |= (flag)) 149 #define MTR_RESET(node, flag) (node->flags &= ~ (flag)) 150 #define MTR_TEST(node, flag) (node->flags & (flag))
unsigned short MtrHalfWord
void Mtr_PrintTree(MtrNode *node)
void Mtr_MakeLastChild(MtrNode *parent, MtrNode *child)
void Mtr_FreeTree(MtrNode *node)
void Mtr_MakeNextSibling(MtrNode *first, MtrNode *second)
void Mtr_ReorderGroups(MtrNode *treenode, int *permutation)
MtrNode * Mtr_DissolveGroup(MtrNode *group)
MtrNode * Mtr_ReadGroups(FILE *fp, int nleaves)
void Mtr_MakeFirstChild(MtrNode *parent, MtrNode *child)
MtrNode * Mtr_AllocNode(void)
MtrNode * Mtr_CreateFirstChild(MtrNode *parent)
void Mtr_DeallocNode(MtrNode *node)
void Mtr_PrintGroups(MtrNode *root, int silent)
int Mtr_PrintGroupedOrder(MtrNode *root, int *invperm, FILE *fp)
MtrNode * Mtr_InitGroupTree(int lower, int size)
MtrNode * Mtr_InitTree(void)
MtrNode * Mtr_CreateLastChild(MtrNode *parent)
int Mtr_SwapGroups(MtrNode *first, MtrNode *second)
MtrNode * Mtr_MakeGroup(MtrNode *root, unsigned int low, unsigned int high, unsigned int flags)
MtrNode * Mtr_FindGroup(MtrNode *root, unsigned int low, unsigned int high)
MtrNode * Mtr_CopyTree(MtrNode *node, int expansion)