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.

693 lines
27 KiB

2 months ago
  1. <HTML>
  2. <HEAD><TITLE>The dddmp package</TITLE></HEAD>
  3. <BODY>
  4. <DL>
  5. <dt><pre>
  6. <A NAME="Dddmp_Bin2Text"></A>
  7. int <I></I>
  8. <B>Dddmp_Bin2Text</B>(
  9. char * <b>filein</b>, <i>IN: name of binary file</i>
  10. char * <b>fileout</b> <i>IN: name of ASCII file</i>
  11. )
  12. </pre>
  13. <dd> Converts from binary to ASCII format. A BDD array is loaded and
  14. and stored to the target file.
  15. <p>
  16. <dd> <b>Side Effects</b> None
  17. <p>
  18. <dd> <b>See Also</b> <code><a href="#Dddmp_Text2Bin()">Dddmp_Text2Bin()</a>
  19. </code>
  20. <dt><pre>
  21. <A NAME="Dddmp_Text2Bin"></A>
  22. int <I></I>
  23. <B>Dddmp_Text2Bin</B>(
  24. char * <b>filein</b>, <i>IN: name of ASCII file</i>
  25. char * <b>fileout</b> <i>IN: name of binary file</i>
  26. )
  27. </pre>
  28. <dd> Converts from ASCII to binary format. A BDD array is loaded and
  29. and stored to the target file.
  30. <p>
  31. <dd> <b>Side Effects</b> None
  32. <p>
  33. <dd> <b>See Also</b> <code><a href="#Dddmp_Bin2Text()">Dddmp_Bin2Text()</a>
  34. </code>
  35. <dt><pre>
  36. <A NAME="Dddmp_cuddAddArrayLoad"></A>
  37. int <I></I>
  38. <B>Dddmp_cuddAddArrayLoad</B>(
  39. DdManager * <b>ddMgr</b>, <i>IN: DD Manager</i>
  40. Dddmp_RootMatchType <b>rootMatchMode</b>, <i>IN: storing mode selector</i>
  41. char ** <b>rootmatchnames</b>, <i>IN: sorted names for loaded roots</i>
  42. Dddmp_VarMatchType <b>varMatchMode</b>, <i>IN: storing mode selector</i>
  43. char ** <b>varmatchnames</b>, <i>IN: array of variable names, by ids</i>
  44. int * <b>varmatchauxids</b>, <i>IN: array of variable auxids, by ids</i>
  45. int * <b>varcomposeids</b>, <i>IN: array of new ids, by ids</i>
  46. int <b>mode</b>, <i>IN: requested input file format</i>
  47. char * <b>file</b>, <i>IN: file name</i>
  48. FILE * <b>fp</b>, <i>IN: file pointer</i>
  49. DdNode *** <b>pproots</b> <i>OUT: array of returned BDD roots</i>
  50. )
  51. </pre>
  52. <dd> Reads a dump file representing the argument ADDs. See
  53. BDD load functions for detailed explanation.
  54. <p>
  55. <dd> <b>Side Effects</b> A vector of pointers to DD nodes is allocated and freed.
  56. <p>
  57. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddBddArrayStore">Dddmp_cuddBddArrayStore</a>
  58. </code>
  59. <dt><pre>
  60. <A NAME="Dddmp_cuddAddArrayStore"></A>
  61. int <I></I>
  62. <B>Dddmp_cuddAddArrayStore</B>(
  63. DdManager * <b>ddMgr</b>, <i>IN: DD Manager</i>
  64. char * <b>ddname</b>, <i>IN: DD name (or NULL)</i>
  65. int <b>nRoots</b>, <i>IN: number of output BDD roots to be stored</i>
  66. DdNode ** <b>f</b>, <i>IN: array of ADD roots to be stored</i>
  67. char ** <b>rootnames</b>, <i>IN: array of root names (or NULL)</i>
  68. char ** <b>varnames</b>, <i>IN: array of variable names (or NULL)</i>
  69. int * <b>auxids</b>, <i>IN: array of converted var IDs</i>
  70. int <b>mode</b>, <i>IN: storing mode selector</i>
  71. Dddmp_VarInfoType <b>varinfo</b>, <i>IN: extra info for variables in text mode</i>
  72. char * <b>fname</b>, <i>IN: File name</i>
  73. FILE * <b>fp</b> <i>IN: File pointer to the store file</i>
  74. )
  75. </pre>
  76. <dd> Dumps the argument array of ADDs to file. Dumping is
  77. either in text or binary form. see the corresponding BDD dump
  78. function for further details.
  79. <p>
  80. <dd> <b>Side Effects</b> Nodes are temporarily removed from the unique hash
  81. table. They are re-linked after the store operation in a
  82. modified order.
  83. <p>
  84. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddAddStore">Dddmp_cuddAddStore</a>
  85. <a href="#Dddmp_cuddAddLoad">Dddmp_cuddAddLoad</a>
  86. <a href="#Dddmp_cuddAddArrayLoad">Dddmp_cuddAddArrayLoad</a>
  87. </code>
  88. <dt><pre>
  89. <A NAME="Dddmp_cuddAddLoad"></A>
  90. DdNode * <I></I>
  91. <B>Dddmp_cuddAddLoad</B>(
  92. DdManager * <b>ddMgr</b>, <i>IN: Manager</i>
  93. Dddmp_VarMatchType <b>varMatchMode</b>, <i>IN: storing mode selector</i>
  94. char ** <b>varmatchnames</b>, <i>IN: array of variable names by IDs</i>
  95. int * <b>varmatchauxids</b>, <i>IN: array of variable auxids by IDs</i>
  96. int * <b>varcomposeids</b>, <i>IN: array of new ids by IDs</i>
  97. int <b>mode</b>, <i>IN: requested input file format</i>
  98. char * <b>file</b>, <i>IN: file name</i>
  99. FILE * <b>fp</b> <i>IN: file pointer</i>
  100. )
  101. </pre>
  102. <dd> Reads a dump file representing the argument ADD.
  103. Dddmp_cuddAddArrayLoad is used through a dummy array.
  104. <p>
  105. <dd> <b>Side Effects</b> A vector of pointers to DD nodes is allocated and freed.
  106. <p>
  107. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddAddStore">Dddmp_cuddAddStore</a>
  108. <a href="#Dddmp_cuddAddArrayLoad">Dddmp_cuddAddArrayLoad</a>
  109. </code>
  110. <dt><pre>
  111. <A NAME="Dddmp_cuddAddStore"></A>
  112. int <I></I>
  113. <B>Dddmp_cuddAddStore</B>(
  114. DdManager * <b>ddMgr</b>, <i>IN: DD Manager</i>
  115. char * <b>ddname</b>, <i>IN: DD name (or NULL)</i>
  116. DdNode * <b>f</b>, <i>IN: ADD root to be stored</i>
  117. char ** <b>varnames</b>, <i>IN: array of variable names (or NULL)</i>
  118. int * <b>auxids</b>, <i>IN: array of converted var ids</i>
  119. int <b>mode</b>, <i>IN: storing mode selector</i>
  120. Dddmp_VarInfoType <b>varinfo</b>, <i>IN: extra info for variables in text mode</i>
  121. char * <b>fname</b>, <i>IN: File name</i>
  122. FILE * <b>fp</b> <i>IN: File pointer to the store file</i>
  123. )
  124. </pre>
  125. <dd> Dumps the argument ADD to file. Dumping is done through
  126. Dddmp_cuddAddArrayStore, And a dummy array of 1 ADD root is
  127. used for this purpose.
  128. <p>
  129. <dd> <b>Side Effects</b> Nodes are temporarily removed from unique hash. They are
  130. re-linked after the store operation in a modified order.
  131. <p>
  132. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddAddLoad">Dddmp_cuddAddLoad</a>
  133. <a href="#Dddmp_cuddAddArrayLoad">Dddmp_cuddAddArrayLoad</a>
  134. </code>
  135. <dt><pre>
  136. <A NAME="Dddmp_cuddBddArrayLoadCnf"></A>
  137. int <I></I>
  138. <B>Dddmp_cuddBddArrayLoadCnf</B>(
  139. DdManager * <b>ddMgr</b>, <i>IN: DD Manager</i>
  140. Dddmp_RootMatchType <b>rootmatchmode</b>, <i>IN: storing mode selector</i>
  141. char ** <b>rootmatchnames</b>, <i>IN: sorted names for loaded roots</i>
  142. Dddmp_VarMatchType <b>varmatchmode</b>, <i>IN: storing mode selector</i>
  143. char ** <b>varmatchnames</b>, <i>IN: array of variable names, by IDs</i>
  144. int * <b>varmatchauxids</b>, <i>IN: array of variable auxids, by IDs</i>
  145. int * <b>varcomposeids</b>, <i>IN: array of new ids, by IDs</i>
  146. int <b>mode</b>, <i>IN: computation Mode</i>
  147. char * <b>file</b>, <i>IN: file name</i>
  148. FILE * <b>fp</b>, <i>IN: file pointer</i>
  149. DdNode *** <b>rootsPtrPtr</b>, <i>OUT: array of returned BDD roots</i>
  150. int * <b>nRoots</b> <i>OUT: number of BDDs returned</i>
  151. )
  152. </pre>
  153. <dd> Reads a dump file representing the argument BDD in a
  154. CNF formula.
  155. <p>
  156. <dd> <b>Side Effects</b> A vector of pointers to DD nodes is allocated and freed.
  157. <p>
  158. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddBddArrayLoad">Dddmp_cuddBddArrayLoad</a>
  159. </code>
  160. <dt><pre>
  161. <A NAME="Dddmp_cuddBddArrayLoad"></A>
  162. int <I></I>
  163. <B>Dddmp_cuddBddArrayLoad</B>(
  164. DdManager * <b>ddMgr</b>, <i>IN: DD Manager</i>
  165. Dddmp_RootMatchType <b>rootMatchMode</b>, <i>IN: storing mode selector</i>
  166. char ** <b>rootmatchnames</b>, <i>IN: sorted names for loaded roots</i>
  167. Dddmp_VarMatchType <b>varMatchMode</b>, <i>IN: storing mode selector</i>
  168. char ** <b>varmatchnames</b>, <i>IN: array of variable names, by ids</i>
  169. int * <b>varmatchauxids</b>, <i>IN: array of variable auxids, by ids</i>
  170. int * <b>varcomposeids</b>, <i>IN: array of new ids, by ids</i>
  171. int <b>mode</b>, <i>IN: requested input file format</i>
  172. char * <b>file</b>, <i>IN: file name</i>
  173. FILE * <b>fp</b>, <i>IN: file pointer</i>
  174. DdNode *** <b>pproots</b> <i>OUT: array of returned BDD roots</i>
  175. )
  176. </pre>
  177. <dd> Reads a dump file representing the argument BDDs. The header is
  178. common to both text and binary mode. The node list is either
  179. in text or binary format. A dynamic vector of DD pointers
  180. is allocated to support conversion from DD indexes to pointers.
  181. Several criteria are supported for variable match between file
  182. and dd manager. Several changes/permutations/compositions are allowed
  183. for variables while loading DDs. Variable of the dd manager are allowed
  184. to match with variables on file on ids, permids, varnames,
  185. varauxids; also direct composition between ids and
  186. composeids is supported. More in detail:
  187. <ol>
  188. <li> varMatchMode=DDDMP_VAR_MATCHIDS <p>
  189. allows the loading of a DD keeping variable IDs unchanged
  190. (regardless of the variable ordering of the reading manager); this
  191. is useful, for example, when swapping DDs to file and restoring them
  192. later from file, after possible variable reordering activations.
  193. <li> varMatchMode=DDDMP_VAR_MATCHPERMIDS <p>
  194. is used to allow variable match according to the position in the
  195. ordering.
  196. <li> varMatchMode=DDDMP_VAR_MATCHNAMES <p>
  197. requires a non NULL varmatchnames parameter; this is a vector of
  198. strings in one-to-one correspondence with variable IDs of the
  199. reading manager. Variables in the DD file read are matched with
  200. manager variables according to their name (a non NULL varnames
  201. parameter was required while storing the DD file).
  202. <li> varMatchMode=DDDMP_VAR_MATCHIDS <p>
  203. has a meaning similar to DDDMP_VAR_MATCHNAMES, but integer auxiliary
  204. IDs are used instead of strings; the additional non NULL
  205. varmatchauxids parameter is needed.
  206. <li> varMatchMode=DDDMP_VAR_COMPOSEIDS <p>
  207. uses the additional varcomposeids parameter is used as array of
  208. variable ids to be composed with ids stored in file.
  209. </ol>
  210. In the present implementation, the array varnames (3), varauxids (4)
  211. and composeids (5) need to have one entry for each variable in the
  212. DD manager (NULL pointers are allowed for unused variables
  213. in varnames). Hence variables need to be already present in the
  214. manager. All arrays are sorted according to IDs.
  215. All the loaded BDDs are referenced before returning them.
  216. <p>
  217. <dd> <b>Side Effects</b> A vector of pointers to DD nodes is allocated and freed.
  218. <p>
  219. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddBddArrayStore">Dddmp_cuddBddArrayStore</a>
  220. </code>
  221. <dt><pre>
  222. <A NAME="Dddmp_cuddBddArrayStoreBlif"></A>
  223. int <I></I>
  224. <B>Dddmp_cuddBddArrayStoreBlif</B>(
  225. DdManager * <b>ddMgr</b>, <i>IN: DD Manager</i>
  226. int <b>nroots</b>, <i>IN: number of output BDD roots to be stored</i>
  227. DdNode ** <b>f</b>, <i>IN: array of BDD roots to be stored</i>
  228. char ** <b>inputNames</b>, <i>IN: array of variable names (or NULL)</i>
  229. char ** <b>outputNames</b>, <i>IN: array of root names (or NULL)</i>
  230. char * <b>modelName</b>, <i>IN: Model Name</i>
  231. char * <b>fname</b>, <i>IN: File name</i>
  232. FILE * <b>fp</b> <i>IN: File pointer to the store file</i>
  233. )
  234. </pre>
  235. <dd> Dumps the argument BDD to file.
  236. Dumping is done through Dddmp_cuddBddArrayStoreBLif.
  237. A dummy array of 1 BDD root is used for this purpose.
  238. <p>
  239. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddBddArrayStorePrefix">Dddmp_cuddBddArrayStorePrefix</a>
  240. </code>
  241. <dt><pre>
  242. <A NAME="Dddmp_cuddBddArrayStoreCnf"></A>
  243. int <I></I>
  244. <B>Dddmp_cuddBddArrayStoreCnf</B>(
  245. DdManager * <b>ddMgr</b>, <i>IN: DD Manager</i>
  246. DdNode ** <b>f</b>, <i>IN: array of BDD roots to be stored</i>
  247. int <b>rootN</b>, <i>IN: # output BDD roots to be stored</i>
  248. Dddmp_DecompCnfStoreType <b>mode</b>, <i>IN: format selection</i>
  249. int <b>noHeader</b>, <i>IN: do not store header iff 1</i>
  250. char ** <b>varNames</b>, <i>IN: array of variable names (or NULL)</i>
  251. int * <b>bddIds</b>, <i>IN: array of converted var IDs</i>
  252. int * <b>bddAuxIds</b>, <i>IN: array of BDD node Auxiliary Ids</i>
  253. int * <b>cnfIds</b>, <i>IN: array of converted var IDs</i>
  254. int <b>idInitial</b>, <i>IN: starting id for cutting variables</i>
  255. int <b>edgeInTh</b>, <i>IN: Max # Incoming Edges</i>
  256. int <b>pathLengthTh</b>, <i>IN: Max Path Length</i>
  257. char * <b>fname</b>, <i>IN: file name</i>
  258. FILE * <b>fp</b>, <i>IN: pointer to the store file</i>
  259. int * <b>clauseNPtr</b>, <i>OUT: number of clause stored</i>
  260. int * <b>varNewNPtr</b> <i>OUT: number of new variable created</i>
  261. )
  262. </pre>
  263. <dd> Dumps the argument array of BDDs to file.
  264. <p>
  265. <dd> <b>Side Effects</b> Nodes are temporarily removed from the unique hash
  266. table. They are re-linked after the store operation in a
  267. modified order.
  268. Three methods are allowed:
  269. * NodeByNode method: Insert a cut-point for each BDD node (but the
  270. terminal nodes)
  271. * MaxtermByMaxterm method: Insert no cut-points, i.e. the off-set of
  272. trhe function is stored
  273. * Best method: Tradeoff between the previous two methods.
  274. Auxiliary variables, i.e., cut points are inserted following these
  275. criterias:
  276. * edgeInTh
  277. indicates the maximum number of incoming edges up to which
  278. no cut point (auxiliary variable) is inserted.
  279. If edgeInTh:
  280. * is equal to -1 no cut point due to incoming edges are inserted
  281. (MaxtermByMaxterm method.)
  282. * is equal to 0 a cut point is inserted for each node with a single
  283. incoming edge, i.e., each node, (NodeByNode method).
  284. * is equal to n a cut point is inserted for each node with (n+1)
  285. incoming edges.
  286. * pathLengthTh
  287. indicates the maximum length path up to which no cut points
  288. (auxiliary variable) is inserted.
  289. If the path length between two nodes exceeds this value, a cut point
  290. is inserted.
  291. If pathLengthTh:
  292. * is equal to -1 no cut point due path length are inserted
  293. (MaxtermByMaxterm method.)
  294. * is equal to 0 a cut point is inserted for each node (NodeByNode
  295. method).
  296. * is equal to n a cut point is inserted on path whose length is
  297. equal to (n+1).
  298. Notice that the maximum number of literals in a clause is equal
  299. to (pathLengthTh + 2), i.e., for each path we have to keep into
  300. account a CNF variable for each node plus 2 added variables for
  301. the bottom and top-path cut points.
  302. The stored file can contain a file header or not depending on the
  303. noHeader parameter (IFF 0, usual setting, the header is usually stored.
  304. This option can be useful in storing multiple BDDs, as separate BDDs,
  305. on the same file leaving the opening of the file to the caller.
  306. <p>
  307. <dt><pre>
  308. <A NAME="Dddmp_cuddBddArrayStorePrefix"></A>
  309. int <I></I>
  310. <B>Dddmp_cuddBddArrayStorePrefix</B>(
  311. DdManager * <b>ddMgr</b>, <i>IN: DD Manager</i>
  312. int <b>nroots</b>, <i>IN: number of output BDD roots to be stored</i>
  313. DdNode ** <b>f</b>, <i>IN: array of BDD roots to be stored</i>
  314. char ** <b>inputNames</b>, <i>IN: array of variable names (or NULL)</i>
  315. char ** <b>outputNames</b>, <i>IN: array of root names (or NULL)</i>
  316. char * <b>modelName</b>, <i>IN: Model Name</i>
  317. char * <b>fname</b>, <i>IN: File name</i>
  318. FILE * <b>fp</b> <i>IN: File pointer to the store file</i>
  319. )
  320. </pre>
  321. <dd> Dumps the argument BDD to file.
  322. Dumping is done through Dddmp_cuddBddArrayStorePrefix.
  323. A dummy array of 1 BDD root is used for this purpose.
  324. <p>
  325. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddBddArrayStore">Dddmp_cuddBddArrayStore</a>
  326. </code>
  327. <dt><pre>
  328. <A NAME="Dddmp_cuddBddArrayStoreSmv"></A>
  329. int <I></I>
  330. <B>Dddmp_cuddBddArrayStoreSmv</B>(
  331. DdManager * <b>ddMgr</b>, <i>IN: DD Manager</i>
  332. int <b>nroots</b>, <i>IN: number of output BDD roots to be stored</i>
  333. DdNode ** <b>f</b>, <i>IN: array of BDD roots to be stored</i>
  334. char ** <b>inputNames</b>, <i>IN: array of variable names (or NULL)</i>
  335. char ** <b>outputNames</b>, <i>IN: array of root names (or NULL)</i>
  336. char * <b>modelName</b>, <i>IN: Model Name</i>
  337. char * <b>fname</b>, <i>IN: File name</i>
  338. FILE * <b>fp</b> <i>IN: File pointer to the store file</i>
  339. )
  340. </pre>
  341. <dd> Dumps the argument BDD to file.
  342. Dumping is done through Dddmp_cuddBddArrayStorePrefix.
  343. A dummy array of 1 BDD root is used for this purpose.
  344. <p>
  345. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddBddArrayStore">Dddmp_cuddBddArrayStore</a>
  346. </code>
  347. <dt><pre>
  348. <A NAME="Dddmp_cuddBddArrayStore"></A>
  349. int <I></I>
  350. <B>Dddmp_cuddBddArrayStore</B>(
  351. DdManager * <b>ddMgr</b>, <i>IN: DD Manager</i>
  352. char * <b>ddname</b>, <i>IN: dd name (or NULL)</i>
  353. int <b>nRoots</b>, <i>IN: number of output BDD roots to be stored</i>
  354. DdNode ** <b>f</b>, <i>IN: array of BDD roots to be stored</i>
  355. char ** <b>rootnames</b>, <i>IN: array of root names (or NULL)</i>
  356. char ** <b>varnames</b>, <i>IN: array of variable names (or NULL)</i>
  357. int * <b>auxids</b>, <i>IN: array of converted var IDs</i>
  358. int <b>mode</b>, <i>IN: storing mode selector</i>
  359. Dddmp_VarInfoType <b>varinfo</b>, <i>IN: extra info for variables in text mode</i>
  360. char * <b>fname</b>, <i>IN: File name</i>
  361. FILE * <b>fp</b> <i>IN: File pointer to the store file</i>
  362. )
  363. </pre>
  364. <dd> Dumps the argument array of BDDs to file. Dumping is either
  365. in text or binary form. BDDs are stored to the fp (already
  366. open) file if not NULL. Otherwise the file whose name is
  367. fname is opened in write mode. The header has the same format
  368. for both textual and binary dump. Names are allowed for input
  369. variables (vnames) and for represented functions (rnames).
  370. For sake of generality and because of dynamic variable
  371. ordering both variable IDs and permuted IDs are included.
  372. New IDs are also supported (auxids). Variables are identified
  373. with incremental numbers. according with their positiom in
  374. the support set. In text mode, an extra info may be added,
  375. chosen among the following options: name, ID, PermID, or an
  376. auxiliary id. Since conversion from DD pointers to integers
  377. is required, DD nodes are temporarily removed from the unique
  378. hash table. This allows the use of the next field to store
  379. node IDs.
  380. <p>
  381. <dd> <b>Side Effects</b> Nodes are temporarily removed from the unique hash
  382. table. They are re-linked after the store operation in a
  383. modified order.
  384. <p>
  385. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddBddStore">Dddmp_cuddBddStore</a>
  386. <a href="#Dddmp_cuddBddLoad">Dddmp_cuddBddLoad</a>
  387. <a href="#Dddmp_cuddBddArrayLoad">Dddmp_cuddBddArrayLoad</a>
  388. </code>
  389. <dt><pre>
  390. <A NAME="Dddmp_cuddBddDisplayBinary"></A>
  391. int <I></I>
  392. <B>Dddmp_cuddBddDisplayBinary</B>(
  393. char * <b>fileIn</b>, <i>IN: name of binary file</i>
  394. char * <b>fileOut</b> <i>IN: name of text file</i>
  395. )
  396. </pre>
  397. <dd> Display a binary dump file in a text file
  398. <p>
  399. <dd> <b>Side Effects</b> None
  400. <p>
  401. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddBddStore">Dddmp_cuddBddStore</a>
  402. <a href="#Dddmp_cuddBddLoad">Dddmp_cuddBddLoad</a>
  403. </code>
  404. <dt><pre>
  405. <A NAME="Dddmp_cuddBddLoadCnf"></A>
  406. int <I></I>
  407. <B>Dddmp_cuddBddLoadCnf</B>(
  408. DdManager * <b>ddMgr</b>, <i>IN: DD Manager</i>
  409. Dddmp_VarMatchType <b>varmatchmode</b>, <i>IN: storing mode selector</i>
  410. char ** <b>varmatchnames</b>, <i>IN: array of variable names, by IDs</i>
  411. int * <b>varmatchauxids</b>, <i>IN: array of variable auxids, by IDs</i>
  412. int * <b>varcomposeids</b>, <i>IN: array of new ids accessed, by IDs</i>
  413. int <b>mode</b>, <i>IN: computation mode</i>
  414. char * <b>file</b>, <i>IN: file name</i>
  415. FILE * <b>fp</b>, <i>IN: file pointer</i>
  416. DdNode *** <b>rootsPtrPtr</b>, <i>OUT: array of returned BDD roots</i>
  417. int * <b>nRoots</b> <i>OUT: number of BDDs returned</i>
  418. )
  419. </pre>
  420. <dd> Reads a dump file representing the argument BDD in a
  421. CNF formula.
  422. Dddmp_cuddBddArrayLoadCnf is used through a dummy array.
  423. The results is returned in different formats depending on the
  424. mode selection:
  425. IFF mode == 0 Return the Clauses without Conjunction
  426. IFF mode == 1 Return the sets of BDDs without Quantification
  427. IFF mode == 2 Return the sets of BDDs AFTER Existential Quantification
  428. <p>
  429. <dd> <b>Side Effects</b> A vector of pointers to DD nodes is allocated and freed.
  430. <p>
  431. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddBddLoad">Dddmp_cuddBddLoad</a>
  432. <a href="#Dddmp_cuddBddArrayLoad">Dddmp_cuddBddArrayLoad</a>
  433. </code>
  434. <dt><pre>
  435. <A NAME="Dddmp_cuddBddLoad"></A>
  436. DdNode * <I></I>
  437. <B>Dddmp_cuddBddLoad</B>(
  438. DdManager * <b>ddMgr</b>, <i>IN: DD Manager</i>
  439. Dddmp_VarMatchType <b>varMatchMode</b>, <i>IN: storing mode selector</i>
  440. char ** <b>varmatchnames</b>, <i>IN: array of variable names - by IDs</i>
  441. int * <b>varmatchauxids</b>, <i>IN: array of variable auxids - by IDs</i>
  442. int * <b>varcomposeids</b>, <i>IN: array of new ids accessed - by IDs</i>
  443. int <b>mode</b>, <i>IN: requested input file format</i>
  444. char * <b>file</b>, <i>IN: file name</i>
  445. FILE * <b>fp</b> <i>IN: file pointer</i>
  446. )
  447. </pre>
  448. <dd> Reads a dump file representing the argument BDD.
  449. Dddmp_cuddBddArrayLoad is used through a dummy array (see this
  450. function's description for more details).
  451. Mode, the requested input file format, is checked against
  452. the file format.
  453. The loaded BDDs is referenced before returning it.
  454. <p>
  455. <dd> <b>Side Effects</b> A vector of pointers to DD nodes is allocated and freed.
  456. <p>
  457. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddBddStore">Dddmp_cuddBddStore</a>
  458. <a href="#Dddmp_cuddBddArrayLoad">Dddmp_cuddBddArrayLoad</a>
  459. </code>
  460. <dt><pre>
  461. <A NAME="Dddmp_cuddBddStoreBlif"></A>
  462. int <I></I>
  463. <B>Dddmp_cuddBddStoreBlif</B>(
  464. DdManager * <b>ddMgr</b>, <i>IN: DD Manager</i>
  465. int <b>nRoots</b>, <i>IN: Number of BDD roots</i>
  466. DdNode * <b>f</b>, <i>IN: BDD root to be stored</i>
  467. char ** <b>inputNames</b>, <i>IN: Array of variable names</i>
  468. char ** <b>outputNames</b>, <i>IN: Array of root names</i>
  469. char * <b>modelName</b>, <i>IN: Model Name</i>
  470. char * <b>fileName</b>, <i>IN: File name</i>
  471. FILE * <b>fp</b> <i>IN: File pointer to the store file</i>
  472. )
  473. </pre>
  474. <dd> Dumps the argument BDD to file.
  475. Dumping is done through Dddmp_cuddBddArrayStoreBlif.
  476. A dummy array of 1 BDD root is used for this purpose.
  477. <p>
  478. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddBddStorePrefix">Dddmp_cuddBddStorePrefix</a>
  479. </code>
  480. <dt><pre>
  481. <A NAME="Dddmp_cuddBddStoreCnf"></A>
  482. int <I></I>
  483. <B>Dddmp_cuddBddStoreCnf</B>(
  484. DdManager * <b>ddMgr</b>, <i>IN: DD Manager</i>
  485. DdNode * <b>f</b>, <i>IN: BDD root to be stored</i>
  486. Dddmp_DecompCnfStoreType <b>mode</b>, <i>IN: format selection</i>
  487. int <b>noHeader</b>, <i>IN: do not store header iff 1</i>
  488. char ** <b>varNames</b>, <i>IN: array of variable names (or NULL)</i>
  489. int * <b>bddIds</b>, <i>IN: array of var ids</i>
  490. int * <b>bddAuxIds</b>, <i>IN: array of BDD node Auxiliary Ids</i>
  491. int * <b>cnfIds</b>, <i>IN: array of CNF var ids</i>
  492. int <b>idInitial</b>, <i>IN: starting id for cutting variables</i>
  493. int <b>edgeInTh</b>, <i>IN: Max # Incoming Edges</i>
  494. int <b>pathLengthTh</b>, <i>IN: Max Path Length</i>
  495. char * <b>fname</b>, <i>IN: file name</i>
  496. FILE * <b>fp</b>, <i>IN: pointer to the store file</i>
  497. int * <b>clauseNPtr</b>, <i>OUT: number of clause stored</i>
  498. int * <b>varNewNPtr</b> <i>OUT: number of new variable created</i>
  499. )
  500. </pre>
  501. <dd> Dumps the argument BDD to file.
  502. This task is performed by calling the function
  503. Dddmp_cuddBddArrayStoreCnf.
  504. <p>
  505. <dd> <b>Side Effects</b> Nodes are temporarily removed from unique hash. They are
  506. re-linked after the store operation in a modified order.
  507. <p>
  508. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddBddArrayStoreCnf">Dddmp_cuddBddArrayStoreCnf</a>
  509. </code>
  510. <dt><pre>
  511. <A NAME="Dddmp_cuddBddStorePrefix"></A>
  512. int <I></I>
  513. <B>Dddmp_cuddBddStorePrefix</B>(
  514. DdManager * <b>ddMgr</b>, <i>IN: DD Manager</i>
  515. int <b>nRoots</b>, <i>IN: Number of BDD roots</i>
  516. DdNode * <b>f</b>, <i>IN: BDD root to be stored</i>
  517. char ** <b>inputNames</b>, <i>IN: Array of variable names</i>
  518. char ** <b>outputNames</b>, <i>IN: Array of root names</i>
  519. char * <b>modelName</b>, <i>IN: Model Name</i>
  520. char * <b>fileName</b>, <i>IN: File name</i>
  521. FILE * <b>fp</b> <i>IN: File pointer to the store file</i>
  522. )
  523. </pre>
  524. <dd> Dumps the argument BDD to file.
  525. Dumping is done through Dddmp_cuddBddArrayStorePrefix.
  526. A dummy array of 1 BDD root is used for this purpose.
  527. <p>
  528. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddBddStore">Dddmp_cuddBddStore</a>
  529. </code>
  530. <dt><pre>
  531. <A NAME="Dddmp_cuddBddStoreSmv"></A>
  532. int <I></I>
  533. <B>Dddmp_cuddBddStoreSmv</B>(
  534. DdManager * <b>ddMgr</b>, <i>IN: DD Manager</i>
  535. int <b>nRoots</b>, <i>IN: Number of BDD roots</i>
  536. DdNode * <b>f</b>, <i>IN: BDD root to be stored</i>
  537. char ** <b>inputNames</b>, <i>IN: Array of variable names</i>
  538. char ** <b>outputNames</b>, <i>IN: Array of root names</i>
  539. char * <b>modelName</b>, <i>IN: Model Name</i>
  540. char * <b>fileName</b>, <i>IN: File name</i>
  541. FILE * <b>fp</b> <i>IN: File pointer to the store file</i>
  542. )
  543. </pre>
  544. <dd> Dumps the argument BDD to file.
  545. Dumping is done through Dddmp_cuddBddArrayStorePrefix.
  546. A dummy array of 1 BDD root is used for this purpose.
  547. <p>
  548. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddBddStore">Dddmp_cuddBddStore</a>
  549. </code>
  550. <dt><pre>
  551. <A NAME="Dddmp_cuddBddStore"></A>
  552. int <I></I>
  553. <B>Dddmp_cuddBddStore</B>(
  554. DdManager * <b>ddMgr</b>, <i>IN: DD Manager</i>
  555. char * <b>ddname</b>, <i>IN: DD name (or NULL)</i>
  556. DdNode * <b>f</b>, <i>IN: BDD root to be stored</i>
  557. char ** <b>varnames</b>, <i>IN: array of variable names (or NULL)</i>
  558. int * <b>auxids</b>, <i>IN: array of converted var ids</i>
  559. int <b>mode</b>, <i>IN: storing mode selector</i>
  560. Dddmp_VarInfoType <b>varinfo</b>, <i>IN: extra info for variables in text mode</i>
  561. char * <b>fname</b>, <i>IN: File name</i>
  562. FILE * <b>fp</b> <i>IN: File pointer to the store file</i>
  563. )
  564. </pre>
  565. <dd> Dumps the argument BDD to file. Dumping is done through
  566. Dddmp_cuddBddArrayStore. A dummy array of 1 BDD root is
  567. used for this purpose.
  568. <p>
  569. <dd> <b>Side Effects</b> Nodes are temporarily removed from unique hash. They are
  570. re-linked after the store operation in a modified order.
  571. <p>
  572. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddBddLoad">Dddmp_cuddBddLoad</a>
  573. <a href="#Dddmp_cuddBddArrayLoad">Dddmp_cuddBddArrayLoad</a>
  574. </code>
  575. <dt><pre>
  576. <A NAME="Dddmp_cuddHeaderLoadCnf"></A>
  577. int <I></I>
  578. <B>Dddmp_cuddHeaderLoadCnf</B>(
  579. int * <b>nVars</b>, <i>OUT: number of DD variables</i>
  580. int * <b>nsuppvars</b>, <i>OUT: number of support variables</i>
  581. char *** <b>suppVarNames</b>, <i>OUT: array of support variable names</i>
  582. char *** <b>orderedVarNames</b>, <i>OUT: array of variable names</i>
  583. int ** <b>varIds</b>, <i>OUT: array of variable ids</i>
  584. int ** <b>varComposeIds</b>, <i>OUT: array of permids ids</i>
  585. int ** <b>varAuxIds</b>, <i>OUT: array of variable aux ids</i>
  586. int * <b>nRoots</b>, <i>OUT: number of root in the file</i>
  587. char * <b>file</b>, <i>IN: file name</i>
  588. FILE * <b>fp</b> <i>IN: file pointer</i>
  589. )
  590. </pre>
  591. <dd> Reads the header of a dump file representing the argument BDDs.
  592. Returns main information regarding DD type stored in the file,
  593. the variable ordering used, the number of variables, etc.
  594. It reads only the header of the file NOT the BDD/ADD section.
  595. <p>
  596. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddBddArrayLoad">Dddmp_cuddBddArrayLoad</a>
  597. </code>
  598. <dt><pre>
  599. <A NAME="Dddmp_cuddHeaderLoad"></A>
  600. int <I></I>
  601. <B>Dddmp_cuddHeaderLoad</B>(
  602. Dddmp_DecompType * <b>ddType</b>, <i>OUT: selects the proper decomp type</i>
  603. int * <b>nVars</b>, <i>OUT: number of DD variables</i>
  604. int * <b>nsuppvars</b>, <i>OUT: number of support variables</i>
  605. char *** <b>suppVarNames</b>, <i>OUT: array of support variable names</i>
  606. char *** <b>orderedVarNames</b>, <i>OUT: array of variable names</i>
  607. int ** <b>varIds</b>, <i>OUT: array of variable ids</i>
  608. int ** <b>varComposeIds</b>, <i>OUT: array of permids ids</i>
  609. int ** <b>varAuxIds</b>, <i>OUT: array of variable aux ids</i>
  610. int * <b>nRoots</b>, <i>OUT: number of root in the file</i>
  611. char * <b>file</b>, <i>IN: file name</i>
  612. FILE * <b>fp</b> <i>IN: file pointer</i>
  613. )
  614. </pre>
  615. <dd> Reads the header of a dump file representing the argument BDDs.
  616. Returns main information regarding DD type stored in the file,
  617. the variable ordering used, the number of variables, etc.
  618. It reads only the header of the file NOT the BDD/ADD section.
  619. <p>
  620. <dd> <b>See Also</b> <code><a href="#Dddmp_cuddBddArrayLoad">Dddmp_cuddBddArrayLoad</a>
  621. </code>
  622. </DL>
  623. <HR>
  624. Last updated on 1040218 17h14
  625. </BODY></HTML>