59#ifndef ABC__bdd__mtr__mtr_h
60#define ABC__bdd__mtr__mtr_h
73#define SIZEOF_VOID_P 4
87#define MTR_INLINE __inline__
88# if (__GNUC__ >2 || __GNUC_MINOR__ >=7)
89# define MTR_UNUSED __attribute__ ((unused))
99#define MTR_DEFAULT 0x00000000
100#define MTR_TERMINAL 0x00000001
101#define MTR_SOFT 0x00000002
102#define MTR_FIXED 0x00000004
103#define MTR_NEWNODE 0x00000008
109#if SIZEOF_VOID_P == 8 && SIZEOF_INT == 4
110#define MTR_MAXHIGH (((MtrHalfWord) ~0) >> 1)
112#define MTR_MAXHIGH ((MtrHalfWord) ~0)
125#if SIZEOF_VOID_P == 8 && SIZEOF_INT == 4
153#define MTR_SET(node, flag) (node->flags |= (flag))
154#define MTR_RESET(node, flag) (node->flags &= ~ (flag))
155#define MTR_TEST(node, flag) (node->flags & (flag))
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
int Mtr_SwapGroups(MtrNode *first, MtrNode *second)
MtrNode * Mtr_ReadGroups(FILE *fp, int nleaves)
void Mtr_PrintTree(MtrNode *node)
void Mtr_PrintGroups(MtrNode *root, int silent)
MtrNode * Mtr_InitTree(void)
MtrNode * Mtr_CreateFirstChild(MtrNode *parent)
void Mtr_FreeTree(MtrNode *node)
void Mtr_MakeNextSibling(MtrNode *first, MtrNode *second)
void Mtr_MakeFirstChild(MtrNode *parent, MtrNode *child)
MtrNode * Mtr_AllocNode(void)
MtrNode * Mtr_DissolveGroup(MtrNode *group)
unsigned short MtrHalfWord
MtrNode * Mtr_CopyTree(MtrNode *node, int expansion)
MtrNode * Mtr_CreateLastChild(MtrNode *parent)
void Mtr_MakeLastChild(MtrNode *parent, MtrNode *child)
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_InitGroupTree(int lower, int size)
void Mtr_DeallocNode(MtrNode *node)