Biddy  1.8.1
An academic Binary Decision Diagrams package
biddyInt.h File Reference

File biddyInt.h contains declaration of internal data structures. More...

#include "biddy.h"
#include <assert.h>
#include <string.h>
#include <ctype.h>
#include <gmp.h>
Include dependency graph for biddyInt.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define BIDDYEXTENDEDSTATS_NO
 
#define BIDDYEVENTLOG_NO
 
#define ZF_LOGI(x)
 
#define LEGACY_DOT
 
#define UINTPTR   uintptr_t
 
#define UINTPTRSIZE   (8*sizeof(UINTPTR))
 
#define BIDDYVARMAX   6144
 
#define LINESIZE   999 /* maximum length of each input line read */
 
#define BUFSIZE   99999 /* maximum length of a buffer */
 
#define INOUTNUM   999 /* maximum number of inputs and outputs */
 
#define REGNUM   9999 /* maximum number of registers */
 
#define TOKENNUM   9999 /* maximum number of tokens */
 
#define GATENUM   9999 /* maximum number of gates */
 
#define LINENUM   99999 /* maximum number of lines */
 
#define WIRENUM   99999 /* maximum number of wires */
 
#define biddyNull   ((Biddy_Edge)NULL)
 
#define GET_ORDER(orderingtable, X, Y)   ((orderingtable)[X][Y/UINTPTRSIZE]&(((UINTPTR) 1)<<(Y%UINTPTRSIZE)))!=0
 
#define SET_ORDER(orderingtable, X, Y)   (orderingtable)[X][Y/UINTPTRSIZE] |= (((UINTPTR) 1)<<(Y%UINTPTRSIZE))
 
#define CLEAR_ORDER(orderingtable, X, Y)   (orderingtable)[X][Y/UINTPTRSIZE] &= (~(((UINTPTR) 1)<<(Y%UINTPTRSIZE)))
 
#define biddyManagerName   ((Biddy_String)(MNG[0]))
 
#define biddyManagerName1   ((Biddy_String)(MNG1[0]))
 
#define biddyManagerName2   ((Biddy_String)(MNG2[0]))
 
#define biddyManagerType   (*((short int*)(MNG[1])))
 
#define biddyManagerType1   (*((short int*)(MNG1[1])))
 
#define biddyManagerType2   (*((short int*)(MNG2[1])))
 
#define biddyTerminal   ((void *)(MNG[2]))
 
#define biddyTerminal1   ((void *)(MNG1[2]))
 
#define biddyTerminal2   ((void *)(MNG2[2]))
 
#define biddyZero   ((Biddy_Edge)(MNG[3]))
 
#define biddyZero1   ((Biddy_Edge)(MNG1[3]))
 
#define biddyZero2   ((Biddy_Edge)(MNG2[3]))
 
#define biddyOne   ((Biddy_Edge)(MNG[4]))
 
#define biddyOne1   ((Biddy_Edge)(MNG1[4]))
 
#define biddyOne2   ((Biddy_Edge)(MNG2[4]))
 
#define biddyNodeTable   (*((BiddyNodeTable*)(MNG[5])))
 
#define biddyNodeTable1   (*((BiddyNodeTable*)(MNG1[5])))
 
#define biddyNodeTable2   (*((BiddyNodeTable*)(MNG2[5])))
 
#define biddyVariableTable   (*((BiddyVariableTable*)(MNG[6])))
 
#define biddyVariableTable1   (*((BiddyVariableTable*)(MNG1[6])))
 
#define biddyVariableTable2   (*((BiddyVariableTable*)(MNG2[6])))
 
#define biddyFormulaTable   (*((BiddyFormulaTable*)(MNG[7])))
 
#define biddyFormulaTable1   (*((BiddyFormulaTable*)(MNG1[7])))
 
#define biddyFormulaTable2   (*((BiddyFormulaTable*)(MNG2[7])))
 
#define biddyOPCache   (*((BiddyOp3CacheTable*)(MNG[8])))
 
#define biddyOPCache1   (*((BiddyOp3CacheTable*)(MNG1[8])))
 
#define biddyOPCache2   (*((BiddyOp3CacheTable*)(MNG2[8])))
 
#define biddyEACache   (*((BiddyOp3CacheTable*)(MNG[9])))
 
#define biddyEACache1   (*((BiddyOp3CacheTable*)(MNG1[9])))
 
#define biddyEACache2   (*((BiddyOp3CacheTable*)(MNG2[9])))
 
#define biddyRCCache   (*((BiddyOp3CacheTable*)(MNG[10])))
 
#define biddyRCCache1   (*((BiddyOp3CacheTable*)(MNG1[10])))
 
#define biddyRCCache2   (*((BiddyOp3CacheTable*)(MNG2[10])))
 
#define biddyReplaceCache   (*((BiddyKeywordCacheTable*)(MNG[11])))
 
#define biddyReplaceCache1   (*((BiddyKeywordCacheTable*)(MNG1[11])))
 
#define biddyReplaceCache2   (*((BiddyKeywordCacheTable*)(MNG2[11])))
 
#define biddyCacheList   (*((BiddyCacheList**)(MNG[12])))
 
#define biddyCacheList1   (*((BiddyCacheList**)(MNG1[12])))
 
#define biddyCacheList2   (*((BiddyCacheList**)(MNG2[12])))
 
#define biddyFreeNodes   (*((BiddyNode**)(MNG[13])))
 
#define biddyFreeNodes1   (*((BiddyNode**)(MNG1[13])))
 
#define biddyFreeNodes2   (*((BiddyNode**)(MNG2[13])))
 
#define biddyOrderingTable   (*((BiddyOrderingTable*)(MNG[14])))
 
#define biddyOrderingTable1   (*((BiddyOrderingTable*)(MNG1[14])))
 
#define biddyOrderingTable2   (*((BiddyOrderingTable*)(MNG2[14])))
 
#define biddySystemAge   (*((unsigned int*)(MNG[15])))
 
#define biddySystemAge1   (*((unsigned int*)(MNG1[15])))
 
#define biddySystemAge2   (*((unsigned int*)(MNG2[15])))
 
#define biddySelect   (*((unsigned short int*)(MNG[16])))
 
#define biddySelect1   (*((unsigned short int*)(MNG1[16])))
 
#define biddySelect2   (*((unsigned short int*)(MNG2[16])))
 

Variables

Biddy_Manager biddyAnonymousManager
 
BiddyLocalInfo * biddyLocalInfo
 

Detailed Description

Description

PackageName [Biddy]
Synopsis    [Biddy provides data structures and algorithms for the
             representation and manipulation of Boolean functions with
             ROBDDs, 0-sup-BDDs, and TZBDDs. A hash table is used for quick
             search of nodes. Complement edges decreases the number of
             nodes. An automatic garbage collection with a system age is
             implemented. Variable swapping and sifting are implemented.]

FileName    [biddyInt.h]
Revision    [$Revision: 454 $]
Date        [$Date: 2018-07-02 20:10:14 +0200 (pon, 02 jul 2018) $]
Authors     [Robert Meolic (robert.meolic@um.si),
             Ales Casar (ales@homemade.net)]

Copyright

Copyright (C) 2006, 2018 UM FERI, Koroska cesta 46, SI-2000 Maribor, Slovenia

Biddy is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Biddy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

More info

See also: biddy.h

Definition in file biddyInt.h.