Biddy  1.8.1
An academic Binary Decision Diagrams package
biddy.h
Go to the documentation of this file.
1 /***************************************************************************/
43 #ifndef _BIDDY
44 #define _BIDDY
45 
46 #include <stdio.h>
47 #include <stdlib.h>
48 #include <stdint.h>
49 #include <stdarg.h>
50 #include <time.h>
51 
52 /* ON MS WINDOWS + MINGW THERE HAS TO BE DEFINED MINGW */
53 /* ON GNU/LINUX THERE HAS TO BE DEFINED UNIX */
54 /* ON MACOSX THERE HAS TO BE DEFINED MACOSX */
55 
56 #ifdef UNIX
57 # ifndef EXTERN
58 # define EXTERN extern
59 # endif
60 # ifndef DATAEXTERN
61 # define DATAEXTERN extern
62 # endif
63 #endif
64 
65 #ifdef MACOSX
66 # ifndef EXTERN
67 # define EXTERN extern
68 # endif
69 # ifndef DATAEXTERN
70 # define DATAEXTERN extern
71 # endif
72 #endif
73 
74 #if defined(MINGW) || defined(_MSC_VER)
75 # ifdef BUILD_BIDDY
76 # undef EXTERN
77 # define EXTERN __declspec (dllexport)
78 # undef DATAEXTERN
79 # define DATAEXTERN extern __declspec (dllexport)
80 # else
81 # ifdef USE_BIDDY
82 # undef EXTERN
83 # define EXTERN __declspec (dllimport)
84 # undef DATAEXTERN
85 # define DATAEXTERN __declspec (dllimport)
86 # else
87 # undef EXTERN
88 # define EXTERN extern
89 # undef DATAEXTERN
90 # define DATAEXTERN extern
91 # endif
92 # endif
93 #endif
94 
95 /*----------------------------------------------------------------------------*/
96 /* Constant definitions */
97 /*----------------------------------------------------------------------------*/
98 
99 #ifndef TRUE
100 # define TRUE (0 == 0)
101 #endif
102 #ifndef FALSE
103 # define FALSE !TRUE
104 #endif
105 
106 /* Supported BDD types */
107 
108 #define BIDDYTYPEOBDD 1
109 #define BIDDYTYPENAMEOBDD "ROBDD"
110 
111 #define BIDDYTYPEOBDDC 2
112 #define BIDDYTYPENAMEOBDDC "ROBDD WITH COMPLEMENTED EDGES"
113 
114 #define BIDDYTYPEZBDD 3
115 #define BIDDYTYPENAMEZBDD "ZBDD"
116 
117 #define BIDDYTYPEZBDDC 4
118 #define BIDDYTYPENAMEZBDDC "ZBDD WITH COMPLEMENTED EDGES"
119 
120 #define BIDDYTYPETZBDD 5
121 #define BIDDYTYPENAMETZBDD "TAGGED ZBDD"
122 
123 #define BIDDYTYPETZBDDC 6
124 #define BIDDYTYPENAMETZBDDC "TAGGED ZBDD WITH COMPLEMENTED EDGES"
125 
126 #define BIDDYTYPEOFDD 7
127 #define BIDDYTYPENAMEOFDD "ROFDD"
128 
129 #define BIDDYTYPEOFDDC 8
130 #define BIDDYTYPENAMEOFDDC "ROFDD WITH COMPLEMENTED EDGES"
131 
132 #define BIDDYTYPEZFDD 9
133 #define BIDDYTYPENAMEZFDD "ZFDD"
134 
135 #define BIDDYTYPEZFDDC 10
136 #define BIDDYTYPENAMEZFDDC "ZFDD WITH COMPLEMENTED EDGES"
137 
138 #define BIDDYTYPETZFDD 11
139 #define BIDDYTYPENAMETZFDD "TZFDD"
140 
141 #define BIDDYTYPETZFDDC 12
142 #define BIDDYTYPENAMETZFDDC "TZFDD WITH COMPLEMENTED EDGES"
143 
144 /*----------------------------------------------------------------------------*/
145 /* Macro definitions */
146 /*----------------------------------------------------------------------------*/
147 
149 /* null edge is hardcoded since Biddy v1.4 */
150 #define Biddy_IsNull(f) (f == NULL)
151 
153 /* succesors should be the third and the fourth field in BiddyNode */
154 /* non-terminal nodes should not have null edges as successors */
155 /* for reduced (minimal) OBDD and OFDD this means that the represented function is 0 or 1 */
156 /* for TZBDD, true is returned also for tagged edges to terminal node! */
157 #if UINTPTR_MAX == 0xffffffffffffffff
158 #define Biddy_IsTerminal(f) ((((void**)((uintptr_t) f & 0x0000fffffffffffe))[2] == NULL) && (((void**)((uintptr_t) f & 0x0000fffffffffffe))[3] == NULL))
159 #else
160 #define Biddy_IsTerminal(f) ((((void**)((uintptr_t) f & ~((uintptr_t) 1)))[2] == NULL) && (((void**)((uintptr_t) f & ~((uintptr_t) 1)))[3] == NULL))
161 #endif
162 
164 /* for OBDDs and OFDDs this means that represented functions are equal or inverted */
165 #define Biddy_IsEqvPointer(f,g) (((uintptr_t) f & ~((uintptr_t) 1)) == ((uintptr_t) g & ~((uintptr_t) 1)))
166 
168 #define Biddy_GetMark(f) (((uintptr_t) f & (uintptr_t) 1) != 0)
169 
171 #define Biddy_SetMark(f) (f = (Biddy_Edge) ((uintptr_t) f | (uintptr_t) 1))
172 
174 #define Biddy_ClearMark(f) (f = (Biddy_Edge) ((uintptr_t) f & ~((uintptr_t) 1)))
175 
177 #define Biddy_InvertMark(f) (f = (Biddy_Edge) ((uintptr_t) f ^ (uintptr_t) 1))
178 
180 /* for OBDD and OFDD this is the same as Biddy_Not */
181 #define Biddy_Inv(f) ((Biddy_Edge) ((uintptr_t) f ^ (uintptr_t) 1))
182 
184 #define Biddy_InvCond(f,c) (c ? ((Biddy_Edge) ((uintptr_t) f ^ (uintptr_t) 1)) : f)
185 
187 #define Biddy_Regular(f) ((Biddy_Edge) ((uintptr_t) f & ~((uintptr_t) 1)))
188 
190 #define Biddy_Complement(f) ((Biddy_Edge) ((uintptr_t) f | (uintptr_t) 1))
191 
193 /* use the extended version if there are more than 32768 variables */
194 /* this macro assumes 64-bit architecture */
195 #if UINTPTR_MAX == 0xffffffffffffffff
196 #define Biddy_GetTag(f) ((Biddy_Variable) ((uintptr_t) f >> 48))
197 /* #define Biddy_GetTag(f) ((Biddy_Variable) (((uintptr_t) f >> 48) & 0x000000000000ffff)) */
198 #else
199 #define Biddy_GetTag(f) 0
200 #endif
201 
203 /* CAREFULLY: you can create an invalid node! */
204 /* this macro assumes 64-bit architecture */
205 #if UINTPTR_MAX == 0xffffffffffffffff
206 #define Biddy_SetTag(f,t) (f = (Biddy_Edge) (((uintptr_t) f & 0x0000ffffffffffff) | ((uintptr_t) t << 48)))
207 #else
208 #define Biddy_SetTag(f,t) 0
209 #endif
210 
212 /* this macro assumes 64-bit architecture */
213 #if UINTPTR_MAX == 0xffffffffffffffff
214 #define Biddy_ClearTag(f) (f = (Biddy_Edge) ((uintptr_t) f & 0x0000ffffffffffff))
215 #else
216 #define Biddy_ClearTag(f) 0
217 #endif
218 
220 /* this macro assumes 64-bit architecture */
221 #if UINTPTR_MAX == 0xffffffffffffffff
222 #define Biddy_Untagged(f) ((Biddy_Edge) ((uintptr_t) f & 0x0000ffffffffffff))
223 #else
224 #define Biddy_Untagged(f) 0
225 #endif
226 
227 /*----------------------------------------------------------------------------*/
228 /* Type declarations */
229 /*----------------------------------------------------------------------------*/
230 
233 typedef char Biddy_Boolean;
234 
237 typedef char *Biddy_String;
238 
248 typedef void **Biddy_Manager;
249 
255 typedef void *Biddy_Cache;
256 
259 /* for tagged graphs this should not be larger than 16 bits */
260 typedef unsigned short int Biddy_Variable;
261 
271 typedef void* Biddy_Edge;
272 
276 typedef void (*Biddy_GCFunction)(Biddy_Manager);
277 
282 
283 /*----------------------------------------------------------------------------*/
284 /* Structure declarations */
285 /*----------------------------------------------------------------------------*/
286 
287 /*----------------------------------------------------------------------------*/
288 /* Variable declarations */
289 /*----------------------------------------------------------------------------*/
290 
291 #ifdef __cplusplus
292 extern "C" {
293 #endif
294 
295 #ifdef __cplusplus
296 }
297 #endif
298 
299 /*----------------------------------------------------------------------------*/
300 /* Prototypes for functions exported from biddyMain.c */
301 /*----------------------------------------------------------------------------*/
302 
303 #ifdef __cplusplus
304 extern "C" {
305 #endif
306 
307 /* 1 */
309 #define Biddy_Init() Biddy_InitMNG(NULL,BIDDYTYPEOBDDC)
310 #define Biddy_InitAnonymous(bddtype) Biddy_InitMNG(NULL,bddtype)
311 EXTERN void Biddy_InitMNG(Biddy_Manager *mng, int bddtype);
312 
313 /* 2 */
315 #define Biddy_Exit() Biddy_ExitMNG(NULL)
316 EXTERN void Biddy_ExitMNG(Biddy_Manager *mng);
317 
318 /* 3 */
319 EXTERN Biddy_String Biddy_About();
320 
321 /* 4 */
323 #define Biddy_GetManagerType() Biddy_Managed_GetManagerType(NULL)
325 
326 /* 5 */
328 #define Biddy_GetManagerName() Biddy_Managed_GetManagerName(NULL)
330 
331 /* 6 */
333 #define Biddy_SetManagerParameters(gcr,gcrF,gcrX,rr,rrF,rrX,st,cst) Biddy_Managed_SetManagerParameters(NULL,gcr,gcrF,gcrX,rr,rrF,rrX,st,cst)
334 EXTERN void Biddy_Managed_SetManagerParameters(Biddy_Manager MNG, float gcr, float gcrF, float gcrX, float rr, float rrF, float rrX, float st, float cst);
335 
336 /* 7 */
338 #define Biddy_Managed_GetThen(MNG,f) Biddy_GetThen(f)
340 
341 /* 8 */
343 #define Biddy_Managed_GetElse(MNG,f) Biddy_GetElse(f)
345 
346 /* 9 */
348 #define Biddy_Managed_GetTopVariable(MNG,f) Biddy_GetTopVariable(f)
350 
351 /* 10 */
353 #define Biddy_IsEqv(f1,MNG2,f2) Biddy_Managed_IsEqv(NULL,f1,MNG2,f2)
355 
356 /* 11 */
358 #define Biddy_SelectNode(f) Biddy_Managed_SelectNode(NULL,f)
360 
361 /* 12 */
363 #define Biddy_DeselectNode(f) Biddy_Managed_DeselectNode(NULL,f)
365 
366 /* 13 */
368 #define Biddy_IsSelected(f) Biddy_Managed_IsSelected(NULL,f)
370 
371 /* 14 */
373 #define Biddy_SelectFunction(f) Biddy_Managed_SelectFunction(NULL,f)
375 
376 /* 15 */
378 #define Biddy_DeselectAll() Biddy_Managed_DeselectAll(NULL)
380 
381 /* 16 */
383 #define Biddy_GetTerminal() Biddy_Managed_GetTerminal(NULL)
385 
386 /* 17 */
388 #define Biddy_GetConstantZero() Biddy_Managed_GetConstantZero(NULL)
390 #define Biddy_Managed_GetEmptySet(MNG) Biddy_Managed_GetConstantZero(MNG)
391 #define Biddy_GetEmptySet() Biddy_Managed_GetConstantZero(NULL)
392 
393 /* 18 */
395 #define Biddy_GetConstantOne() Biddy_Managed_GetConstantOne(NULL)
397 #define Biddy_Managed_GetUniversalSet(MNG) Biddy_Managed_GetConstantOne(MNG)
398 #define Biddy_GetUniversalSet() Biddy_Managed_GetConstantOne(NULL)
399 
400 /* 19 */
402 #define Biddy_GetBaseSet() Biddy_Managed_GetBaseSet(NULL)
404 
405 /* 20 */
407 #define Biddy_GetVariable(x) Biddy_Managed_GetVariable(NULL,x)
409 
410 /* 21 */
412 #define Biddy_GetLowestVariable() Biddy_Managed_GetLowestVariable(NULL)
414 
415 /* 22 */
417 #define Biddy_GetIthVariable(i) Biddy_Managed_GetIthVariable(NULL,i)
419 
420 /* 23 */
422 #define Biddy_GetPrevVariable(v) Biddy_Managed_GetPrevVariable(NULL,v)
424 
425 /* 24 */
427 #define Biddy_GetNextVariable(v) Biddy_Managed_GetNextVariable(NULL,v)
429 
430 /* 25 */
432 #define Biddy_GetVariableEdge(v) Biddy_Managed_GetVariableEdge(NULL,v)
434 
435 /* 26 */
437 #define Biddy_GetElementEdge(v) Biddy_Managed_GetElementEdge(NULL,v)
439 
440 /* 27 */
442 #define Biddy_GetVariableName(v) Biddy_Managed_GetVariableName(NULL,v)
444 
445 /* 28 */
447 #define Biddy_GetTopVariableEdge(f) Biddy_Managed_GetTopVariableEdge(NULL,f)
449 
450 /* 29 */
452 #define Biddy_GetTopVariableName(f) Biddy_Managed_GetTopVariableName(NULL,f)
454 
455 /* 30 */
457 #define Biddy_GetTopVariableChar(f) Biddy_Managed_GetTopVariableChar(NULL,f)
459 
460 /* 31 */
462 #define Biddy_ResetVariablesValue() Biddy_Managed_ResetVariablesValue(NULL)
464 
465 /* 32 */
467 #define Biddy_SetVariableValue(v,f) Biddy_Managed_SetVariableValue(NULL,v,f)
469 
470 /* 33 */
472 #define Biddy_GetVariableValue(v) Biddy_Managed_GetVariableValue(NULL,v)
474 
475 /* 34 */
477 #define Biddy_ClearVariablesData() Biddy_Managed_ClearVariablesData(NULL)
479 
480 /* 35 */
482 #define Biddy_SetVariableData(v,x) Biddy_Managed_SetVariableData(NULL,v,x)
483 EXTERN void Biddy_Managed_SetVariableData(Biddy_Manager MNG, Biddy_Variable v, void *x);
484 
485 /* 36 */
487 #define Biddy_GetVariableData(v) Biddy_Managed_GetVariableData(NULL,v)
489 
490 /* 37 */
492 #define Biddy_Eval(f) Biddy_Managed_Eval(NULL,f)
494 
495 /* 38 */
497 #define Biddy_EvalProbability(f) Biddy_Managed_EvalProbability(NULL,f)
499 
500 /* 39 */
502 #define Biddy_IsSmaller(fv,gv) Biddy_Managed_IsSmaller(NULL,fv,gv)
504 
505 /* 40 */
507 #define Biddy_IsLowest(v) Biddy_Managed_IsLowest(NULL,v)
509 
510 /* 41 */
512 #define Biddy_IsHighest(v) Biddy_Managed_IsHighest(NULL,v)
514 
515 /* 42 */
517 #define Biddy_FoaVariable(x,varelem) Biddy_Managed_FoaVariable(NULL,x,varelem)
519 
520 /* 43 */
522 #define Biddy_ChangeVariableName(v,x) Biddy_Managed_ChangeVariableName(NULL,v,x)
524 
525 /* 44 TO DO: join with FoaVariable */
529 #define Biddy_AddVariableByName(x) Biddy_Managed_AddVariableByName(NULL,x)
531 #define Biddy_Managed_AddVariable(MNG) Biddy_Managed_AddVariableByName(MNG,NULL)
532 #define Biddy_AddVariable() Biddy_Managed_AddVariableByName(NULL,NULL)
533 #define Biddy_Managed_AddVariableEdge(MNG) Biddy_Managed_GetVariableEdge(MNG,Biddy_Managed_AddVariableByName(MNG,NULL))
534 #define Biddy_AddVariableEdge() Biddy_Managed_GetVariableEdge(NULL,Biddy_Managed_AddVariableByName(NULL,NULL))
535 
536 /* 45 TO DO: join with FoaVariable */
538 #define Biddy_AddElementByName(x) Biddy_Managed_AddElementByName(NULL,x)
540 #define Biddy_Managed_AddElement(MNG) Biddy_Managed_AddElementByName(MNG,NULL)
541 #define Biddy_AddElement() Biddy_Managed_AddElementByName(NULL,NULL)
542 
543 /* 46 */
545 #define Biddy_AddVariableBelow(v) Biddy_Managed_AddVariableBelow(NULL,v)
547 
548 /* 47 */
550 #define Biddy_AddVariableAbove(v) Biddy_Managed_AddVariableAbove(NULL,v)
552 
553 /* 48 */
556 #define Biddy_TransferMark(f,mark,leftright) Biddy_Managed_TransferMark(NULL,f,mark,leftright)
558 
559 /* 49 */
561 #define Biddy_IncTag(f) Biddy_Managed_IncTag(NULL,f)
563 
564 /* 50 */
566 #define Biddy_TaggedFoaNode(v,pf,pt,ptag,garbageAllowed) Biddy_Managed_TaggedFoaNode(NULL,v,pf,pt,ptag,garbageAllowed)
568 #define Biddy_Managed_FoaNode(MNG,v,pf,pt,garbageAllowed) Biddy_Managed_TaggedFoaNode(MNG,v,pf,pt,v,garbageAllowed)
569 #define Biddy_FoaNode(v,pf,pt,garbageAllowed) Biddy_Managed_TaggedFoaNode(NULL,v,pf,pt,v,garbageAllowed)
570 
571 /* 51 */
573 #define Biddy_IsOK(f) Biddy_Managed_IsOK(NULL,f)
575 
576 /* 52 */
579 #define Biddy_GC(targetLT,targetGEQ,purge,total) Biddy_Managed_GC(NULL,targetLT,targetGEQ,purge,total)
580 #define Biddy_Managed_AutoGC(MNG) Biddy_Managed_GC(MNG,0,0,FALSE,FALSE)
581 #define Biddy_AutoGC() Biddy_Managed_GC(NULL,0,0,FALSE,FALSE)
582 #define Biddy_Managed_ForceGC(MNG) Biddy_Managed_GC(MNG,0,0,FALSE,TRUE)
583 #define Biddy_ForceGC() Biddy_Managed_GC(NULL,0,0,FALSE,TRUE)
584 EXTERN void Biddy_Managed_GC(Biddy_Manager MNG, Biddy_Variable targetLT, Biddy_Variable targetGEQ, Biddy_Boolean purge, Biddy_Boolean total);
585 
586 /* 53 */
588 #define Biddy_Clean() Biddy_Managed_Clean(NULL)
589 EXTERN void Biddy_Managed_Clean(Biddy_Manager MNG);
590 
591 /* 54 */
593 #define Biddy_Purge() Biddy_Managed_Purge(NULL)
594 EXTERN void Biddy_Managed_Purge(Biddy_Manager MNG);
595 
596 /* 55 */
598 #define Biddy_PurgeAndReorder(f,c) Biddy_Managed_PurgeAndReorder(NULL,f,c)
600 
601 /* 56 */
603 #define Biddy_Refresh(f) Biddy_Managed_Refresh(NULL,f)
605 
606 /* 57 */
608 #define Biddy_AddCache(gc) Biddy_Managed_AddCache(NULL,gc)
610 
611 /* 58 */
619 #define Biddy_AddFormula(x,f,c) Biddy_Managed_AddFormula(NULL,x,f,c)
620 EXTERN unsigned int Biddy_Managed_AddFormula(Biddy_Manager MNG, Biddy_String x, Biddy_Edge f, int c);
621 #define Biddy_Managed_AddTmpFormula(mng,x,f) Biddy_Managed_AddFormula(mng,x,f,-1)
622 #define Biddy_Managed_AddPersistentFormula(mng,x,f) Biddy_Managed_AddFormula(mng,x,f,0)
623 #define Biddy_Managed_KeepFormula(mng,f) Biddy_Managed_AddFormula(mng,NULL,f,1)
624 #define Biddy_Managed_KeepFormulaProlonged(mng,f,c) Biddy_Managed_AddFormula(mng,NULL,f,c)
625 #define Biddy_Managed_KeepFormulaUntilPurge(mng,f) Biddy_Managed_AddFormula(mng,NULL,f,0)
626 #define Biddy_AddTmpFormula(x,f) Biddy_Managed_AddFormula(NULL,x,f,-1)
627 #define Biddy_AddPersistentFormula(x,f) Biddy_Managed_AddFormula(NULL,x,f,0)
628 #define Biddy_KeepFormula(f) Biddy_Managed_AddFormula(NULL,NULL,f,1)
629 #define Biddy_KeepFormulaProlonged(f,c) Biddy_Managed_AddFormula(NULL,NULL,f,c)
630 #define Biddy_KeepFormulaUntilPurge(f) Biddy_Managed_AddFormula(NULL,NULL,f,0)
631 
632 /* 59 */
634 #define Biddy_FindFormula(x,idx,f) Biddy_Managed_FindFormula(NULL,x,idx,f)
635 EXTERN Biddy_Boolean Biddy_Managed_FindFormula(Biddy_Manager MNG, Biddy_String x, unsigned int *idx, Biddy_Edge *f);
636 
637 /* 60 */
639 #define Biddy_DeleteFormula(x) Biddy_Managed_DeleteFormula(NULL,x)
641 
642 /* 61 */
644 #define Biddy_DeleteIthFormula(x) Biddy_Managed_DeleteIthFormula(NULL,x)
646 
647 /* 62 */
649 #define Biddy_GetIthFormula(i) Biddy_Managed_GetIthFormula(NULL,i)
650 EXTERN Biddy_Edge Biddy_Managed_GetIthFormula(Biddy_Manager MNG, unsigned int i);
651 
652 /* 63 */
654 #define Biddy_GetIthFormulaName(i) Biddy_Managed_GetIthFormulaName(NULL,i)
656 
657 /* 64 */
659 #define Biddy_SetAlphabeticOrdering() Biddy_Managed_SetAlphabeticOrdering(NULL)
661 
662 /* 65 */
664 #define Biddy_SwapWithHigher(v) Biddy_Managed_SwapWithHigher(NULL,v)
666 
667 /* 66 */
669 #define Biddy_SwapWithLower(v) Biddy_Managed_SwapWithLower(NULL,v)
671 
672 /* 67 */
674 #define Biddy_Sifting(f,c) Biddy_Managed_Sifting(NULL,f,c)
676 
677 /* 68 */
679 #define Biddy_MinimizeBDD(f) Biddy_Managed_MinimizeBDD(NULL,f)
681 
682 /* 69 */
684 #define Biddy_MaximizeBDD(f) Biddy_Managed_MaximizeBDD(NULL,f)
686 
687 /* 70 */
689 #define Biddy_Copy(MNG2,f) Biddy_Managed_Copy(NULL,MNG2,f)
691 
692 /* 71 */
694 #define Biddy_CopyFormula(MNG2,x) Biddy_Managed_CopyFormula(NULL,MNG2,x)
696 
697 /* 72 */
699 #define Biddy_ConstructBDD(numV,varlist,numN,nodelist) Biddy_Managed_ConstructBDD(NULL,numV,varlist,numV,nodelist)
700 EXTERN Biddy_Edge Biddy_Managed_ConstructBDD(Biddy_Manager MNG, int numV, Biddy_String varlist, int numN, Biddy_String nodelist);
701 
702 #ifdef __cplusplus
703 }
704 #endif
705 
706 /*----------------------------------------------------------------------------*/
707 /* Prototypes for functions exported from biddyOp.c */
708 /*----------------------------------------------------------------------------*/
709 
710 #ifdef __cplusplus
711 extern "C" {
712 #endif
713 
714 /* 73 */
717 #define Biddy_Not(f) Biddy_Managed_Not(NULL,f)
719 
720 /* 74 */
722 #define Biddy_ITE(f,g,h) Biddy_Managed_ITE(NULL,f,g,h)
724 
725 /* 75 */
728 #define Biddy_And(f,g) Biddy_Managed_And(NULL,f,g)
730 #define Biddy_Managed_Intersect(MNG,f,g) Biddy_Managed_And(MNG,f,g)
731 #define Biddy_Intersect(f,g) Biddy_Managed_And(NULL,f,g)
732 
733 /* 76 */
736 #define Biddy_Or(f,g) Biddy_Managed_Or(NULL,f,g)
738 #define Biddy_Managed_Union(MNG,f,g) Biddy_Managed_Or(MNG,f,g)
739 #define Biddy_Union(f,g) Biddy_Managed_Or(NULL,f,g)
740 
741 /* 77 */
743 #define Biddy_Nand(f,g) Biddy_Managed_Nand(NULL,f,g)
745 
746 /* 78 */
748 #define Biddy_Nor(f,g) Biddy_Managed_Nor(NULL,f,g)
750 
751 /* 79 */
753 #define Biddy_Xor(f,g) Biddy_Managed_Xor(NULL,f,g)
755 
756 /* 80 */
758 #define Biddy_Xnor(f,g) Biddy_Managed_Xnor(NULL,f,g)
760 
761 /* 81 */
763 #define Biddy_Leq(f,g) Biddy_Managed_Leq(NULL,f,g)
765 
766 /* 82 */
768 #define Biddy_Gt(f,g) Biddy_Managed_Gt(NULL,f,g)
770 #define Biddy_Managed_Diff(MNG,f,g) Biddy_Managed_Gt(MNG,f,g)
771 #define Biddy_Diff(f,g) Biddy_Managed_Gt(NULL,f,g)
772 
773 /* 83 */
775 #define Biddy_IsLeq(f,g) Biddy_Managed_IsLeq(NULL,f,g)
777 
778 /* 84 */
779 /* This is used to calculate cofactors f|{v=0} and f|{v=1}. */
781 #define Biddy_Restrict(f,v,value) Biddy_Managed_Restrict(NULL,f,v,value)
783 
784 /* 85 */
786 #define Biddy_Compose(f,g,v) Biddy_Managed_Compose(NULL,f,g,v)
788 
789 /* 86 */
791 #define Biddy_E(f,v) Biddy_Managed_E(NULL,f,v)
793 
794 /* 87 */
796 #define Biddy_A(f,v) Biddy_Managed_A(NULL,f,v)
798 
799 /* 88 */
801 #define Biddy_IsVariableDependent(f,v) Biddy_Managed_IsVariableDependent(NULL,f,v)
803 
804 /* 89 */
806 #define Biddy_ExistAbstract(f,cube) Biddy_Managed_ExistAbstract(NULL,f,cube)
808 
809 /* 90 */
811 #define Biddy_UnivAbstract(f,cube) Biddy_Managed_UnivAbstract(NULL,f,cube)
813 
814 /* 91 */
816 #define Biddy_AndAbstract(f,g,cube) Biddy_Managed_AndAbstract(NULL,f,g,cube)
818 
819 /* 92 */
821 #define Biddy_Constrain(f,c) Biddy_Managed_Constrain(NULL,f,c)
823 
824 /* 93 */
825 /* This is Coudert and Madre's restrict function */
827 #define Biddy_Simplify(f,c) Biddy_Managed_Simplify(NULL,f,c)
829 
830 /* 94 */
832 #define Biddy_Support(f) Biddy_Managed_Support(NULL,f)
834 
835 /* 95 */
839 #define Biddy_ReplaceByKeyword(f,keyword) Biddy_Managed_ReplaceByKeyword(NULL,f,keyword)
841 #define Biddy_Managed_Replace(MNG,f) Biddy_Managed_ReplaceByKeyword(MNG,f,NULL)
842 #define Biddy_Replace(f) Biddy_Managed_ReplaceByKeyword(NULL,f,NULL)
843 
844 /* 96 */
846 #define Biddy_Change(f,v) Biddy_Managed_Change(NULL,f,v)
848 
849 /* 97 */
850 /* This is used to calculate f*v and f*(-v) */
852 #define Biddy_Subset(f,v,value) Biddy_Managed_Subset(NULL,f,v,value)
854 #define Biddy_Managed_Subset0(MNG,f,v) Biddy_Managed_Subset(MNG,f,v,FALSE)
855 #define Biddy_Subset0(f,v) Biddy_Managed_Subset(NULL,f,v,FALSE)
856 #define Biddy_Managed_Subset1(MNG,f,v) Biddy_Managed_Subset(MNG,f,v,TRUE)
857 #define Biddy_Subset1(f,v) Biddy_Managed_Subset(NULL,f,v,TRUE)
858 
859 /* 98 */
861 #define Biddy_CreateMinterm(support,x) Biddy_Managed_CreateMinterm(NULL,support,x)
862 EXTERN Biddy_Edge Biddy_Managed_CreateMinterm(Biddy_Manager MNG, Biddy_Edge support, long long unsigned int x);
863 
864 /* 99 */
866 #define Biddy_CreateFunction(support,x) Biddy_Managed_CreateFunction(NULL,support,x)
867 EXTERN Biddy_Edge Biddy_Managed_CreateFunction(Biddy_Manager MNG, Biddy_Edge support, long long unsigned int x);
868 
869 /* 100 */
871 #define Biddy_RandomFunction(support,r) Biddy_Managed_RandomFunction(NULL,support,r)
872 EXTERN Biddy_Edge Biddy_Managed_RandomFunction(Biddy_Manager MNG, Biddy_Edge support, double r);
873 
874 /* 101 */
876 #define Biddy_RandomSet(unit,r) Biddy_Managed_RandomSet(NULL,unit,r)
877 EXTERN Biddy_Edge Biddy_Managed_RandomSet(Biddy_Manager MNG, Biddy_Edge unit, double r);
878 
879 #ifdef __cplusplus
880 }
881 #endif
882 
883 /* TO DO: unique */
884 /* Unique quantification of variables. */
885 /* Similar to existential quantification but uses XOR instead of OR. */
886 
887 /*----------------------------------------------------------------------------*/
888 /* Prototypes for functions exported from biddyStat.c */
889 /*----------------------------------------------------------------------------*/
890 
891 #ifdef __cplusplus
892 extern "C" {
893 #endif
894 
895 /* 102 */
897 #define Biddy_CountNodes(f) Biddy_Managed_CountNodes(NULL,f)
898 EXTERN unsigned int Biddy_Managed_CountNodes(Biddy_Manager MNG, Biddy_Edge f);
899 
900 /* 103 */
902 #define Biddy_Managed_MaxLevel(MNG,f) Biddy_MaxLevel(f)
903 EXTERN unsigned int Biddy_MaxLevel(Biddy_Edge f);
904 
905 /* 104 */
907 #define Biddy_Managed_AvgLevel(MNG,f) Biddy_AvgLevel(f)
908 EXTERN float Biddy_AvgLevel(Biddy_Edge f);
909 
910 /* 105 */
912 #define Biddy_VariableTableNum() Biddy_Managed_VariableTableNum(NULL)
914 
915 /* 106 */
917 #define Biddy_NodeTableSize() Biddy_Managed_NodeTableSize(NULL)
918 EXTERN unsigned int Biddy_Managed_NodeTableSize(Biddy_Manager MNG);
919 
920 /* 107 */
922 #define Biddy_NodeTableBlockNumber() Biddy_Managed_NodeTableBlockNumber(NULL)
923 EXTERN unsigned int Biddy_Managed_NodeTableBlockNumber(Biddy_Manager MNG);
924 
925 /* 108 */
927 #define Biddy_NodeTableGenerated() Biddy_Managed_NodeTableGenerated(NULL)
928 EXTERN unsigned int Biddy_Managed_NodeTableGenerated(Biddy_Manager MNG);
929 
930 /* 109 */
932 #define Biddy_NodeTableMax() Biddy_Managed_NodeTableMax(NULL)
933 EXTERN unsigned int Biddy_Managed_NodeTableMax(Biddy_Manager MNG);
934 
935 /* 110 */
937 #define Biddy_NodeTableNum() Biddy_Managed_NodeTableNum(NULL)
938 EXTERN unsigned int Biddy_Managed_NodeTableNum(Biddy_Manager MNG);
939 
940 /* 111 */
942 #define Biddy_NodeTableNumVar(v) Biddy_Managed_NodeTableNumVar(NULL,v)
944 
945 /* 112 */
947 #define Biddy_NodeTableResizeNumber() Biddy_Managed_NodeTableResizeNumber(NULL)
948 EXTERN unsigned int Biddy_Managed_NodeTableResizeNumber(Biddy_Manager MNG);
949 
950 /* 113 */
952 #define Biddy_NodeTableFoaNumber() Biddy_Managed_NodeTableFoaNumber(NULL)
953 EXTERN unsigned long long int Biddy_Managed_NodeTableFoaNumber(Biddy_Manager MNG);
954 
955 /* 114 */
957 #define Biddy_NodeTableFindNumber() Biddy_Managed_NodeTableFindNumber(NULL)
958 EXTERN unsigned long long int Biddy_Managed_NodeTableFindNumber(Biddy_Manager MNG);
959 
960 /* 115 */
962 #define Biddy_NodeTableCompareNumber() Biddy_Managed_NodeTableCompareNumber(NULL)
963 EXTERN unsigned long long int Biddy_Managed_NodeTableCompareNumber(Biddy_Manager MNG);
964 
965 /* 116 */
967 #define Biddy_NodeTableAddNumber() Biddy_Managed_NodeTableAddNumber(NULL)
968 EXTERN unsigned long long int Biddy_Managed_NodeTableAddNumber(Biddy_Manager MNG);
969 
970 /* 117 */
972 #define Biddy_NodeTableGCNumber() Biddy_Managed_NodeTableGCNumber(NULL)
973 EXTERN unsigned int Biddy_Managed_NodeTableGCNumber(Biddy_Manager MNG);
974 
975 /* 118 */
977 #define Biddy_NodeTableGCTime() Biddy_Managed_NodeTableGCTime(NULL)
978 EXTERN unsigned int Biddy_Managed_NodeTableGCTime(Biddy_Manager MNG);
979 
980 /* 119 */
982 #define Biddy_NodeTableGCObsoleteNumber() Biddy_Managed_NodeTableGCObsoleteNumber(NULL)
983 EXTERN unsigned long long int Biddy_Managed_NodeTableGCObsoleteNumber(Biddy_Manager MNG);
984 
985 /* 120 */
987 #define Biddy_NodeTableSwapNumber() Biddy_Managed_NodeTableSwapNumber(NULL)
988 EXTERN unsigned int Biddy_Managed_NodeTableSwapNumber(Biddy_Manager MNG);
989 
990 /* 121 */
992 #define Biddy_NodeTableSiftingNumber() Biddy_Managed_NodeTableSiftingNumber(NULL)
993 EXTERN unsigned int Biddy_Managed_NodeTableSiftingNumber(Biddy_Manager MNG);
994 
995 /* 122 */
997 #define Biddy_NodeTableDRTime() Biddy_Managed_NodeTableDRTime(NULL)
998 EXTERN unsigned int Biddy_Managed_NodeTableDRTime(Biddy_Manager MNG);
999 
1000 /* 123 */
1002 #define Biddy_NodeTableITENumber() Biddy_Managed_NodeTableITENumber(NULL)
1003 EXTERN unsigned int Biddy_Managed_NodeTableITENumber(Biddy_Manager MNG);
1004 
1005 /* 124 */
1007 #define Biddy_NodeTableITERecursiveNumber() Biddy_Managed_NodeTableITERecursiveNumber(NULL)
1008 EXTERN unsigned long long int Biddy_Managed_NodeTableITERecursiveNumber(Biddy_Manager MNG);
1009 
1010 /* 125 */
1012 #define Biddy_NodeTableANDORNumber() Biddy_Managed_NodeTableANDORNumber(NULL)
1013 EXTERN unsigned int Biddy_Managed_NodeTableANDORNumber(Biddy_Manager MNG);
1014 
1015 /* 126 */
1017 #define Biddy_NodeTableANDORRecursiveNumber() Biddy_Managed_NodeTableANDORRecursiveNumber(NULL)
1018 EXTERN unsigned long long int Biddy_Managed_NodeTableANDORRecursiveNumber(Biddy_Manager MNG);
1019 
1020 /* 127 */
1022 #define Biddy_NodeTableXORNumber() Biddy_Managed_NodeTableXORNumber(NULL)
1023 EXTERN unsigned int Biddy_Managed_NodeTableXORNumber(Biddy_Manager MNG);
1024 
1025 /* 128 */
1027 #define Biddy_NodeTableXORRecursiveNumber() Biddy_Managed_NodeTableXORRecursiveNumber(NULL)
1028 EXTERN unsigned long long int Biddy_Managed_NodeTableXORRecursiveNumber(Biddy_Manager MNG);
1029 
1030 /* 129 */
1032 #define Biddy_FormulaTableNum() Biddy_Managed_FormulaTableNum(NULL)
1033 EXTERN unsigned int Biddy_Managed_FormulaTableNum(Biddy_Manager MNG);
1034 
1035 /* 130 */
1037 #define Biddy_ListUsed() Biddy_Managed_ListUsed(NULL)
1038 EXTERN unsigned int Biddy_Managed_ListUsed(Biddy_Manager MNG);
1039 
1040 /* 131 */
1042 #define Biddy_ListMaxLength() Biddy_Managed_ListMaxLength(NULL)
1043 EXTERN unsigned int Biddy_Managed_ListMaxLength(Biddy_Manager MNG);
1044 
1045 /* 132 */
1047 #define Biddy_ListAvgLength() Biddy_Managed_ListAvgLength(NULL)
1048 EXTERN float Biddy_Managed_ListAvgLength(Biddy_Manager MNG);
1049 
1050 /* 133 */
1052 #define Biddy_OPCacheSearch() Biddy_Managed_OPCacheSearch(NULL)
1053 EXTERN unsigned long long int Biddy_Managed_OPCacheSearch(Biddy_Manager MNG);
1054 
1055 /* 134 */
1057 #define Biddy_OPCacheFind() Biddy_Managed_OPCacheFind(NULL)
1058 EXTERN unsigned long long int Biddy_Managed_OPCacheFind(Biddy_Manager MNG);
1059 
1060 /* 135 */
1062 #define Biddy_OPCacheInsert() Biddy_Managed_OPCacheInsert(NULL)
1063 EXTERN unsigned long long int Biddy_Managed_OPCacheInsert(Biddy_Manager MNG);
1064 
1065 /* 136 */
1067 #define Biddy_OPCacheOverwrite() Biddy_Managed_OPCacheOverwrite(NULL)
1068 EXTERN unsigned long long int Biddy_Managed_OPCacheOverwrite(Biddy_Manager MNG);
1069 
1070 /* 137 */
1072 #define Biddy_CountNodesPlain(f) Biddy_Managed_CountNodesPlain(NULL,f)
1073 EXTERN unsigned int Biddy_Managed_CountNodesPlain(Biddy_Manager MNG, Biddy_Edge f);
1074 
1075 /* 138 */
1077 #define Biddy_DependentVariableNumber(f,select) Biddy_Managed_DependentVariableNumber(NULL,f,select)
1079 
1080 /* 139 */
1082 #define Biddy_CountComplementedEdges(f) Biddy_Managed_CountComplementedEdges(NULL,f)
1084 
1085 /* 140 */
1087 #define Biddy_CountPaths(f) Biddy_Managed_CountPaths(NULL,f)
1088 EXTERN unsigned long long int Biddy_Managed_CountPaths(Biddy_Manager MNG, Biddy_Edge f);
1089 
1090 /* 141 */
1092 #define Biddy_CountMinterms(f,nvars) Biddy_Managed_CountMinterms(NULL,f,nvars)
1093 EXTERN double Biddy_Managed_CountMinterms(Biddy_Manager MNG, Biddy_Edge f, unsigned int nvars);
1094 #define Biddy_Managed_CountCombinations(MNG,f,nvars) Biddy_Managed_CountMinterms(MNG,f,nvars)
1095 #define Biddy_CountCombinations(f) Biddy_Managed_CountMinterms(NULL,f,nvars)
1096 
1097 /* 142 */
1099 #define Biddy_DensityOfFunction(f,nvars) Biddy_Managed_DensityOfFunction(NULL,f,nvars)
1100 EXTERN double Biddy_Managed_DensityOfFunction(Biddy_Manager MNG, Biddy_Edge f, unsigned int nvars);
1101 
1102 /* 143 */
1104 #define Biddy_DensityOfBDD(f,nvars) Biddy_Managed_DensityOfBDD(NULL,f,nvars)
1105 EXTERN double Biddy_Managed_DensityOfBDD(Biddy_Manager MNG, Biddy_Edge f, unsigned int nvars);
1106 
1107 /* 144 */
1109 #define Biddy_MinNodes(f) Biddy_Managed_MinNodes(NULL,f)
1110 EXTERN unsigned int Biddy_Managed_MinNodes(Biddy_Manager MNG, Biddy_Edge f);
1111 
1112 /* 145 */
1114 #define Biddy_MaxNodes(f) Biddy_Managed_MaxNodes(NULL,f)
1115 EXTERN unsigned int Biddy_Managed_MaxNodes(Biddy_Manager MNG, Biddy_Edge f);
1116 
1117 /* 146 */
1119 #define Biddy_ReadMemoryInUse() Biddy_Managed_ReadMemoryInUse(NULL)
1120 EXTERN unsigned long long int Biddy_Managed_ReadMemoryInUse(Biddy_Manager MNG);
1121 
1122 /* 147 */
1124 #define Biddy_PrintInfo(f) Biddy_Managed_PrintInfo(NULL,f)
1125 EXTERN void Biddy_Managed_PrintInfo(Biddy_Manager MNG, FILE *f);
1126 
1127 #ifdef __cplusplus
1128 }
1129 #endif
1130 
1131 /*----------------------------------------------------------------------------*/
1132 /* Prototypes for functions exported from biddyInOut.c */
1133 /*----------------------------------------------------------------------------*/
1134 
1135 #ifdef __cplusplus
1136 extern "C" {
1137 #endif
1138 
1139 /* 148 */
1141 #define Biddy_Eval0(s) Biddy_Managed_Eval0(NULL,s)
1143 
1144 /* 149 */
1146 #define Biddy_Eval1x(s,lf) Biddy_Managed_Eval1x(NULL,s,lf)
1148 #define Biddy_Managed_Eval1(MNG,s) Biddy_Managed_Eval1x(MNG,s,NULL)
1149 #define Biddy_Eval1(s) Biddy_Managed_Eval1x(NULL,s,NULL)
1150 
1151 /* 150 */
1153 #define Biddy_Eval2(boolFunc) Biddy_Managed_Eval2(NULL,boolFunc)
1155 
1156 /* 151 */
1158 #define Biddy_ReadBddview(filename,name) Biddy_Managed_ReadBddview(NULL,filename,name)
1159 EXTERN Biddy_String Biddy_Managed_ReadBddview(Biddy_Manager MNG, const char filename[], Biddy_String name);
1160 
1161 /* 152 */
1163 #define Biddy_ReadVerilogFile(filename,prefix) Biddy_Managed_ReadVerilogFile(NULL,filename,prefix)
1164 EXTERN void Biddy_Managed_ReadVerilogFile(Biddy_Manager MNG, const char filename[], Biddy_String prefix);
1165 
1166 /* 153 */
1168 #define Biddy_PrintfBDD(f) Biddy_Managed_PrintfBDD(NULL,f)
1170 
1171 /* 154 */
1173 #define Biddy_WriteBDD(filename,f,label) Biddy_Managed_WriteBDD(NULL,filename,f,label)
1174 EXTERN void Biddy_Managed_WriteBDD(Biddy_Manager MNG, const char filename[], Biddy_Edge f, Biddy_String label);
1175 
1176 /* 155 */
1178 #define Biddy_PrintfTable(f) Biddy_Managed_PrintfTable(NULL,f)
1180 
1181 /* 156 */
1183 #define Biddy_WriteTable(filename,f) Biddy_Managed_WriteTable(NULL,filename,f)
1184 EXTERN void Biddy_Managed_WriteTable(Biddy_Manager MNG, const char filename[], Biddy_Edge f);
1185 
1186 /* 157 */
1188 #define Biddy_PrintfSOP(f) Biddy_Managed_PrintfSOP(NULL,f)
1190 
1191 /* 158 */
1193 #define Biddy_WriteSOP(filename,f) Biddy_Managed_WriteSOP(NULL,filename,f)
1194 EXTERN void Biddy_Managed_WriteSOP(Biddy_Manager MNG, const char filename[], Biddy_Edge f);
1195 
1196 /* 159 */
1198 #define Biddy_WriteDot(filename,f,label,id,cudd) Biddy_Managed_WriteDot(NULL,filename,f,label,id,cudd);
1199 EXTERN unsigned int Biddy_Managed_WriteDot(Biddy_Manager MNG, const char filename[], Biddy_Edge f, const char label[], int id, Biddy_Boolean cudd);
1200 
1201 /* 160 */
1203 #define Biddy_WriteBddview(filename,f,label,table) Biddy_Managed_WriteBddview(NULL,filename,f,label,table);
1204 EXTERN unsigned int Biddy_Managed_WriteBddview(Biddy_Manager MNG, const char filename[], Biddy_Edge f, const char label[], void *xytable);
1205 
1206 #ifdef __cplusplus
1207 }
1208 #endif
1209 
1210 /* TO DO: CNF + DIMACS BENCHMARKS */
1211 /* http://people.sc.fsu.edu/~jburkardt/data/cnf/cnf.html */
1212 /* http://www.dwheeler.com/essays/minisat-user-guide.html */
1213 /* http://www.miroslav-velev.com/sat_benchmarks.html */
1214 /* http://www.satcompetition.org/ */
1215 
1216 #endif /* _BIDDY */
EXTERN Biddy_Edge Biddy_Managed_Support(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_Support calculates a product of all dependent variables (OBDDs and TZBDDs) or ...
Definition: biddyOp.c:5027
EXTERN Biddy_Variable Biddy_Managed_VariableTableNum(Biddy_Manager MNG)
Function Biddy_Managed_VariableTableNum returns number of used variables.
Definition: biddyStat.c:228
EXTERN unsigned int Biddy_Managed_MinNodes(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_MinNodes reports number of nodes in the optimal ordering.
Definition: biddyStat.c:1839
Biddy_Variable is used for indices in variable table.
EXTERN Biddy_Edge Biddy_Managed_Xnor(Biddy_Manager MNG, Biddy_Edge f, Biddy_Edge g)
Function Biddy_Managed_Xnor calculates Boolean function XNOR.
Definition: biddyOp.c:2354
EXTERN Biddy_Edge Biddy_Managed_Leq(Biddy_Manager MNG, Biddy_Edge f, Biddy_Edge g)
Function Biddy_Managed_Leq calculates Boolean implication.
Definition: biddyOp.c:2452
EXTERN Biddy_Variable Biddy_Managed_SwapWithHigher(Biddy_Manager MNG, Biddy_Variable v)
Function Biddy_Managed_SwapWithHigher swaps two adjacent variables.
Definition: biddyMain.c:5162
EXTERN Biddy_Variable Biddy_Managed_GetNextVariable(Biddy_Manager MNG, Biddy_Variable v)
Function Biddy_Managed_GetNextVariable returns next variable in the global ordering (higher...
Definition: biddyMain.c:1872
EXTERN void Biddy_Managed_DeselectNode(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_DeselectNode deselects the top node of the given function. ...
Definition: biddyMain.c:1405
EXTERN Biddy_Edge Biddy_Managed_AndAbstract(Biddy_Manager MNG, Biddy_Edge f, Biddy_Edge g, Biddy_Edge cube)
Function Biddy_Managed_AndAbstract calculates the AND of two BDDs and simultaneously (existentially) ...
Definition: biddyOp.c:4321
EXTERN void Biddy_Managed_SelectNode(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_SelectNode selects the top node of the given function.
Definition: biddyMain.c:1379
EXTERN Biddy_Edge Biddy_Managed_Compose(Biddy_Manager MNG, Biddy_Edge f, Biddy_Edge g, Biddy_Variable v)
Function Biddy_Managed_Compose calculates a composition of two Boolean functions. ...
Definition: biddyOp.c:3378
EXTERN Biddy_Edge Biddy_Managed_UnivAbstract(Biddy_Manager MNG, Biddy_Edge f, Biddy_Edge cube)
Function Biddy_Managed_UnivAbstract universally abstracts all the variables in cube from f...
Definition: biddyOp.c:4226
EXTERN void Biddy_Managed_DeselectAll(Biddy_Manager MNG)
Function Biddy_Managed_DeselectAll deselects all nodes.
Definition: biddyMain.c:1515
EXTERN Biddy_Boolean Biddy_Managed_IsEqv(Biddy_Manager MNG1, Biddy_Edge f1, Biddy_Manager MNG2, Biddy_Edge f2)
Function Biddy_Managed_IsEqv returns TRUE iff two BDDs are equal.
Definition: biddyMain.c:1344
EXTERN unsigned int Biddy_Managed_NodeTableSiftingNumber(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableSiftingNumber.
Definition: biddyStat.c:684
EXTERN Biddy_Variable Biddy_Managed_AddElementByName(Biddy_Manager MNG, Biddy_String x)
Function Biddy_Managed_AddElementByName adds element.
Definition: biddyMain.c:2903
EXTERN Biddy_String Biddy_Managed_Eval0(Biddy_Manager MNG, Biddy_String s)
Function Biddy_Managed_Eval0 evaluates raw format.
Definition: biddyInOut.c:172
EXTERN Biddy_Edge Biddy_Managed_ITE(Biddy_Manager MNG, Biddy_Edge f, Biddy_Edge g, Biddy_Edge h)
Function Biddy_Managed_ITE calculates ITE operation of three Boolean functions.
Definition: biddyOp.c:370
EXTERN Biddy_Edge Biddy_Managed_ReplaceByKeyword(Biddy_Manager MNG, Biddy_Edge f, Biddy_String keyword)
Function Biddy_Managed_ReplaceByKeyword calculates Boolean function with one or more variables replac...
Definition: biddyOp.c:5225
EXTERN Biddy_Edge Biddy_Managed_ExistAbstract(Biddy_Manager MNG, Biddy_Edge f, Biddy_Edge cube)
Function Biddy_Managed_ExistAbstract existentially abstracts all the variables in cube from f...
Definition: biddyOp.c:3973
EXTERN unsigned long long int Biddy_Managed_NodeTableXORRecursiveNumber(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableXORRecursiveNumber.
Definition: biddyStat.c:881
EXTERN Biddy_Edge Biddy_Managed_IncTag(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_IncTag returns edge with an incremented tag.
Definition: biddyMain.c:3162
EXTERN unsigned long long int Biddy_Managed_CountPaths(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_CountPaths count the number of 1-paths.
Definition: biddyStat.c:1457
EXTERN unsigned long long int Biddy_Managed_OPCacheOverwrite(Biddy_Manager MNG)
Function Biddy_Managed_OPCacheOverwrite.
Definition: biddyStat.c:1158
EXTERN unsigned int Biddy_MaxLevel(Biddy_Edge f)
Function Biddy_MaxLevel.
Definition: biddyStat.c:164
EXTERN Biddy_Variable Biddy_Managed_GetVariable(Biddy_Manager MNG, Biddy_String x)
Function Biddy_Managed_GetVariable returns variable with the given name.
Definition: biddyMain.c:1712
Biddy_Edge is a marked edge (i.e. a marked pointer to BiddyNode).
EXTERN unsigned int Biddy_Managed_NodeTableResizeNumber(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableResizeNumber.
Definition: biddyStat.c:412
EXTERN void Biddy_Managed_WriteBDD(Biddy_Manager MNG, const char filename[], Biddy_Edge f, Biddy_String label)
Function Biddy_Managed_WriteBDD writes raw format using fprintf.
Definition: biddyInOut.c:1110
EXTERN void Biddy_Managed_ClearVariablesData(Biddy_Manager MNG)
Function Biddy_Managed_ClearVariablesData free memory used for all variable&#39;s data.
Definition: biddyMain.c:2147
EXTERN Biddy_Edge Biddy_Managed_Constrain(Biddy_Manager MNG, Biddy_Edge f, Biddy_Edge c)
Function Biddy_Managed_Constrain calculates Coudert and Madre&#39;s constrain function.
Definition: biddyOp.c:4754
EXTERN unsigned long long int Biddy_Managed_NodeTableITERecursiveNumber(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableITERecursiveNumber.
Definition: biddyStat.c:762
EXTERN unsigned int Biddy_Managed_NodeTableSize(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableSize returns the size of node table.
Definition: biddyStat.c:253
EXTERN Biddy_Edge Biddy_GetThen(Biddy_Edge f)
Function Biddy_GetThen returns THEN successor.
Definition: biddyMain.c:1243
EXTERN float Biddy_AvgLevel(Biddy_Edge f)
Function Biddy_AvgLevel.
Definition: biddyStat.c:196
EXTERN unsigned long long int Biddy_Managed_ReadMemoryInUse(Biddy_Manager MNG)
Function Biddy_Managed_ReadMemoryInUse reports memory consumption of main data strucutures in bytes (...
Definition: biddyStat.c:2124
EXTERN Biddy_String Biddy_Managed_GetVariableName(Biddy_Manager MNG, Biddy_Variable v)
Function Biddy_Managed_GetVariableName returns the name of a variable.
Definition: biddyMain.c:1951
EXTERN unsigned long long int Biddy_Managed_OPCacheSearch(Biddy_Manager MNG)
Function Biddy_Managed_OPCacheSearch.
Definition: biddyStat.c:1077
EXTERN void Biddy_Managed_ChangeVariableName(Biddy_Manager MNG, Biddy_Variable v, Biddy_String x)
Function Biddy_Managed_ChangeVariableName set new name to the given variable/element.
Definition: biddyMain.c:2835
EXTERN void Biddy_Managed_PrintfSOP(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_PrintfSOP writes SOP using printf.
Definition: biddyInOut.c:1376
EXTERN Biddy_Edge Biddy_Managed_GetElementEdge(Biddy_Manager MNG, Biddy_Variable v)
Function Biddy_Managed_GetElementEdge returns element&#39;s edge.
Definition: biddyMain.c:1926
EXTERN Biddy_Edge Biddy_Managed_ConstructBDD(Biddy_Manager MNG, int numV, Biddy_String varlist, int numN, Biddy_String nodelist)
Definition: biddyMain.c:6044
EXTERN Biddy_String Biddy_About()
Function Biddy_About reports version of Biddy package.
Definition: biddyMain.c:1106
EXTERN Biddy_Edge Biddy_Managed_GetTopVariableEdge(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_GetTopVariableEdge returns variable&#39;s edge of top variable.
Definition: biddyMain.c:1979
EXTERN Biddy_Edge Biddy_Managed_RandomSet(Biddy_Manager MNG, Biddy_Edge unit, double r)
Function Biddy_Managed_RandomSet generates a random BDD.
Definition: biddyOp.c:6389
EXTERN Biddy_Boolean Biddy_Managed_Sifting(Biddy_Manager MNG, Biddy_Edge f, Biddy_Boolean converge)
Function Biddy_Managed_Sifting reorders variables to minimize node number for the whole system (if f ...
Definition: biddyMain.c:5298
EXTERN Biddy_Boolean Biddy_Managed_IsLowest(Biddy_Manager MNG, Biddy_Variable v)
Function Biddy_Managed_IsLowest returns TRUE if the variable is the lowest one (lowest == topmost)...
Definition: biddyMain.c:2456
EXTERN void Biddy_Managed_AddCache(Biddy_Manager MNG, Biddy_GCFunction gc)
Function Biddy_Managed_AddCache adds cache to the end of Cache list.
Definition: biddyMain.c:4406
EXTERN Biddy_Edge Biddy_Managed_Nand(Biddy_Manager MNG, Biddy_Edge f, Biddy_Edge g)
Function Biddy_Managed_Nand calculates Boolean function NAND (Sheffer).
Definition: biddyOp.c:1718
EXTERN Biddy_Edge Biddy_Managed_Eval1x(Biddy_Manager MNG, Biddy_String s, Biddy_LookupFunction lf)
Function Biddy_Managed_Eval1x evaluates prefix AND-OR-EXOR-NOT format.
Definition: biddyInOut.c:249
EXTERN Biddy_Edge Biddy_Managed_TransferMark(Biddy_Manager MNG, Biddy_Edge f, Biddy_Boolean mark, Biddy_Boolean leftright)
Function Biddy_Managed_TransferMark returns edge with inverted complement bit iff the second paramete...
Definition: biddyMain.c:3096
EXTERN void Biddy_Managed_SetManagerParameters(Biddy_Manager MNG, float gcr, float gcrF, float gcrX, float rr, float rrF, float rrX, float st, float cst)
Function Biddy_Managed_SetManagerParameters set modifiable parameters.
Definition: biddyMain.c:1198
EXTERN Biddy_Boolean Biddy_Managed_DeleteIthFormula(Biddy_Manager MNG, unsigned int i)
Function Biddy_Managed_DeleteIthFormula deletes formula from the table.
Definition: biddyMain.c:4997
EXTERN Biddy_Boolean Biddy_Managed_DeleteFormula(Biddy_Manager MNG, Biddy_String x)
Function Biddy_Managed_DeleteFormula delete formula from Formula table.
Definition: biddyMain.c:4933
EXTERN Biddy_Boolean Biddy_Managed_FindFormula(Biddy_Manager MNG, Biddy_String x, unsigned int *idx, Biddy_Edge *f)
Function Biddy_Managed_FindFormula find formula in Formula table.
Definition: biddyMain.c:4759
EXTERN Biddy_Edge Biddy_Managed_GetBaseSet(Biddy_Manager MNG)
Function Biddy_Managed_GetBaseSet returns set containing only a null combination, i...
Definition: biddyMain.c:1647
EXTERN Biddy_Boolean Biddy_Managed_IsLeq(Biddy_Manager MNG, Biddy_Edge f, Biddy_Edge g)
Function Biddy_Managed_IsLeq returns TRUE iff function f is included in function g.
Definition: biddyOp.c:3089
EXTERN void Biddy_Managed_ResetVariablesValue(Biddy_Manager MNG)
Function Biddy_Managed_ResetVariablesValue sets all variable&#39;s value to biddyZero.
Definition: biddyMain.c:2064
EXTERN unsigned int Biddy_Managed_CountNodesPlain(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_CountNodesPlain.
Definition: biddyStat.c:1191
EXTERN Biddy_Edge Biddy_Managed_AddVariableBelow(Biddy_Manager MNG, Biddy_Variable v)
Function Biddy_Managed_AddVariableBelow adds variable.
Definition: biddyMain.c:2932
EXTERN unsigned long long int Biddy_Managed_NodeTableGCObsoleteNumber(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableGCObsoleteNumber.
Definition: biddyStat.c:619
EXTERN unsigned int Biddy_Managed_CountComplementedEdges(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_CountComplementedEdges count the number of complemented edges.
Definition: biddyStat.c:1401
EXTERN Biddy_String Biddy_Managed_GetIthFormulaName(Biddy_Manager MNG, unsigned int i)
Function Biddy_Managed_GetIthFormulaName returns name of the ith formula in a Formula table...
Definition: biddyMain.c:5088
EXTERN void Biddy_Managed_WriteTable(Biddy_Manager MNG, const char filename[], Biddy_Edge f)
Function Biddy_Managed_WriteTable writes truth table using fprintf.
Definition: biddyInOut.c:1266
EXTERN Biddy_Variable Biddy_Managed_GetLowestVariable(Biddy_Manager MNG)
Function Biddy_Managed_GetLowestVariable returns the lowest variable in the current ordering...
Definition: biddyMain.c:1766
EXTERN unsigned int Biddy_Managed_DependentVariableNumber(Biddy_Manager MNG, Biddy_Edge f, Biddy_Boolean select)
Function Biddy_Managed_DependentVariableNumber.
Definition: biddyStat.c:1279
EXTERN unsigned int Biddy_Managed_NodeTableITENumber(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableITENumber.
Definition: biddyStat.c:734
Biddy_Cache is used to specify user&#39;s cache table.
EXTERN Biddy_Edge Biddy_GetElse(Biddy_Edge f)
Function Biddy_GetElse returns ELSE successor.
Definition: biddyMain.c:1282
Biddy_String is used for strings.
EXTERN double Biddy_Managed_CountMinterms(Biddy_Manager MNG, Biddy_Edge f, unsigned int nvars)
Function Biddy_Managed_CountMinterms.
Definition: biddyStat.c:1526
EXTERN Biddy_Edge Biddy_Managed_GetTerminal(Biddy_Manager MNG)
Function Biddy_Managed_GetTerminal returns unmarked and untagged edge pointing to terminal node 1...
Definition: biddyMain.c:1559
EXTERN void Biddy_Managed_Purge(Biddy_Manager MNG)
Function Biddy_Managed_Purge immediately removes all nodes which were not preserved or which are not ...
Definition: biddyMain.c:4303
Biddy_GCFunction is used in Biddy_AddCache to specify user&#39;s function which will performs garbage col...
EXTERN unsigned int Biddy_Managed_NodeTableXORNumber(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableXORNumber.
Definition: biddyStat.c:853
EXTERN Biddy_Edge Biddy_Managed_Restrict(Biddy_Manager MNG, Biddy_Edge f, Biddy_Variable v, Biddy_Boolean value)
Function Biddy_Managed_Restrict calculates a restriction of Boolean function.
Definition: biddyOp.c:3161
EXTERN int Biddy_Managed_GetManagerType(Biddy_Manager MNG)
Function Biddy_Managed_GetManagerType reports BDD type used in the manager.
Definition: biddyMain.c:1129
EXTERN unsigned int Biddy_Managed_NodeTableSwapNumber(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableSwapNumber.
Definition: biddyStat.c:658
EXTERN unsigned int Biddy_Managed_MaxNodes(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_MaxNodes reports number of nodes in the worst ordering.
Definition: biddyStat.c:1982
EXTERN double Biddy_Managed_DensityOfBDD(Biddy_Manager MNG, Biddy_Edge f, unsigned int nvars)
Function Biddy_Managed_DensityOfBDD calculates the ratio of the number of on-set minterms to the numb...
Definition: biddyStat.c:1743
EXTERN Biddy_Edge Biddy_Managed_Simplify(Biddy_Manager MNG, Biddy_Edge f, Biddy_Edge c)
Function Biddy_Managed_Simplify calculates Coudert and Madre&#39;s restrict function. ...
Definition: biddyOp.c:4887
EXTERN Biddy_Variable Biddy_Managed_AddVariableByName(Biddy_Manager MNG, Biddy_String x)
Function Biddy_Managed_AddVariableByName adds variable.
Definition: biddyMain.c:2871
EXTERN Biddy_Edge Biddy_Managed_Copy(Biddy_Manager MNG1, Biddy_Manager MNG2, Biddy_Edge f)
Function Biddy_Managed_Copy copies a graph from one manager to another manager which can use the same...
Definition: biddyMain.c:5667
EXTERN Biddy_Boolean Biddy_Managed_Eval(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_Eval returns the value of a Boolean function for a given variable assignment...
Definition: biddyMain.c:2234
EXTERN unsigned int Biddy_Managed_NodeTableGCTime(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableGCTime.
Definition: biddyStat.c:590
EXTERN Biddy_Edge Biddy_Managed_AddVariableAbove(Biddy_Manager MNG, Biddy_Variable v)
Function Biddy_Managed_AddVariableAbove adds variable.
Definition: biddyMain.c:3015
Biddy_Boolean is used for boolean values.
EXTERN Biddy_Boolean Biddy_Managed_IsOK(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_IsOK returns TRUE iff given node is not obsolete.
Definition: biddyMain.c:3711
EXTERN Biddy_Edge Biddy_Managed_CreateFunction(Biddy_Manager MNG, Biddy_Edge support, long long unsigned int x)
Function Biddy_Managed_CreateFunction generates one Boolean function.
Definition: biddyOp.c:6154
Biddy_LookupFunction is used in Biddy_Eval1x to specify user&#39;s function which will lookups in a user&#39;...
EXTERN unsigned int Biddy_Managed_AddFormula(Biddy_Manager MNG, Biddy_String x, Biddy_Edge f, int c)
Function Biddy_Managed_AddFormula adds formula to Formula table.
Definition: biddyMain.c:4480
EXTERN Biddy_Edge Biddy_Managed_A(Biddy_Manager MNG, Biddy_Edge f, Biddy_Variable v)
Function Biddy_Managed_A calculates an universal quantification of Boolean function.
Definition: biddyOp.c:3815
EXTERN Biddy_Edge Biddy_Managed_GetIthFormula(Biddy_Manager MNG, unsigned int i)
Function Biddy_Managed_GetIthFormula returns ith formula in a Formula table.
Definition: biddyMain.c:5057
EXTERN void * Biddy_Managed_GetVariableData(Biddy_Manager MNG, Biddy_Variable v)
Function Biddy_Managed_GetVariableData gets variable&#39;s data.
Definition: biddyMain.c:2206
EXTERN unsigned int Biddy_Managed_NodeTableGCNumber(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableGCNumber.
Definition: biddyStat.c:565
EXTERN Biddy_Variable Biddy_Managed_SwapWithLower(Biddy_Manager MNG, Biddy_Variable v)
Function Biddy_Managed_SwapWithLower swaps two adjacent variables.
Definition: biddyMain.c:5228
EXTERN Biddy_Variable Biddy_Managed_GetPrevVariable(Biddy_Manager MNG, Biddy_Variable v)
Function Biddy_Managed_GetPrevVariable returns previous variable in the global ordering (lower...
Definition: biddyMain.c:1842
EXTERN Biddy_Boolean Biddy_Managed_IsSmaller(Biddy_Manager MNG, Biddy_Variable fv, Biddy_Variable gv)
Function Biddy_Managed_IsSmaller returns TRUE if the first variable is smaller (= lower = previous = ...
Definition: biddyMain.c:2429
EXTERN Biddy_Edge Biddy_Managed_GetVariableValue(Biddy_Manager MNG, Biddy_Variable v)
Function Biddy_Managed_GetVariableValue gets variable&#39;s value.
Definition: biddyMain.c:2120
EXTERN void Biddy_Managed_PurgeAndReorder(Biddy_Manager MNG, Biddy_Edge f, Biddy_Boolean converge)
Function Biddy_Managed_PurgeAndReorder immediately removes non-preserved nodes and triggers reorderin...
Definition: biddyMain.c:4351
EXTERN Biddy_String Biddy_Managed_GetTopVariableName(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_GetTopVariableName returns the name of top variable.
Definition: biddyMain.c:2007
EXTERN unsigned int Biddy_Managed_NodeTableGenerated(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableGenerated.
Definition: biddyStat.c:308
EXTERN unsigned int Biddy_Managed_NodeTableANDORNumber(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableANDORNumber.
Definition: biddyStat.c:794
EXTERN void Biddy_Managed_SetVariableData(Biddy_Manager MNG, Biddy_Variable v, void *x)
Function Biddy_Managed_SetVariableData sets variable&#39;s data.
Definition: biddyMain.c:2180
EXTERN Biddy_Boolean Biddy_Managed_IsVariableDependent(Biddy_Manager MNG, Biddy_Edge f, Biddy_Variable v)
Function Biddy_Managed_IsVariableDependent returns TRUE iff variable is dependent on others in a func...
Definition: biddyOp.c:3910
EXTERN unsigned long long int Biddy_Managed_OPCacheInsert(Biddy_Manager MNG)
Function Biddy_Managed_OPCacheInsert.
Definition: biddyStat.c:1127
EXTERN Biddy_Edge Biddy_Managed_GetConstantZero(Biddy_Manager MNG)
Function Biddy_Managed_GetConstantZero returns constant 0.
Definition: biddyMain.c:1589
EXTERN unsigned int Biddy_Managed_FormulaTableNum(Biddy_Manager MNG)
Function Biddy_Managed_FormulaTableNum returns number of known formulae.
Definition: biddyStat.c:913
EXTERN void Biddy_Managed_GC(Biddy_Manager MNG, Biddy_Variable targetLT, Biddy_Variable targetGEQ, Biddy_Boolean purge, Biddy_Boolean total)
Function Biddy_Managed_GC performs garbage collection.
Definition: biddyMain.c:3762
EXTERN unsigned long long int Biddy_Managed_NodeTableANDORRecursiveNumber(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableANDORRecursiveNumber.
Definition: biddyStat.c:822
EXTERN Biddy_String Biddy_Managed_ReadBddview(Biddy_Manager MNG, const char filename[], Biddy_String name)
Function Biddy_Managed_ReadBddview reads bddview file and creates a Boolean function.
Definition: biddyInOut.c:543
EXTERN Biddy_Edge Biddy_Managed_CreateMinterm(Biddy_Manager MNG, Biddy_Edge support, long long unsigned int x)
Function Biddy_Managed_CreateMinterm generates one minterm.
Definition: biddyOp.c:6074
EXTERN Biddy_Boolean Biddy_Managed_IsHighest(Biddy_Manager MNG, Biddy_Variable v)
Function Biddy_Managed_IsHighest returns TRUE if the variable is the highest one if terminal node is ...
Definition: biddyMain.c:2493
EXTERN Biddy_String Biddy_Managed_GetManagerName(Biddy_Manager MNG)
Function Biddy_Managed_GetManagerName reports the name of the BDD type used in the manager...
Definition: biddyMain.c:1155
EXTERN char Biddy_Managed_GetTopVariableChar(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_GetTopVariableChar returns the first character in the name of top variable...
Definition: biddyMain.c:2035
EXTERN unsigned int Biddy_Managed_CountNodes(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_CountNodes.
Definition: biddyStat.c:85
EXTERN unsigned int Biddy_Managed_NodeTableDRTime(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableDRTime.
Definition: biddyStat.c:709
EXTERN double Biddy_Managed_DensityOfFunction(Biddy_Manager MNG, Biddy_Edge f, unsigned int nvars)
Function Biddy_Managed_DensityOfFunction calculates the ratio of the number of on-set minterms to the...
Definition: biddyStat.c:1670
EXTERN double Biddy_Managed_EvalProbability(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_EvalProbability evaluates BDD.
Definition: biddyMain.c:2366
EXTERN void Biddy_Managed_PrintfBDD(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_PrintfBDD writes raw format using printf.
Definition: biddyInOut.c:1080
EXTERN unsigned int Biddy_Managed_NodeTableMax(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableMax returns maximal (peek) number of nodes in node table...
Definition: biddyStat.c:334
EXTERN Biddy_Variable Biddy_Managed_FoaVariable(Biddy_Manager MNG, Biddy_String x, Biddy_Boolean varelem)
Function Biddy_Managed_FoaVariable finds variable/element or adds new variable (i.e. Boolean function f = x) and new element (i.e. it creates set {{x}}).
Definition: biddyMain.c:2551
EXTERN void Biddy_ExitMNG(Biddy_Manager *mng)
Function Biddy_ExitMNG deletes a manager.
Definition: biddyMain.c:883
EXTERN unsigned int Biddy_Managed_NodeTableNum(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableNum returns number of all nodes currently in node table...
Definition: biddyStat.c:360
EXTERN Biddy_Edge Biddy_Managed_GetConstantOne(Biddy_Manager MNG)
Function Biddy_Managed_GetConstantOne returns constant 1.
Definition: biddyMain.c:1621
EXTERN Biddy_Edge Biddy_Managed_TaggedFoaNode(Biddy_Manager MNG, Biddy_Variable v, Biddy_Edge pf, Biddy_Edge pt, Biddy_Variable ptag, Biddy_Boolean garbageAllowed)
Function Biddy_Managed_TaggedFoaNode finds or adds new node with the given variable and successors...
Definition: biddyMain.c:3244
EXTERN Biddy_Edge Biddy_Managed_Eval2(Biddy_Manager MNG, Biddy_String boolFunc)
Function Biddy_Managed_Eval2 evaluates infix format.
Definition: biddyInOut.c:348
EXTERN Biddy_Edge Biddy_Managed_Or(Biddy_Manager MNG, Biddy_Edge f, Biddy_Edge g)
Function Biddy_Managed_Or calculates Boolean function OR (disjunction).
Definition: biddyOp.c:1243
EXTERN void Biddy_Managed_SetVariableValue(Biddy_Manager MNG, Biddy_Variable v, Biddy_Edge f)
Function Biddy_Managed_SetVariableValue sets variable&#39;s value.
Definition: biddyMain.c:2094
EXTERN unsigned int Biddy_Managed_ListUsed(Biddy_Manager MNG)
Function Biddy_Managed_ListUsed.
Definition: biddyStat.c:938
Biddy_Manager is used to specify manager.
EXTERN Biddy_Edge Biddy_Managed_GetVariableEdge(Biddy_Manager MNG, Biddy_Variable v)
Function Biddy_Managed_GetVariableEdge returns variable&#39;s edge.
Definition: biddyMain.c:1901
EXTERN Biddy_Edge Biddy_Managed_Xor(Biddy_Manager MNG, Biddy_Edge f, Biddy_Edge g)
Function Biddy_Managed_Xor calculates Boolean function XOR.
Definition: biddyOp.c:1913
EXTERN unsigned long long int Biddy_Managed_OPCacheFind(Biddy_Manager MNG)
Function Biddy_Managed_OPCacheFind.
Definition: biddyStat.c:1102
EXTERN void Biddy_Managed_MinimizeBDD(Biddy_Manager MNG, Biddy_String name)
Function Biddy_Managed_MinimizeBDD reorders variables to minimize the node number of the given formul...
Definition: biddyMain.c:5481
EXTERN void Biddy_Managed_Clean(Biddy_Manager MNG)
Function Biddy_Managed_Clean performs cleaning.
Definition: biddyMain.c:4252
EXTERN Biddy_Edge Biddy_Managed_RandomFunction(Biddy_Manager MNG, Biddy_Edge support, double r)
Function Biddy_Managed_RandomFunction generates a random BDD.
Definition: biddyOp.c:6250
EXTERN Biddy_Edge Biddy_Managed_E(Biddy_Manager MNG, Biddy_Edge f, Biddy_Variable v)
Function Biddy_Managed_E calculates an existential quantification of Boolean function.
Definition: biddyOp.c:3610
EXTERN void Biddy_Managed_PrintfTable(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_PrintfTable writes truth table using printf.
Definition: biddyInOut.c:1157
EXTERN Biddy_Variable Biddy_Managed_GetIthVariable(Biddy_Manager MNG, Biddy_Variable i)
Function Biddy_Managed_GetIthVariable returns ith variable in the current global ordering.
Definition: biddyMain.c:1804
EXTERN void Biddy_Managed_WriteSOP(Biddy_Manager MNG, const char filename[], Biddy_Edge f)
Function Biddy_Managed_WriteSOP writes SOP using fprintf.
Definition: biddyInOut.c:1460
EXTERN unsigned int Biddy_Managed_WriteBddview(Biddy_Manager MNG, const char filename[], Biddy_Edge f, const char label[], void *xytable)
Function Biddy_Managed_WriteBDDView writes bddview format using fprintf.
Definition: biddyInOut.c:1804
EXTERN void Biddy_Managed_Refresh(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_Refresh refreshes top node in a given function.
Definition: biddyMain.c:4380
EXTERN Biddy_Edge Biddy_Managed_Change(Biddy_Manager MNG, Biddy_Edge f, Biddy_Variable v)
Function Biddy_Managed_Change change the form of the given variable (positive literal becomes negativ...
Definition: biddyOp.c:5641
EXTERN unsigned long long int Biddy_Managed_NodeTableFindNumber(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableFindNumber.
Definition: biddyStat.c:470
EXTERN void Biddy_Managed_CopyFormula(Biddy_Manager MNG1, Biddy_Manager MNG2, Biddy_String x)
Function Biddy_Managed_CopyFormula uses Biddy_Managed_Copy to copy a graph from one manager to anothe...
Definition: biddyMain.c:5975
EXTERN unsigned long long int Biddy_Managed_NodeTableFoaNumber(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableFoaNumber.
Definition: biddyStat.c:438
EXTERN Biddy_Edge Biddy_Managed_Nor(Biddy_Manager MNG, Biddy_Edge f, Biddy_Edge g)
Function Biddy_Managed_Nor calculates Boolean function NOR (Peirce).
Definition: biddyOp.c:1816
EXTERN float Biddy_Managed_ListAvgLength(Biddy_Manager MNG)
Function Biddy_Managed_ListAvgLength.
Definition: biddyStat.c:1035
EXTERN unsigned int Biddy_Managed_WriteDot(Biddy_Manager MNG, const char filename[], Biddy_Edge f, const char label[], int id, Biddy_Boolean cudd)
Function Biddy_Managed_WriteDot writes dot/graphviz format using fprintf.
Definition: biddyInOut.c:1581
EXTERN unsigned int Biddy_Managed_NodeTableNumVar(Biddy_Manager MNG, Biddy_Variable v)
Function Biddy_Managed_NodeTableNumVar returns number of nodes with a given variable currently in nod...
Definition: biddyStat.c:386
EXTERN Biddy_Edge Biddy_Managed_And(Biddy_Manager MNG, Biddy_Edge f, Biddy_Edge g)
Function Biddy_Managed_And calculates Boolean function AND (conjunction).
Definition: biddyOp.c:812
EXTERN void Biddy_Managed_MaximizeBDD(Biddy_Manager MNG, Biddy_String name)
Function Biddy_Managed_MaximizeBDD reorders variables to maximize the node number of the given functi...
Definition: biddyMain.c:5576
EXTERN Biddy_Variable Biddy_GetTopVariable(Biddy_Edge f)
Function Biddy_GetTopVariable returns the top variable.
Definition: biddyMain.c:1320
EXTERN unsigned long long int Biddy_Managed_NodeTableAddNumber(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableAddNumber.
Definition: biddyStat.c:534
EXTERN unsigned long long int Biddy_Managed_NodeTableCompareNumber(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableCompareNumber.
Definition: biddyStat.c:502
EXTERN void Biddy_Managed_SetAlphabeticOrdering(Biddy_Manager MNG)
Function Biddy_Managed_SetAlphabeticOrdering use variable swapping to create an alphabetic ordering...
Definition: biddyMain.c:5129
EXTERN Biddy_Edge Biddy_Managed_Subset(Biddy_Manager MNG, Biddy_Edge f, Biddy_Variable v, Biddy_Boolean value)
Function Biddy_Managed_Subset calculates a division of Boolean function with a literal.
Definition: biddyOp.c:5826
EXTERN unsigned int Biddy_Managed_ListMaxLength(Biddy_Manager MNG)
Function Biddy_Managed_ListMaxLength.
Definition: biddyStat.c:971
EXTERN void Biddy_Managed_SelectFunction(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_SelectFunction recursively selects all nodes of a given function.
Definition: biddyMain.c:1458
EXTERN Biddy_Boolean Biddy_Managed_IsSelected(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_IsSelected returns TRUE iff the top node of the given function is selected...
Definition: biddyMain.c:1431
EXTERN Biddy_Edge Biddy_Managed_Gt(Biddy_Manager MNG, Biddy_Edge f, Biddy_Edge g)
Function Biddy_Managed_Gt calculates the negation of Boolean implication.
Definition: biddyOp.c:2767
EXTERN Biddy_Edge Biddy_Managed_Not(Biddy_Manager MNG, Biddy_Edge f)
Function Biddy_Managed_Not calculates Boolean function NOT.
Definition: biddyOp.c:100
EXTERN void Biddy_Managed_PrintInfo(Biddy_Manager MNG, FILE *f)
Function Biddy_Managed_PrintInfo prepares a file with stats.
Definition: biddyStat.c:2221
EXTERN unsigned int Biddy_Managed_NodeTableBlockNumber(Biddy_Manager MNG)
Function Biddy_Managed_NodeTableBlockNumber.
Definition: biddyStat.c:283
EXTERN void Biddy_InitMNG(Biddy_Manager *mng, int bddtype)
Function Biddy_InitMNG initialize a manager.
Definition: biddyMain.c:177
EXTERN void Biddy_Managed_ReadVerilogFile(Biddy_Manager MNG, const char filename[], Biddy_String prefix)
Function Biddy_Managed_ReadVerilogFile reads Verilog file and creates variables for all primary input...
Definition: biddyInOut.c:979