You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

679 lines
31 KiB

2 months ago
  1. <HTML>
  2. <HEAD><TITLE>The dddmp package: files</TITLE></HEAD>
  3. <BODY>
  4. <DL>
  5. <DT> <A HREF="#dddmp.h"><CODE>dddmp.h</CODE></A>
  6. <DD> External header file
  7. <DT> <A HREF="#dddmpInt.h"><CODE>dddmpInt.h</CODE></A>
  8. <DD> Internal header file
  9. <DT> <A HREF="#dddmpBinary.c"><CODE>dddmpBinary.c</CODE></A>
  10. <DD> Input and output BDD codes and integers from/to file
  11. <DT> <A HREF="#dddmpConvert.c"><CODE>dddmpConvert.c</CODE></A>
  12. <DD> Conversion between ASCII and binary formats
  13. <DT> <A HREF="#dddmpDbg.c"><CODE>dddmpDbg.c</CODE></A>
  14. <DD> Functions to display BDD files
  15. <DT> <A HREF="#dddmpDdNodeBdd.c"><CODE>dddmpDdNodeBdd.c</CODE></A>
  16. <DD> Functions to handle BDD node infos and numbering
  17. <DT> <A HREF="#dddmpDdNodeCnf.c"><CODE>dddmpDdNodeCnf.c</CODE></A>
  18. <DD> Functions to handle BDD node infos and numbering
  19. while storing a CNF formula from a BDD or an array of BDDs
  20. <DT> <A HREF="#dddmpLoad.c"><CODE>dddmpLoad.c</CODE></A>
  21. <DD> Functions to read in bdds to file
  22. <DT> <A HREF="#dddmpLoadCnf.c"><CODE>dddmpLoadCnf.c</CODE></A>
  23. <DD> Functions to read in CNF from file as BDDs.
  24. <DT> <A HREF="#dddmpNodeAdd.c"><CODE>dddmpNodeAdd.c</CODE></A>
  25. <DD> Functions to handle ADD node infos and numbering
  26. <DT> <A HREF="#dddmpNodeBdd.c"><CODE>dddmpNodeBdd.c</CODE></A>
  27. <DD> Functions to handle BDD node infos and numbering
  28. <DT> <A HREF="#dddmpNodeCnf.c"><CODE>dddmpNodeCnf.c</CODE></A>
  29. <DD> Functions to handle BDD node infos and numbering
  30. while storing a CNF formula from a BDD or an array of BDDs
  31. <DT> <A HREF="#dddmpStoreAdd.c"><CODE>dddmpStoreAdd.c</CODE></A>
  32. <DD> Functions to write ADDs to file.
  33. <DT> <A HREF="#dddmpStoreBdd.c"><CODE>dddmpStoreBdd.c</CODE></A>
  34. <DD> Functions to write BDDs to file.
  35. <DT> <A HREF="#dddmpStoreCnf.c"><CODE>dddmpStoreCnf.c</CODE></A>
  36. <DD> Functions to write out BDDs to file in a CNF format
  37. <DT> <A HREF="#dddmpStoreMisc.c"><CODE>dddmpStoreMisc.c</CODE></A>
  38. <DD> Functions to write out bdds to file in prefixed
  39. and in Blif form.
  40. <DT> <A HREF="#dddmpUtil.c"><CODE>dddmpUtil.c</CODE></A>
  41. <DD> Util Functions for the dddmp package
  42. </DL><HR>
  43. <A NAME="dddmp.h"><H1>dddmp.h</H1></A>
  44. External header file <P>
  45. <B>By: Gianpiero Cabodi and Stefano Quer</B><P>
  46. <DL>
  47. <DT> <A HREF="dddmpAllDet.html#" TARGET="MAIN"><CODE>()</CODE></A>
  48. <DD> Checks for fatal bugs
  49. <DT> <A HREF="dddmpAllDet.html#" TARGET="MAIN"><CODE>()</CODE></A>
  50. <DD> Checks for Warnings: If expr==1 it prints out the warning
  51. on stderr.
  52. <DT> <A HREF="dddmpAllDet.html#" TARGET="MAIN"><CODE>()</CODE></A>
  53. <DD> Checks for fatal bugs and return the DDDMP_FAILURE flag.
  54. <DT> <A HREF="dddmpAllDet.html#" TARGET="MAIN"><CODE>()</CODE></A>
  55. <DD> Checks for fatal bugs and go to the label to deal with
  56. the error.
  57. </DL>
  58. <HR>
  59. <A NAME="dddmpInt.h"><H1>dddmpInt.h</H1></A>
  60. Internal header file <P>
  61. <B>By: Gianpiero Cabodi and Stefano Quer</B><P>
  62. <DL>
  63. <DT> <A HREF="dddmpAllDet.html#" TARGET="MAIN"><CODE>()</CODE></A>
  64. <DD> Memory Allocation Macro for DDDMP
  65. <DT> <A HREF="dddmpAllDet.html#" TARGET="MAIN"><CODE>()</CODE></A>
  66. <DD> Memory Free Macro for DDDMP
  67. </DL>
  68. <HR>
  69. <A NAME="dddmpBinary.c"><H1>dddmpBinary.c</H1></A>
  70. Input and output BDD codes and integers from/to file <P>
  71. <B>By: Gianpiero Cabodi and Stefano Quer</B><P>
  72. Input and output BDD codes and integers from/to file
  73. in binary mode.
  74. DD node codes are written as one byte.
  75. Integers of any length are written as sequences of "linked" bytes.
  76. For each byte 7 bits are used for data and one (MSBit) as link with
  77. a further byte (MSB = 1 means one more byte).
  78. Low level read/write of bytes filter <CR>, <LF> and <ctrl-Z>
  79. with escape sequences. <P>
  80. <DL>
  81. <DT> <A HREF="dddmpAllDet.html#DddmpWriteCode" TARGET="MAIN"><CODE>DddmpWriteCode()</CODE></A>
  82. <DD> Writes 1 byte node code
  83. <DT> <A HREF="dddmpAllDet.html#DddmpReadCode" TARGET="MAIN"><CODE>DddmpReadCode()</CODE></A>
  84. <DD> Reads a 1 byte node code
  85. <DT> <A HREF="dddmpAllDet.html#DddmpWriteInt" TARGET="MAIN"><CODE>DddmpWriteInt()</CODE></A>
  86. <DD> Writes a "packed integer"
  87. <DT> <A HREF="dddmpAllDet.html#DddmpReadInt" TARGET="MAIN"><CODE>DddmpReadInt()</CODE></A>
  88. <DD> Reads a "packed integer"
  89. <DT> <A HREF="dddmpAllDet.html#WriteByteBinary" TARGET="MAIN"><CODE>WriteByteBinary()</CODE></A>
  90. <DD> Writes a byte to file filtering <CR>, <LF> and <ctrl-Z>
  91. <DT> <A HREF="dddmpAllDet.html#ReadByteBinary" TARGET="MAIN"><CODE>ReadByteBinary()</CODE></A>
  92. <DD> Reads a byte from file with escaped <CR>, <LF> and <ctrl-Z>
  93. </DL>
  94. <HR>
  95. <A NAME="dddmpConvert.c"><H1>dddmpConvert.c</H1></A>
  96. Conversion between ASCII and binary formats <P>
  97. <B>By: Gianpiero Cabodi and Stefano Quer</B><P>
  98. Conversion between ASCII and binary formats is presently
  99. supported by loading a BDD in the source format and storing it
  100. in the target one. We plan to introduce ad hoc procedures
  101. avoiding explicit BDD node generation. <P>
  102. <DL>
  103. <DT> <A HREF="dddmpAllDet.html#Dddmp_Text2Bin" TARGET="MAIN"><CODE>Dddmp_Text2Bin()</CODE></A>
  104. <DD> Converts from ASCII to binary format
  105. <DT> <A HREF="dddmpAllDet.html#Dddmp_Bin2Text" TARGET="MAIN"><CODE>Dddmp_Bin2Text()</CODE></A>
  106. <DD> Converts from binary to ASCII format
  107. </DL>
  108. <HR>
  109. <A NAME="dddmpDbg.c"><H1>dddmpDbg.c</H1></A>
  110. Functions to display BDD files <P>
  111. <B>By: Gianpiero Cabodi and Stefano Quer</B><P>
  112. Functions to display BDD files in binary format <P>
  113. <DL>
  114. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddBddDisplayBinary" TARGET="MAIN"><CODE>Dddmp_cuddBddDisplayBinary()</CODE></A>
  115. <DD> Display a binary dump file in a text file
  116. </DL>
  117. <HR>
  118. <A NAME="dddmpDdNodeBdd.c"><H1>dddmpDdNodeBdd.c</H1></A>
  119. Functions to handle BDD node infos and numbering <P>
  120. <B>By: Gianpiero Cabodi and Stefano Quer</B><P>
  121. Functions to handle BDD node infos and numbering. <P>
  122. <DL>
  123. <DT> <A HREF="dddmpAllDet.html#DddmpNumberDdNodes" TARGET="MAIN"><CODE>DddmpNumberDdNodes()</CODE></A>
  124. <DD> Removes nodes from unique table and number them
  125. <DT> <A HREF="dddmpAllDet.html#DddmpUnnumberDdNodes" TARGET="MAIN"><CODE>DddmpUnnumberDdNodes()</CODE></A>
  126. <DD> Restores nodes in unique table, loosing numbering
  127. <DT> <A HREF="dddmpAllDet.html#DddmpWriteNodeIndex" TARGET="MAIN"><CODE>DddmpWriteNodeIndex()</CODE></A>
  128. <DD> Write index to node
  129. <DT> <A HREF="dddmpAllDet.html#DddmpReadNodeIndex" TARGET="MAIN"><CODE>DddmpReadNodeIndex()</CODE></A>
  130. <DD> Reads the index of a node
  131. <DT> <A HREF="dddmpAllDet.html#DddmpVisited" TARGET="MAIN"><CODE>DddmpVisited()</CODE></A>
  132. <DD> Returns true if node is visited
  133. <DT> <A HREF="dddmpAllDet.html#DddmpSetVisited" TARGET="MAIN"><CODE>DddmpSetVisited()</CODE></A>
  134. <DD> Marks a node as visited
  135. <DT> <A HREF="dddmpAllDet.html#DddmpClearVisited" TARGET="MAIN"><CODE>DddmpClearVisited()</CODE></A>
  136. <DD> Marks a node as not visited
  137. <DT> <A HREF="dddmpAllDet.html#NumberNodeRecur" TARGET="MAIN"><CODE>NumberNodeRecur()</CODE></A>
  138. <DD> Number nodes recursively in post-order
  139. <DT> <A HREF="dddmpAllDet.html#RemoveFromUniqueRecur" TARGET="MAIN"><CODE>RemoveFromUniqueRecur()</CODE></A>
  140. <DD> Removes a node from unique table
  141. <DT> <A HREF="dddmpAllDet.html#RestoreInUniqueRecur" TARGET="MAIN"><CODE>RestoreInUniqueRecur()</CODE></A>
  142. <DD> Restores a node in unique table
  143. </DL>
  144. <HR>
  145. <A NAME="dddmpDdNodeCnf.c"><H1>dddmpDdNodeCnf.c</H1></A>
  146. Functions to handle BDD node infos and numbering
  147. while storing a CNF formula from a BDD or an array of BDDs <P>
  148. <B>By: Gianpiero Cabodi and Stefano Quer</B><P>
  149. Functions to handle BDD node infos and numbering
  150. while storing a CNF formula from a BDD or an array of BDDs. <P>
  151. <DL>
  152. <DT> <A HREF="dddmpAllDet.html#DddmpNumberDdNodesCnf" TARGET="MAIN"><CODE>DddmpNumberDdNodesCnf()</CODE></A>
  153. <DD> Removes nodes from unique table and numbers them
  154. <DT> <A HREF="dddmpAllDet.html#DddmpDdNodesCountEdgesAndNumber" TARGET="MAIN"><CODE>DddmpDdNodesCountEdgesAndNumber()</CODE></A>
  155. <DD> Removes nodes from unique table and numbers each node according
  156. to the number of its incoming BDD edges.
  157. <DT> <A HREF="dddmpAllDet.html#DddmpUnnumberDdNodesCnf" TARGET="MAIN"><CODE>DddmpUnnumberDdNodesCnf()</CODE></A>
  158. <DD> Restores nodes in unique table, loosing numbering
  159. <DT> <A HREF="dddmpAllDet.html#DddmpPrintBddAndNext" TARGET="MAIN"><CODE>DddmpPrintBddAndNext()</CODE></A>
  160. <DD> Prints debug information
  161. <DT> <A HREF="dddmpAllDet.html#DddmpWriteNodeIndexCnfBis" TARGET="MAIN"><CODE>DddmpWriteNodeIndexCnfBis()</CODE></A>
  162. <DD> Write index to node
  163. <DT> <A HREF="dddmpAllDet.html#DddmpWriteNodeIndexCnf" TARGET="MAIN"><CODE>DddmpWriteNodeIndexCnf()</CODE></A>
  164. <DD> Write index to node
  165. <DT> <A HREF="dddmpAllDet.html#DddmpReadNodeIndexCnf" TARGET="MAIN"><CODE>DddmpReadNodeIndexCnf()</CODE></A>
  166. <DD> Reads the index of a node
  167. <DT> <A HREF="dddmpAllDet.html#DddmpClearVisitedCnfRecur" TARGET="MAIN"><CODE>DddmpClearVisitedCnfRecur()</CODE></A>
  168. <DD> Mark ALL nodes as not visited
  169. <DT> <A HREF="dddmpAllDet.html#DddmpVisitedCnf" TARGET="MAIN"><CODE>DddmpVisitedCnf()</CODE></A>
  170. <DD> Returns true if node is visited
  171. <DT> <A HREF="dddmpAllDet.html#DddmpSetVisitedCnf" TARGET="MAIN"><CODE>DddmpSetVisitedCnf()</CODE></A>
  172. <DD> Marks a node as visited
  173. <DT> <A HREF="dddmpAllDet.html#DddmpClearVisitedCnf" TARGET="MAIN"><CODE>DddmpClearVisitedCnf()</CODE></A>
  174. <DD> Marks a node as not visited
  175. <DT> <A HREF="dddmpAllDet.html#NumberNodeRecurCnf" TARGET="MAIN"><CODE>NumberNodeRecurCnf()</CODE></A>
  176. <DD> Number nodes recursively in post-order
  177. <DT> <A HREF="dddmpAllDet.html#DddmpDdNodesCheckIncomingAndScanPath" TARGET="MAIN"><CODE>DddmpDdNodesCheckIncomingAndScanPath()</CODE></A>
  178. <DD> Number nodes recursively in post-order
  179. <DT> <A HREF="dddmpAllDet.html#DddmpDdNodesNumberEdgesRecur" TARGET="MAIN"><CODE>DddmpDdNodesNumberEdgesRecur()</CODE></A>
  180. <DD> Number nodes recursively in post-order
  181. <DT> <A HREF="dddmpAllDet.html#DddmpDdNodesResetCountRecur" TARGET="MAIN"><CODE>DddmpDdNodesResetCountRecur()</CODE></A>
  182. <DD> Resets counter and visited flag for ALL nodes of a BDD
  183. <DT> <A HREF="dddmpAllDet.html#DddmpDdNodesCountEdgesRecur" TARGET="MAIN"><CODE>DddmpDdNodesCountEdgesRecur()</CODE></A>
  184. <DD> Counts the number of incoming edges for each node of a BDD
  185. <DT> <A HREF="dddmpAllDet.html#RemoveFromUniqueRecurCnf" TARGET="MAIN"><CODE>RemoveFromUniqueRecurCnf()</CODE></A>
  186. <DD> Removes a node from unique table
  187. <DT> <A HREF="dddmpAllDet.html#RestoreInUniqueRecurCnf" TARGET="MAIN"><CODE>RestoreInUniqueRecurCnf()</CODE></A>
  188. <DD> Restores a node in unique table
  189. <DT> <A HREF="dddmpAllDet.html#DddmpPrintBddAndNextRecur" TARGET="MAIN"><CODE>DddmpPrintBddAndNextRecur()</CODE></A>
  190. <DD> Prints debug info
  191. </DL>
  192. <HR>
  193. <A NAME="dddmpLoad.c"><H1>dddmpLoad.c</H1></A>
  194. Functions to read in bdds to file <P>
  195. <B>By: Gianpiero Cabodi and Stefano Quer</B><P>
  196. Functions to read in bdds to file. BDDs
  197. are represended on file either in text or binary format under the
  198. following rules. A file contains a forest of BDDs (a vector of
  199. Boolean functions). BDD nodes are numbered with contiguous numbers,
  200. from 1 to NNodes (total number of nodes on a file). 0 is not used to
  201. allow negative node indexes for complemented edges. A file contains
  202. a header, including information about variables and roots to BDD
  203. functions, followed by the list of nodes. BDD nodes are listed
  204. according to their numbering, and in the present implementation
  205. numbering follows a post-order strategy, in such a way that a node
  206. is never listed before its Then/Else children. <P>
  207. <DL>
  208. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddBddLoad" TARGET="MAIN"><CODE>Dddmp_cuddBddLoad()</CODE></A>
  209. <DD> Reads a dump file representing the argument BDD.
  210. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddBddArrayLoad" TARGET="MAIN"><CODE>Dddmp_cuddBddArrayLoad()</CODE></A>
  211. <DD> Reads a dump file representing the argument BDDs.
  212. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddAddLoad" TARGET="MAIN"><CODE>Dddmp_cuddAddLoad()</CODE></A>
  213. <DD> Reads a dump file representing the argument ADD.
  214. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddAddArrayLoad" TARGET="MAIN"><CODE>Dddmp_cuddAddArrayLoad()</CODE></A>
  215. <DD> Reads a dump file representing the argument ADDs.
  216. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddHeaderLoad" TARGET="MAIN"><CODE>Dddmp_cuddHeaderLoad()</CODE></A>
  217. <DD> Reads the header of a dump file representing the argument BDDs
  218. <DT> <A HREF="dddmpAllDet.html#DddmpCuddDdArrayLoad" TARGET="MAIN"><CODE>DddmpCuddDdArrayLoad()</CODE></A>
  219. <DD> Reads a dump file representing the argument BDDs.
  220. <DT> <A HREF="dddmpAllDet.html#DddmpBddReadHeader" TARGET="MAIN"><CODE>DddmpBddReadHeader()</CODE></A>
  221. <DD> Reads a the header of a dump file representing the
  222. argument BDDs.
  223. <DT> <A HREF="dddmpAllDet.html#DddmpFreeHeader" TARGET="MAIN"><CODE>DddmpFreeHeader()</CODE></A>
  224. <DD> Frees the internal header structure.
  225. </DL>
  226. <HR>
  227. <A NAME="dddmpLoadCnf.c"><H1>dddmpLoadCnf.c</H1></A>
  228. Functions to read in CNF from file as BDDs. <P>
  229. <B>By: Gianpiero Cabodi and Stefano Quer</B><P>
  230. Functions to read in CNF from file as BDDs. <P>
  231. <DL>
  232. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddBddLoadCnf" TARGET="MAIN"><CODE>Dddmp_cuddBddLoadCnf()</CODE></A>
  233. <DD> Reads a dump file in a CNF format.
  234. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddBddArrayLoadCnf" TARGET="MAIN"><CODE>Dddmp_cuddBddArrayLoadCnf()</CODE></A>
  235. <DD> Reads a dump file in a CNF format.
  236. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddHeaderLoadCnf" TARGET="MAIN"><CODE>Dddmp_cuddHeaderLoadCnf()</CODE></A>
  237. <DD> Reads the header of a dump file representing the argument BDDs
  238. <DT> <A HREF="dddmpAllDet.html#DddmpCuddDdArrayLoadCnf" TARGET="MAIN"><CODE>DddmpCuddDdArrayLoadCnf()</CODE></A>
  239. <DD> Reads a dump file representing the argument BDDs in CNF
  240. format.
  241. <DT> <A HREF="dddmpAllDet.html#DddmpBddReadHeaderCnf" TARGET="MAIN"><CODE>DddmpBddReadHeaderCnf()</CODE></A>
  242. <DD> Reads a the header of a dump file representing the argument
  243. BDDs.
  244. <DT> <A HREF="dddmpAllDet.html#DddmpFreeHeaderCnf" TARGET="MAIN"><CODE>DddmpFreeHeaderCnf()</CODE></A>
  245. <DD> Frees the internal header structure.
  246. <DT> <A HREF="dddmpAllDet.html#DddmpReadCnfClauses" TARGET="MAIN"><CODE>DddmpReadCnfClauses()</CODE></A>
  247. <DD> Read the CNF clauses from the file in the standard DIMACS
  248. format.
  249. <DT> <A HREF="dddmpAllDet.html#DddmpCnfClauses2Bdd" TARGET="MAIN"><CODE>DddmpCnfClauses2Bdd()</CODE></A>
  250. <DD> Transforms CNF clauses into BDDs.
  251. </DL>
  252. <HR>
  253. <A NAME="dddmpNodeAdd.c"><H1>dddmpNodeAdd.c</H1></A>
  254. Functions to handle ADD node infos and numbering <P>
  255. <B>By: Gianpiero Cabodi and Stefano Quer</B><P>
  256. Functions to handle ADD node infos and numbering. <P>
  257. <DL>
  258. <DT> <A HREF="dddmpAllDet.html#DddmpNumberAddNodes" TARGET="MAIN"><CODE>DddmpNumberAddNodes()</CODE></A>
  259. <DD> Removes nodes from unique table and number them
  260. <DT> <A HREF="dddmpAllDet.html#DddmpUnnumberAddNodes" TARGET="MAIN"><CODE>DddmpUnnumberAddNodes()</CODE></A>
  261. <DD> Restores nodes in unique table, loosing numbering
  262. <DT> <A HREF="dddmpAllDet.html#DddmpWriteNodeIndexAdd" TARGET="MAIN"><CODE>DddmpWriteNodeIndexAdd()</CODE></A>
  263. <DD> Write index to node
  264. <DT> <A HREF="dddmpAllDet.html#DddmpReadNodeIndexAdd" TARGET="MAIN"><CODE>DddmpReadNodeIndexAdd()</CODE></A>
  265. <DD> Reads the index of a node
  266. <DT> <A HREF="dddmpAllDet.html#DddmpVisitedAdd" TARGET="MAIN"><CODE>DddmpVisitedAdd()</CODE></A>
  267. <DD> Returns true if node is visited
  268. <DT> <A HREF="dddmpAllDet.html#DddmpSetVisitedAdd" TARGET="MAIN"><CODE>DddmpSetVisitedAdd()</CODE></A>
  269. <DD> Marks a node as visited
  270. <DT> <A HREF="dddmpAllDet.html#DddmpClearVisitedAdd" TARGET="MAIN"><CODE>DddmpClearVisitedAdd()</CODE></A>
  271. <DD> Marks a node as not visited
  272. <DT> <A HREF="dddmpAllDet.html#NumberNodeRecurAdd" TARGET="MAIN"><CODE>NumberNodeRecurAdd()</CODE></A>
  273. <DD> Number nodes recursively in post-order
  274. <DT> <A HREF="dddmpAllDet.html#RemoveFromUniqueRecurAdd" TARGET="MAIN"><CODE>RemoveFromUniqueRecurAdd()</CODE></A>
  275. <DD> Removes a node from unique table
  276. <DT> <A HREF="dddmpAllDet.html#RestoreInUniqueRecurAdd" TARGET="MAIN"><CODE>RestoreInUniqueRecurAdd()</CODE></A>
  277. <DD> Restores a node in unique table
  278. </DL>
  279. <HR>
  280. <A NAME="dddmpNodeBdd.c"><H1>dddmpNodeBdd.c</H1></A>
  281. Functions to handle BDD node infos and numbering <P>
  282. <B>By: Gianpiero Cabodi and Stefano Quer</B><P>
  283. Functions to handle BDD node infos and numbering. <P>
  284. <DL>
  285. <DT> <A HREF="dddmpAllDet.html#DddmpNumberBddNodes" TARGET="MAIN"><CODE>DddmpNumberBddNodes()</CODE></A>
  286. <DD> Removes nodes from unique table and number them
  287. <DT> <A HREF="dddmpAllDet.html#DddmpUnnumberBddNodes" TARGET="MAIN"><CODE>DddmpUnnumberBddNodes()</CODE></A>
  288. <DD> Restores nodes in unique table, loosing numbering
  289. <DT> <A HREF="dddmpAllDet.html#DddmpWriteNodeIndexBdd" TARGET="MAIN"><CODE>DddmpWriteNodeIndexBdd()</CODE></A>
  290. <DD> Write index to node
  291. <DT> <A HREF="dddmpAllDet.html#DddmpReadNodeIndexBdd" TARGET="MAIN"><CODE>DddmpReadNodeIndexBdd()</CODE></A>
  292. <DD> Reads the index of a node
  293. <DT> <A HREF="dddmpAllDet.html#DddmpVisitedBdd" TARGET="MAIN"><CODE>DddmpVisitedBdd()</CODE></A>
  294. <DD> Returns true if node is visited
  295. <DT> <A HREF="dddmpAllDet.html#DddmpSetVisitedBdd" TARGET="MAIN"><CODE>DddmpSetVisitedBdd()</CODE></A>
  296. <DD> Marks a node as visited
  297. <DT> <A HREF="dddmpAllDet.html#DddmpClearVisitedBdd" TARGET="MAIN"><CODE>DddmpClearVisitedBdd()</CODE></A>
  298. <DD> Marks a node as not visited
  299. <DT> <A HREF="dddmpAllDet.html#NumberNodeRecurBdd" TARGET="MAIN"><CODE>NumberNodeRecurBdd()</CODE></A>
  300. <DD> Number nodes recursively in post-order
  301. <DT> <A HREF="dddmpAllDet.html#RemoveFromUniqueRecurBdd" TARGET="MAIN"><CODE>RemoveFromUniqueRecurBdd()</CODE></A>
  302. <DD> Removes a node from unique table
  303. <DT> <A HREF="dddmpAllDet.html#RestoreInUniqueRecurBdd" TARGET="MAIN"><CODE>RestoreInUniqueRecurBdd()</CODE></A>
  304. <DD> Restores a node in unique table
  305. </DL>
  306. <HR>
  307. <A NAME="dddmpNodeCnf.c"><H1>dddmpNodeCnf.c</H1></A>
  308. Functions to handle BDD node infos and numbering
  309. while storing a CNF formula from a BDD or an array of BDDs <P>
  310. <B>By: Gianpiero Cabodi and Stefano Quer</B><P>
  311. Functions to handle BDD node infos and numbering
  312. while storing a CNF formula from a BDD or an array of BDDs. <P>
  313. <DL>
  314. <DT> <A HREF="dddmpAllDet.html#DddmpNumberDdNodesCnf" TARGET="MAIN"><CODE>DddmpNumberDdNodesCnf()</CODE></A>
  315. <DD> Removes nodes from unique table and numbers them
  316. <DT> <A HREF="dddmpAllDet.html#DddmpDdNodesCountEdgesAndNumber" TARGET="MAIN"><CODE>DddmpDdNodesCountEdgesAndNumber()</CODE></A>
  317. <DD> Removes nodes from unique table and numbers each node according
  318. to the number of its incoming BDD edges.
  319. <DT> <A HREF="dddmpAllDet.html#DddmpUnnumberDdNodesCnf" TARGET="MAIN"><CODE>DddmpUnnumberDdNodesCnf()</CODE></A>
  320. <DD> Restores nodes in unique table, loosing numbering
  321. <DT> <A HREF="dddmpAllDet.html#DddmpPrintBddAndNext" TARGET="MAIN"><CODE>DddmpPrintBddAndNext()</CODE></A>
  322. <DD> Prints debug information
  323. <DT> <A HREF="dddmpAllDet.html#DddmpWriteNodeIndexCnf" TARGET="MAIN"><CODE>DddmpWriteNodeIndexCnf()</CODE></A>
  324. <DD> Write index to node
  325. <DT> <A HREF="dddmpAllDet.html#DddmpVisitedCnf" TARGET="MAIN"><CODE>DddmpVisitedCnf()</CODE></A>
  326. <DD> Returns true if node is visited
  327. <DT> <A HREF="dddmpAllDet.html#DddmpSetVisitedCnf" TARGET="MAIN"><CODE>DddmpSetVisitedCnf()</CODE></A>
  328. <DD> Marks a node as visited
  329. <DT> <A HREF="dddmpAllDet.html#DddmpReadNodeIndexCnf" TARGET="MAIN"><CODE>DddmpReadNodeIndexCnf()</CODE></A>
  330. <DD> Reads the index of a node
  331. <DT> <A HREF="dddmpAllDet.html#DddmpWriteNodeIndexCnfWithTerminalCheck" TARGET="MAIN"><CODE>DddmpWriteNodeIndexCnfWithTerminalCheck()</CODE></A>
  332. <DD> Write index to node
  333. <DT> <A HREF="dddmpAllDet.html#DddmpClearVisitedCnfRecur" TARGET="MAIN"><CODE>DddmpClearVisitedCnfRecur()</CODE></A>
  334. <DD> Mark ALL nodes as not visited
  335. <DT> <A HREF="dddmpAllDet.html#DddmpClearVisitedCnf" TARGET="MAIN"><CODE>DddmpClearVisitedCnf()</CODE></A>
  336. <DD> Marks a node as not visited
  337. <DT> <A HREF="dddmpAllDet.html#NumberNodeRecurCnf" TARGET="MAIN"><CODE>NumberNodeRecurCnf()</CODE></A>
  338. <DD> Number nodes recursively in post-order
  339. <DT> <A HREF="dddmpAllDet.html#DddmpDdNodesCheckIncomingAndScanPath" TARGET="MAIN"><CODE>DddmpDdNodesCheckIncomingAndScanPath()</CODE></A>
  340. <DD> Number nodes recursively in post-order
  341. <DT> <A HREF="dddmpAllDet.html#DddmpDdNodesNumberEdgesRecur" TARGET="MAIN"><CODE>DddmpDdNodesNumberEdgesRecur()</CODE></A>
  342. <DD> Number nodes recursively in post-order
  343. <DT> <A HREF="dddmpAllDet.html#DddmpDdNodesResetCountRecur" TARGET="MAIN"><CODE>DddmpDdNodesResetCountRecur()</CODE></A>
  344. <DD> Resets counter and visited flag for ALL nodes of a BDD
  345. <DT> <A HREF="dddmpAllDet.html#DddmpDdNodesCountEdgesRecur" TARGET="MAIN"><CODE>DddmpDdNodesCountEdgesRecur()</CODE></A>
  346. <DD> Counts the number of incoming edges for each node of a BDD
  347. <DT> <A HREF="dddmpAllDet.html#RemoveFromUniqueRecurCnf" TARGET="MAIN"><CODE>RemoveFromUniqueRecurCnf()</CODE></A>
  348. <DD> Removes a node from unique table
  349. <DT> <A HREF="dddmpAllDet.html#RestoreInUniqueRecurCnf" TARGET="MAIN"><CODE>RestoreInUniqueRecurCnf()</CODE></A>
  350. <DD> Restores a node in unique table
  351. <DT> <A HREF="dddmpAllDet.html#DddmpPrintBddAndNextRecur" TARGET="MAIN"><CODE>DddmpPrintBddAndNextRecur()</CODE></A>
  352. <DD> Prints debug info
  353. </DL>
  354. <HR>
  355. <A NAME="dddmpStoreAdd.c"><H1>dddmpStoreAdd.c</H1></A>
  356. Functions to write ADDs to file. <P>
  357. <B>By: Gianpiero Cabodi and Stefano Quer</B><P>
  358. Functions to write ADDs to file.
  359. ADDs are represended on file either in text or binary format under the
  360. following rules. A file contains a forest of ADDs (a vector of
  361. Boolean functions). ADD nodes are numbered with contiguous numbers,
  362. from 1 to NNodes (total number of nodes on a file). 0 is not used to
  363. allow negative node indexes for complemented edges. A file contains
  364. a header, including information about variables and roots to ADD
  365. functions, followed by the list of nodes.
  366. ADD nodes are listed according to their numbering, and in the present
  367. implementation numbering follows a post-order strategy, in such a way
  368. that a node is never listed before its Then/Else children. <P>
  369. <DL>
  370. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddAddStore" TARGET="MAIN"><CODE>Dddmp_cuddAddStore()</CODE></A>
  371. <DD> Writes a dump file representing the argument ADD.
  372. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddAddArrayStore" TARGET="MAIN"><CODE>Dddmp_cuddAddArrayStore()</CODE></A>
  373. <DD> Writes a dump file representing the argument Array of ADDs.
  374. <DT> <A HREF="dddmpAllDet.html#DddmpCuddDdArrayStoreBdd" TARGET="MAIN"><CODE>DddmpCuddDdArrayStoreBdd()</CODE></A>
  375. <DD> Writes a dump file representing the argument Array of
  376. BDDs/ADDs.
  377. <DT> <A HREF="dddmpAllDet.html#NodeStoreRecurAdd" TARGET="MAIN"><CODE>NodeStoreRecurAdd()</CODE></A>
  378. <DD> Performs the recursive step of Dddmp_bddStore.
  379. <DT> <A HREF="dddmpAllDet.html#NodeTextStoreAdd" TARGET="MAIN"><CODE>NodeTextStoreAdd()</CODE></A>
  380. <DD> Store One Single Node in Text Format.
  381. </DL>
  382. <HR>
  383. <A NAME="dddmpStoreBdd.c"><H1>dddmpStoreBdd.c</H1></A>
  384. Functions to write BDDs to file. <P>
  385. <B>By: Gianpiero Cabodi and Stefano Quer</B><P>
  386. Functions to write BDDs to file.
  387. BDDs are represended on file either in text or binary format under the
  388. following rules. A file contains a forest of BDDs (a vector of
  389. Boolean functions). BDD nodes are numbered with contiguous numbers,
  390. from 1 to NNodes (total number of nodes on a file). 0 is not used to
  391. allow negative node indexes for complemented edges. A file contains
  392. a header, including information about variables and roots to BDD
  393. functions, followed by the list of nodes. BDD nodes are listed
  394. according to their numbering, and in the present implementation
  395. numbering follows a post-order strategy, in such a way that a node
  396. is never listed before its Then/Else children. <P>
  397. <DL>
  398. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddBddStore" TARGET="MAIN"><CODE>Dddmp_cuddBddStore()</CODE></A>
  399. <DD> Writes a dump file representing the argument BDD.
  400. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddBddArrayStore" TARGET="MAIN"><CODE>Dddmp_cuddBddArrayStore()</CODE></A>
  401. <DD> Writes a dump file representing the argument Array of BDDs.
  402. <DT> <A HREF="dddmpAllDet.html#DddmpCuddBddArrayStore" TARGET="MAIN"><CODE>DddmpCuddBddArrayStore()</CODE></A>
  403. <DD> Writes a dump file representing the argument Array of
  404. BDDs.
  405. <DT> <A HREF="dddmpAllDet.html#NodeStoreRecurBdd" TARGET="MAIN"><CODE>NodeStoreRecurBdd()</CODE></A>
  406. <DD> Performs the recursive step of Dddmp_bddStore.
  407. <DT> <A HREF="dddmpAllDet.html#NodeTextStoreBdd" TARGET="MAIN"><CODE>NodeTextStoreBdd()</CODE></A>
  408. <DD> Store One Single Node in Text Format.
  409. <DT> <A HREF="dddmpAllDet.html#NodeBinaryStoreBdd" TARGET="MAIN"><CODE>NodeBinaryStoreBdd()</CODE></A>
  410. <DD> Store One Single Node in Binary Format.
  411. </DL>
  412. <HR>
  413. <A NAME="dddmpStoreCnf.c"><H1>dddmpStoreCnf.c</H1></A>
  414. Functions to write out BDDs to file in a CNF format <P>
  415. <B>By: Gianpiero Cabodi and Stefano Quer</B><P>
  416. Functions to write out BDDs to file in a CNF format. <P>
  417. <DL>
  418. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddBddStoreCnf" TARGET="MAIN"><CODE>Dddmp_cuddBddStoreCnf()</CODE></A>
  419. <DD> Writes a dump file representing the argument BDD in
  420. a CNF format.
  421. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddBddArrayStoreCnf" TARGET="MAIN"><CODE>Dddmp_cuddBddArrayStoreCnf()</CODE></A>
  422. <DD> Writes a dump file representing the argument array of BDDs
  423. in CNF format.
  424. <DT> <A HREF="dddmpAllDet.html#DddmpCuddBddArrayStoreCnf" TARGET="MAIN"><CODE>DddmpCuddBddArrayStoreCnf()</CODE></A>
  425. <DD> Writes a dump file representing the argument Array of
  426. BDDs in the CNF standard format.
  427. <DT> <A HREF="dddmpAllDet.html#StoreCnfNodeByNode" TARGET="MAIN"><CODE>StoreCnfNodeByNode()</CODE></A>
  428. <DD> Store the BDD as CNF clauses.
  429. <DT> <A HREF="dddmpAllDet.html#StoreCnfNodeByNodeRecur" TARGET="MAIN"><CODE>StoreCnfNodeByNodeRecur()</CODE></A>
  430. <DD> Performs the recursive step of Dddmp_bddStore.
  431. <DT> <A HREF="dddmpAllDet.html#StoreCnfOneNode" TARGET="MAIN"><CODE>StoreCnfOneNode()</CODE></A>
  432. <DD> Store One Single BDD Node.
  433. <DT> <A HREF="dddmpAllDet.html#StoreCnfMaxtermByMaxterm" TARGET="MAIN"><CODE>StoreCnfMaxtermByMaxterm()</CODE></A>
  434. <DD> Prints a disjoint sum of products.
  435. <DT> <A HREF="dddmpAllDet.html#StoreCnfBest" TARGET="MAIN"><CODE>StoreCnfBest()</CODE></A>
  436. <DD> Prints a disjoint sum of products with intermediate
  437. cutting points.
  438. <DT> <A HREF="dddmpAllDet.html#StoreCnfMaxtermByMaxtermRecur" TARGET="MAIN"><CODE>StoreCnfMaxtermByMaxtermRecur()</CODE></A>
  439. <DD> Performs the recursive step of Print Maxterm.
  440. <DT> <A HREF="dddmpAllDet.html#StoreCnfBestNotSharedRecur" TARGET="MAIN"><CODE>StoreCnfBestNotSharedRecur()</CODE></A>
  441. <DD> Performs the recursive step of Print Best on Not Shared
  442. sub-BDDs.
  443. <DT> <A HREF="dddmpAllDet.html#StoreCnfBestSharedRecur" TARGET="MAIN"><CODE>StoreCnfBestSharedRecur()</CODE></A>
  444. <DD> Performs the recursive step of Print Best on Shared
  445. sub-BDDs.
  446. <DT> <A HREF="dddmpAllDet.html#printCubeCnf" TARGET="MAIN"><CODE>printCubeCnf()</CODE></A>
  447. <DD> Print One Cube in CNF Format.
  448. </DL>
  449. <HR>
  450. <A NAME="dddmpStoreMisc.c"><H1>dddmpStoreMisc.c</H1></A>
  451. Functions to write out bdds to file in prefixed
  452. and in Blif form. <P>
  453. <B>By: Gianpiero Cabodi and Stefano Quer</B><P>
  454. Functions to write out bdds to file.
  455. BDDs are represended on file in text format.
  456. Each node is stored as a multiplexer in a prefix notation format for
  457. the prefix notation file or in PLA format for the blif file. <P>
  458. <DL>
  459. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddBddStorePrefix" TARGET="MAIN"><CODE>Dddmp_cuddBddStorePrefix()</CODE></A>
  460. <DD> Writes a dump file representing the argument BDD in
  461. a prefix notation.
  462. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddBddArrayStorePrefix" TARGET="MAIN"><CODE>Dddmp_cuddBddArrayStorePrefix()</CODE></A>
  463. <DD> Writes a dump file representing the argument BDD in
  464. a prefix notation.
  465. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddBddStoreBlif" TARGET="MAIN"><CODE>Dddmp_cuddBddStoreBlif()</CODE></A>
  466. <DD> Writes a dump file representing the argument BDD in
  467. a Blif/Exlif notation.
  468. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddBddArrayStoreBlif" TARGET="MAIN"><CODE>Dddmp_cuddBddArrayStoreBlif()</CODE></A>
  469. <DD> Writes a dump file representing the argument BDD in
  470. a Blif/Exlif notation.
  471. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddBddStoreSmv" TARGET="MAIN"><CODE>Dddmp_cuddBddStoreSmv()</CODE></A>
  472. <DD> Writes a dump file representing the argument BDD in
  473. a prefix notation.
  474. <DT> <A HREF="dddmpAllDet.html#Dddmp_cuddBddArrayStoreSmv" TARGET="MAIN"><CODE>Dddmp_cuddBddArrayStoreSmv()</CODE></A>
  475. <DD> Writes a dump file representing the argument BDD in
  476. a prefix notation.
  477. <DT> <A HREF="dddmpAllDet.html#DddmpCuddDdArrayStorePrefix" TARGET="MAIN"><CODE>DddmpCuddDdArrayStorePrefix()</CODE></A>
  478. <DD> Internal function to writes a dump file representing the
  479. argument BDD in a prefix notation.
  480. <DT> <A HREF="dddmpAllDet.html#DddmpCuddDdArrayStorePrefixBody" TARGET="MAIN"><CODE>DddmpCuddDdArrayStorePrefixBody()</CODE></A>
  481. <DD> Internal function to writes a dump file representing the
  482. argument BDD in a prefix notation. Writes the body of the file.
  483. <DT> <A HREF="dddmpAllDet.html#DddmpCuddDdArrayStorePrefixStep" TARGET="MAIN"><CODE>DddmpCuddDdArrayStorePrefixStep()</CODE></A>
  484. <DD> Performs the recursive step of
  485. DddmpCuddDdArrayStorePrefixBody.
  486. <DT> <A HREF="dddmpAllDet.html#DddmpCuddDdArrayStoreBlif" TARGET="MAIN"><CODE>DddmpCuddDdArrayStoreBlif()</CODE></A>
  487. <DD> Writes a blif file representing the argument BDDs.
  488. <DT> <A HREF="dddmpAllDet.html#DddmpCuddDdArrayStoreBlifBody" TARGET="MAIN"><CODE>DddmpCuddDdArrayStoreBlifBody()</CODE></A>
  489. <DD> Writes a blif body representing the argument BDDs.
  490. <DT> <A HREF="dddmpAllDet.html#DddmpCuddDdArrayStoreBlifStep" TARGET="MAIN"><CODE>DddmpCuddDdArrayStoreBlifStep()</CODE></A>
  491. <DD> Performs the recursive step of DddmpCuddDdArrayStoreBlif.
  492. <DT> <A HREF="dddmpAllDet.html#DddmpCuddDdArrayStoreSmv" TARGET="MAIN"><CODE>DddmpCuddDdArrayStoreSmv()</CODE></A>
  493. <DD> Internal function to writes a dump file representing the
  494. argument BDD in a SMV notation.
  495. <DT> <A HREF="dddmpAllDet.html#DddmpCuddDdArrayStoreSmvBody" TARGET="MAIN"><CODE>DddmpCuddDdArrayStoreSmvBody()</CODE></A>
  496. <DD> Internal function to writes a dump file representing the
  497. argument BDD in a SMV notation. Writes the body of the file.
  498. <DT> <A HREF="dddmpAllDet.html#DddmpCuddDdArrayStoreSmvStep" TARGET="MAIN"><CODE>DddmpCuddDdArrayStoreSmvStep()</CODE></A>
  499. <DD> Performs the recursive step of
  500. DddmpCuddDdArrayStoreSmvBody.
  501. </DL>
  502. <HR>
  503. <A NAME="dddmpUtil.c"><H1>dddmpUtil.c</H1></A>
  504. Util Functions for the dddmp package <P>
  505. <B>By: Gianpiero Cabodi and Stefano Quer</B><P>
  506. Functions to manipulate arrays. <P>
  507. <DL>
  508. <DT> <A HREF="dddmpAllDet.html#QsortStrcmp" TARGET="MAIN"><CODE>QsortStrcmp()</CODE></A>
  509. <DD> String compare for qsort
  510. <DT> <A HREF="dddmpAllDet.html#FindVarname" TARGET="MAIN"><CODE>FindVarname()</CODE></A>
  511. <DD> Performs binary search of a name within a sorted array
  512. <DT> <A HREF="dddmpAllDet.html#DddmpStrDup" TARGET="MAIN"><CODE>DddmpStrDup()</CODE></A>
  513. <DD> Duplicates a string
  514. <DT> <A HREF="dddmpAllDet.html#DddmpStrArrayDup" TARGET="MAIN"><CODE>DddmpStrArrayDup()</CODE></A>
  515. <DD> Duplicates an array of strings
  516. <DT> <A HREF="dddmpAllDet.html#DddmpStrArrayRead" TARGET="MAIN"><CODE>DddmpStrArrayRead()</CODE></A>
  517. <DD> Inputs an array of strings
  518. <DT> <A HREF="dddmpAllDet.html#DddmpStrArrayWrite" TARGET="MAIN"><CODE>DddmpStrArrayWrite()</CODE></A>
  519. <DD> Outputs an array of strings
  520. <DT> <A HREF="dddmpAllDet.html#DddmpStrArrayFree" TARGET="MAIN"><CODE>DddmpStrArrayFree()</CODE></A>
  521. <DD> Frees an array of strings
  522. <DT> <A HREF="dddmpAllDet.html#DddmpIntArrayDup" TARGET="MAIN"><CODE>DddmpIntArrayDup()</CODE></A>
  523. <DD> Duplicates an array of ints
  524. <DT> <A HREF="dddmpAllDet.html#DddmpIntArrayRead" TARGET="MAIN"><CODE>DddmpIntArrayRead()</CODE></A>
  525. <DD> Inputs an array of ints
  526. <DT> <A HREF="dddmpAllDet.html#DddmpIntArrayWrite" TARGET="MAIN"><CODE>DddmpIntArrayWrite()</CODE></A>
  527. <DD> Outputs an array of ints
  528. </DL>
  529. <HR>
  530. Last updated on 1040218 17h14
  531. </BODY></HTML>