diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2007-09-30 08:01:00 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2007-09-30 08:01:00 -0700 |
commit | e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7 (patch) | |
tree | de3ffe87c3e17950351e3b7d97fa18318bd5ea9a /src/bdd/mtr/mtr.h | |
parent | 7d7e60f2dc84393cd4c5db22d2eaf7b1fb1a79b2 (diff) | |
download | abc-e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7.tar.gz abc-e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7.tar.bz2 abc-e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7.zip |
Version abc70930
Diffstat (limited to 'src/bdd/mtr/mtr.h')
-rw-r--r-- | src/bdd/mtr/mtr.h | 173 |
1 files changed, 0 insertions, 173 deletions
diff --git a/src/bdd/mtr/mtr.h b/src/bdd/mtr/mtr.h deleted file mode 100644 index 201329ae..00000000 --- a/src/bdd/mtr/mtr.h +++ /dev/null @@ -1,173 +0,0 @@ -/**CHeaderFile***************************************************************** - - FileName [mtr.h] - - PackageName [mtr] - - Synopsis [Multiway-branch tree manipulation] - - Description [This package provides two layers of functions. Functions - of the lower level manipulate multiway-branch trees, implemented - according to the classical scheme whereby each node points to its - first child and its previous and next siblings. These functions are - collected in mtrBasic.c.<p> - Functions of the upper layer deal with group trees, that is the trees - used by group sifting to represent the grouping of variables. These - functions are collected in mtrGroup.c.] - - SeeAlso [The CUDD package documentation; specifically on group - sifting.] - - Author [Fabio Somenzi] - - Copyright [This file was created at the University of Colorado at - Boulder. The University of Colorado at Boulder makes no warranty - about the suitability of this software for any purpose. It is - presented on an AS IS basis.] - - Revision [$Id: mtr.h,v 1.1.1.1 2003/02/24 22:24:02 wjiang Exp $] - -******************************************************************************/ - -#ifndef __MTR -#define __MTR - -/*---------------------------------------------------------------------------*/ -/* Nested includes */ -/*---------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------*/ -/* Constant declarations */ -/*---------------------------------------------------------------------------*/ - -#ifndef SIZEOF_VOID_P -#define SIZEOF_VOID_P 4 -#endif -#ifndef SIZEOF_INT -#define SIZEOF_INT 4 -#endif - -#undef CONST -#if defined(__STDC__) || defined(__cplusplus) -#define CONST const -#else /* !(__STDC__ || __cplusplus) */ -#define CONST -#endif /* !(__STDC__ || __cplusplus) */ - -/* These are potential duplicates. */ -#ifndef EXTERN -# ifdef __cplusplus -# define EXTERN extern "C" -# else -# define EXTERN extern -# endif -#endif -#ifndef ARGS -# if defined(__STDC__) || defined(__cplusplus) -# define ARGS(protos) protos /* ANSI C */ -# else /* !(__STDC__ || __cplusplus) */ -# define ARGS(protos) () /* K&R C */ -# endif /* !(__STDC__ || __cplusplus) */ -#endif - -#if defined(__GNUC__) -#define MTR_INLINE __inline__ -# if (__GNUC__ >2 || __GNUC_MINOR__ >=7) -# define MTR_UNUSED __attribute__ ((unused)) -# else -# define MTR_UNUSED -# endif -#else -#define MTR_INLINE -#define MTR_UNUSED -#endif - -/* Flag definitions */ -#define MTR_DEFAULT 0x00000000 -#define MTR_TERMINAL 0x00000001 -#define MTR_SOFT 0x00000002 -#define MTR_FIXED 0x00000004 -#define MTR_NEWNODE 0x00000008 - -/* MTR_MAXHIGH is defined in such a way that on 32-bit and 64-bit -** machines one can cast a value to (int) without generating a negative -** number. -*/ -#if SIZEOF_VOID_P == 8 && SIZEOF_INT == 4 -#define MTR_MAXHIGH (((MtrHalfWord) ~0) >> 1) -#else -#define MTR_MAXHIGH ((MtrHalfWord) ~0) -#endif - - -/*---------------------------------------------------------------------------*/ -/* Stucture declarations */ -/*---------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------*/ -/* Type declarations */ -/*---------------------------------------------------------------------------*/ - -#if SIZEOF_VOID_P == 8 && SIZEOF_INT == 4 -typedef unsigned int MtrHalfWord; -#else -typedef unsigned short MtrHalfWord; -#endif - -typedef struct MtrNode { - MtrHalfWord flags; - MtrHalfWord low; - MtrHalfWord size; - MtrHalfWord index; - struct MtrNode *parent; - struct MtrNode *child; - struct MtrNode *elder; - struct MtrNode *younger; -} MtrNode; - - -/*---------------------------------------------------------------------------*/ -/* Variable declarations */ -/*---------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------*/ -/* Macro declarations */ -/*---------------------------------------------------------------------------*/ - -/* Flag manipulation macros */ -#define MTR_SET(node, flag) (node->flags |= (flag)) -#define MTR_RESET(node, flag) (node->flags &= ~ (flag)) -#define MTR_TEST(node, flag) (node->flags & (flag)) - - -/**AutomaticStart*************************************************************/ - -/*---------------------------------------------------------------------------*/ -/* Function prototypes */ -/*---------------------------------------------------------------------------*/ - -EXTERN MtrNode * Mtr_AllocNode ARGS(()); -EXTERN void Mtr_DeallocNode ARGS((MtrNode *node)); -EXTERN MtrNode * Mtr_InitTree ARGS(()); -EXTERN void Mtr_FreeTree ARGS((MtrNode *node)); -EXTERN MtrNode * Mtr_CopyTree ARGS((MtrNode *node, int expansion)); -EXTERN void Mtr_MakeFirstChild ARGS((MtrNode *parent, MtrNode *child)); -EXTERN void Mtr_MakeLastChild ARGS((MtrNode *parent, MtrNode *child)); -EXTERN MtrNode * Mtr_CreateFirstChild ARGS((MtrNode *parent)); -EXTERN MtrNode * Mtr_CreateLastChild ARGS((MtrNode *parent)); -EXTERN void Mtr_MakeNextSibling ARGS((MtrNode *first, MtrNode *second)); -EXTERN void Mtr_PrintTree ARGS((MtrNode *node)); -EXTERN MtrNode * Mtr_InitGroupTree ARGS((int lower, int size)); -EXTERN MtrNode * Mtr_MakeGroup ARGS((MtrNode *root, unsigned int low, unsigned int high, unsigned int flags)); -EXTERN MtrNode * Mtr_DissolveGroup ARGS((MtrNode *group)); -EXTERN MtrNode * Mtr_FindGroup ARGS((MtrNode *root, unsigned int low, unsigned int high)); -EXTERN int Mtr_SwapGroups ARGS((MtrNode *first, MtrNode *second)); -EXTERN void Mtr_PrintGroups ARGS((MtrNode *root, int silent)); -EXTERN MtrNode * Mtr_ReadGroups ARGS((FILE *fp, int nleaves)); - -/**AutomaticEnd***************************************************************/ - -#endif /* __MTR */ |