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))
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)
MtrNode * Mtr_DissolveGroup(MtrNode *group)
MtrNode * Mtr_ReadGroups(FILE *fp, int nleaves)
void Mtr_MakeFirstChild(MtrNode *parent, MtrNode *child)
MtrNode * Mtr_AllocNode(void)
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
MtrNode * Mtr_CreateFirstChild(MtrNode *parent)
#define ABC_NAMESPACE_HEADER_END
void Mtr_DeallocNode(MtrNode *node)
void Mtr_PrintGroups(MtrNode *root, int silent)
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)