svf-tools 1.0.482 → 1.0.485

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/SVF-doxygen/html/html/AndersenHCD_8cpp_source.html +2 -1
  2. package/SVF-doxygen/html/html/AndersenHLCD_8cpp_source.html +2 -1
  3. package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +2 -1
  4. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -1
  5. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +2 -1
  6. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +2 -1
  7. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -1
  8. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +3 -2
  9. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  10. package/SVF-doxygen/html/html/BDDExpr_8cpp_source.html +2 -1
  11. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +2 -2
  12. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +32 -32
  13. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +11 -11
  14. package/SVF-doxygen/html/html/CFLAlias_8cpp.html +1 -0
  15. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +46 -13
  16. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +36 -13
  17. package/SVF-doxygen/html/html/CFLGramGraphChecker_8h_source.html +3 -3
  18. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +8 -8
  19. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +74 -77
  20. package/SVF-doxygen/html/html/CFLGrammar_8txt.html +165 -39
  21. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +4 -4
  22. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +2 -2
  23. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +3 -3
  24. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +3 -3
  25. package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +16 -16
  26. package/SVF-doxygen/html/html/CFLSolver_8h_source.html +10 -10
  27. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +3 -2
  28. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +2 -2
  29. package/SVF-doxygen/html/html/CHG_8cpp_source.html +3 -2
  30. package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +2 -2
  32. package/SVF-doxygen/html/html/CPPUtil_8h.html +4 -4
  33. package/SVF-doxygen/html/html/CSC_8cpp_source.html +2 -1
  34. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +3 -2
  35. package/SVF-doxygen/html/html/Casting_8h_source.html +2 -1
  36. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +4 -3
  37. package/SVF-doxygen/html/html/ConsG_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -1
  39. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
  40. package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
  41. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -2
  42. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +2 -1
  43. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +3 -2
  44. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +1 -1
  45. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -1
  46. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +2 -1
  47. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +2 -2
  48. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +2 -2
  49. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +2 -1
  50. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +2 -1
  51. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -1
  52. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  53. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +2 -1
  54. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -1
  55. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
  56. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +1 -1
  57. package/SVF-doxygen/html/html/GrammarBuilder_8cpp_source.html +3 -3
  58. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +6 -4
  59. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +2 -2
  60. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -1
  61. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +3 -2
  62. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  63. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -2
  64. package/SVF-doxygen/html/html/IRGraph_8h_source.html +1 -1
  65. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +2 -1
  66. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +2 -2
  67. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -1
  68. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +2 -1
  69. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +3 -2
  70. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -2
  71. package/SVF-doxygen/html/html/MHP_8cpp_source.html +3 -2
  72. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +3 -2
  73. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +2 -2
  74. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +3 -2
  75. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +2 -2
  76. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
  77. package/SVF-doxygen/html/html/MTA_8cpp_source.html +3 -2
  78. package/SVF-doxygen/html/html/MTA_8h_source.html +2 -2
  79. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +2 -1
  80. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -1
  81. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +3 -2
  82. package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +1 -1
  83. package/SVF-doxygen/html/html/Options_8cpp_source.html +4 -4
  84. package/SVF-doxygen/html/html/Options_8h_source.html +4 -4
  85. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -1
  86. package/SVF-doxygen/html/html/PCG_8cpp_source.html +3 -2
  87. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +3 -2
  88. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  89. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +2 -1
  90. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +6 -5
  91. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +15 -13
  92. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +12 -12
  93. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -1
  94. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +1 -1
  95. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +2 -1
  96. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +2 -1
  97. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +3 -2
  98. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +3 -2
  99. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  100. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +3 -2
  101. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +2 -2
  102. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +2 -1
  103. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +2 -1
  104. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +2 -2
  105. package/SVF-doxygen/html/html/SVFUtil_8h.html +1 -1
  106. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +3 -2
  107. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -1
  108. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +2 -2
  109. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -1
  110. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -1
  111. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +2 -1
  112. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +3 -2
  113. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +2 -1
  114. package/SVF-doxygen/html/html/TCT_8cpp_source.html +3 -2
  115. package/SVF-doxygen/html/html/TCT_8h_source.html +1 -1
  116. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +2 -2
  117. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -1
  118. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -1
  119. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +1 -1
  120. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +2 -1
  121. package/SVF-doxygen/html/html/VFG_8cpp_source.html +3 -2
  122. package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
  123. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +2 -1
  124. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -1
  125. package/SVF-doxygen/html/html/cfl_8cpp_source.html +2 -2
  126. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +1 -1
  127. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
  128. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +1 -1
  129. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +1 -1
  130. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +1 -1
  131. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
  132. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -1
  133. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +1 -1
  134. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +5 -5
  135. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +2 -2
  136. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +54 -53
  137. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +70 -63
  138. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +415 -95
  139. package/SVF-doxygen/html/html/classSVF_1_1CFLFIFOWorkList.html +25 -25
  140. package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar-members.html +1 -1
  141. package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar.html +51 -51
  142. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver-members.html +4 -4
  143. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +39 -39
  144. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +4 -4
  145. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
  146. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
  147. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +1 -1
  148. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
  149. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +13 -13
  150. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
  151. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
  152. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +58 -58
  153. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase_1_1SymbolHash.html +3 -3
  154. package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder.html +3 -3
  155. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +2 -2
  156. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +2 -2
  157. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +2 -2
  158. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +4 -4
  159. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +2 -2
  160. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
  161. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +5 -5
  162. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +6 -6
  163. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +6 -6
  164. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +2 -2
  165. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +38 -38
  166. package/SVF-doxygen/html/html/classSVF_1_1Options.html +30 -30
  167. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
  168. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +40 -36
  169. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +2 -2
  170. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +2 -2
  171. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +4 -4
  172. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +3 -3
  173. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +2 -2
  174. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +3 -3
  175. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
  176. package/SVF-doxygen/html/html/classllvm_1_1GraphPrinter.html +1 -1
  177. package/SVF-doxygen/html/html/cuddInt_8c.html +30 -30
  178. package/SVF-doxygen/html/html/cuddInt_8c_source.html +3 -3
  179. package/SVF-doxygen/html/html/cuddInt_8h.html +10 -10
  180. package/SVF-doxygen/html/html/cudd_8h.html +14 -14
  181. package/SVF-doxygen/html/html/cudd_8h_source.html +2 -2
  182. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  183. package/SVF-doxygen/html/html/functions_a.html +11 -10
  184. package/SVF-doxygen/html/html/functions_c.html +30 -23
  185. package/SVF-doxygen/html/html/functions_func.html +12 -11
  186. package/SVF-doxygen/html/html/functions_func_c.html +11 -10
  187. package/SVF-doxygen/html/html/functions_func_h.html +3 -2
  188. package/SVF-doxygen/html/html/functions_func_n.html +1 -1
  189. package/SVF-doxygen/html/html/functions_func_o.html +4 -9
  190. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  191. package/SVF-doxygen/html/html/functions_func_u.html +1 -0
  192. package/SVF-doxygen/html/html/functions_g.html +5 -8
  193. package/SVF-doxygen/html/html/functions_h.html +2 -1
  194. package/SVF-doxygen/html/html/functions_i.html +6 -6
  195. package/SVF-doxygen/html/html/functions_l.html +5 -5
  196. package/SVF-doxygen/html/html/functions_n.html +1 -1
  197. package/SVF-doxygen/html/html/functions_o.html +14 -21
  198. package/SVF-doxygen/html/html/functions_p.html +12 -9
  199. package/SVF-doxygen/html/html/functions_r.html +4 -4
  200. package/SVF-doxygen/html/html/functions_s.html +10 -8
  201. package/SVF-doxygen/html/html/functions_t.html +3 -3
  202. package/SVF-doxygen/html/html/functions_type_c.html +1 -0
  203. package/SVF-doxygen/html/html/functions_u.html +1 -0
  204. package/SVF-doxygen/html/html/functions_v.html +3 -3
  205. package/SVF-doxygen/html/html/functions_vars_c.html +1 -0
  206. package/SVF-doxygen/html/html/functions_vars_g.html +0 -3
  207. package/SVF-doxygen/html/html/functions_vars_p.html +3 -0
  208. package/SVF-doxygen/html/html/functions_w.html +6 -10
  209. package/SVF-doxygen/html/html/globals_a.html +3 -0
  210. package/SVF-doxygen/html/html/globals_f.html +2 -2
  211. package/SVF-doxygen/html/html/globals_g.html +10 -4
  212. package/SVF-doxygen/html/html/globals_l.html +4 -1
  213. package/SVF-doxygen/html/html/globals_m.html +15 -12
  214. package/SVF-doxygen/html/html/globals_s.html +17 -13
  215. package/SVF-doxygen/html/html/globals_vars.html +26 -5
  216. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  217. package/SVF-doxygen/html/html/namespaceSVF.html +2 -2
  218. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +3 -3
  219. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +12 -12
  220. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
  221. package/SVF-doxygen/html/html/search/all_1.js +2 -1
  222. package/SVF-doxygen/html/html/search/all_10.js +8 -7
  223. package/SVF-doxygen/html/html/search/all_12.js +2 -2
  224. package/SVF-doxygen/html/html/search/all_13.js +12 -11
  225. package/SVF-doxygen/html/html/search/all_14.js +6 -6
  226. package/SVF-doxygen/html/html/search/all_15.js +2 -2
  227. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  228. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  229. package/SVF-doxygen/html/html/search/all_3.js +2 -2
  230. package/SVF-doxygen/html/html/search/all_5.js +1 -1
  231. package/SVF-doxygen/html/html/search/all_6.js +2 -2
  232. package/SVF-doxygen/html/html/search/all_7.js +4 -3
  233. package/SVF-doxygen/html/html/search/all_8.js +1 -1
  234. package/SVF-doxygen/html/html/search/all_9.js +2 -2
  235. package/SVF-doxygen/html/html/search/all_c.js +6 -5
  236. package/SVF-doxygen/html/html/search/all_d.js +3 -2
  237. package/SVF-doxygen/html/html/search/all_e.js +3 -3
  238. package/SVF-doxygen/html/html/search/all_f.js +7 -9
  239. package/SVF-doxygen/html/html/search/functions_0.js +1 -1
  240. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  241. package/SVF-doxygen/html/html/search/functions_13.js +1 -1
  242. package/SVF-doxygen/html/html/search/functions_2.js +1 -1
  243. package/SVF-doxygen/html/html/search/functions_7.js +1 -1
  244. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  245. package/SVF-doxygen/html/html/search/functions_e.js +4 -6
  246. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  247. package/SVF-doxygen/html/html/search/variables_1.js +1 -0
  248. package/SVF-doxygen/html/html/search/variables_10.js +1 -0
  249. package/SVF-doxygen/html/html/search/variables_13.js +2 -0
  250. package/SVF-doxygen/html/html/search/variables_14.js +4 -4
  251. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  252. package/SVF-doxygen/html/html/search/variables_3.js +1 -1
  253. package/SVF-doxygen/html/html/search/variables_6.js +2 -2
  254. package/SVF-doxygen/html/html/search/variables_7.js +4 -3
  255. package/SVF-doxygen/html/html/search/variables_c.js +3 -2
  256. package/SVF-doxygen/html/html/search/variables_d.js +1 -0
  257. package/SVF-doxygen/html/html/search/variables_e.js +2 -2
  258. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol-members.html +10 -13
  259. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +44 -145
  260. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1SymbolVectorHash.html +3 -3
  261. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +6 -5
  262. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +4 -3
  263. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +4 -3
  264. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html +1 -1
  265. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html +2 -2
  266. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html +1 -1
  267. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  268. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  269. package/include/CFL/CFLAlias.h +50 -4
  270. package/include/CFL/CFLGrammar.h +9 -28
  271. package/include/CFL/CFLGrammar.txt +22 -1
  272. package/include/CFL/CFLSolver.h +10 -8
  273. package/include/Graphs/CFLGraph.h +0 -1
  274. package/include/Graphs/GraphPrinter.h +3 -3
  275. package/include/Util/Options.h +2 -2
  276. package/lib/CFL/CFGNormalizer.cpp +8 -14
  277. package/lib/CFL/CFLAlias.cpp +175 -6
  278. package/lib/CFL/CFLSolver.cpp +1 -0
  279. package/lib/Graphs/CFLGraph.cpp +0 -4
  280. package/lib/MemoryModel/PointerAnalysis.cpp +3 -0
  281. package/lib/Util/Options.cpp +8 -8
  282. package/package.json +1 -1
@@ -329,7 +329,7 @@ Functions</h2></td></tr>
329
329
  <tr class="separator:a5722a5bf76d99cd30783ad87ba03bf96"><td class="memSeparator" colspan="2">&#160;</td></tr>
330
330
  <tr class="memitem:a66a70b011fca8b95fbc3953e8b1be1fe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDdNode.html">DdNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cudd_8h.html#a66a70b011fca8b95fbc3953e8b1be1fe">Cudd_Decreasing</a> (<a class="el" href="structDdManager.html">DdManager</a> *dd, <a class="el" href="structDdNode.html">DdNode</a> *f, int i)</td></tr>
331
331
  <tr class="separator:a66a70b011fca8b95fbc3953e8b1be1fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
332
- <tr class="memitem:a3e078600dd9087c623e1bdfea00d599d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cudd_8h.html#a3e078600dd9087c623e1bdfea00d599d">Cudd_EquivDC</a> (<a class="el" href="structDdManager.html">DdManager</a> *dd, <a class="el" href="structDdNode.html">DdNode</a> *<a class="el" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>, <a class="el" href="structDdNode.html">DdNode</a> *G, <a class="el" href="structDdNode.html">DdNode</a> *D)</td></tr>
332
+ <tr class="memitem:a3e078600dd9087c623e1bdfea00d599d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cudd_8h.html#a3e078600dd9087c623e1bdfea00d599d">Cudd_EquivDC</a> (<a class="el" href="structDdManager.html">DdManager</a> *dd, <a class="el" href="structDdNode.html">DdNode</a> *<a class="el" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>, <a class="el" href="structDdNode.html">DdNode</a> *G, <a class="el" href="structDdNode.html">DdNode</a> *D)</td></tr>
333
333
  <tr class="separator:a3e078600dd9087c623e1bdfea00d599d"><td class="memSeparator" colspan="2">&#160;</td></tr>
334
334
  <tr class="memitem:a5dcbf450b32f6937bc6dba252474638d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cudd_8h.html#a5dcbf450b32f6937bc6dba252474638d">Cudd_bddLeqUnless</a> (<a class="el" href="structDdManager.html">DdManager</a> *dd, <a class="el" href="structDdNode.html">DdNode</a> *f, <a class="el" href="structDdNode.html">DdNode</a> *g, <a class="el" href="structDdNode.html">DdNode</a> *D)</td></tr>
335
335
  <tr class="separator:a5dcbf450b32f6937bc6dba252474638d"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -2192,7 +2192,7 @@ To link with mis, define DD_MIS. </li>
2192
2192
  <p>SeeAlso [Cudd_bddIteConstant Cudd_addEvalConst] </p>
2193
2193
 
2194
2194
  <p class="definition">Definition at line <a class="el" href="cuddInt_8c_source.html#l03283">3283</a> of file <a class="el" href="cuddInt_8c_source.html">cuddInt.c</a>.</p>
2195
- <div class="fragment"><div class="line"><a name="l03287"></a><span class="lineno"> 3287</span>&#160;{</div><div class="line"><a name="l03288"></a><span class="lineno"> 3288</span>&#160; <a class="code" href="structDdNode.html">DdNode</a> *<a class="code" href="cuddInt_8c.html#a49e3c7508be54a84ae83273ed240e31c">one</a>, *<a class="code" href="cuddInt_8c.html#ad9d1aaa6ee837cb65ffcf74932161586">zero</a>, *tmp, *<a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>, *fv, *fvn, *gv, *gvn;</div><div class="line"><a name="l03289"></a><span class="lineno"> 3289</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> topf, topg, res;</div><div class="line"><a name="l03290"></a><span class="lineno"> 3290</span>&#160;</div><div class="line"><a name="l03291"></a><span class="lineno"> 3291</span>&#160; <a class="code" href="cuddInt_8h.html#a94289b59164b0be08fdb041e6f847fd4">statLine</a>(dd);</div><div class="line"><a name="l03292"></a><span class="lineno"> 3292</span>&#160; <span class="comment">/* Terminal cases and normalization. */</span></div><div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>&#160; <span class="keywordflow">if</span> (f == g) <span class="keywordflow">return</span>(1);</div><div class="line"><a name="l03294"></a><span class="lineno"> 3294</span>&#160;</div><div class="line"><a name="l03295"></a><span class="lineno"> 3295</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(g)) {</div><div class="line"><a name="l03296"></a><span class="lineno"> 3296</span>&#160; <span class="comment">/* Special case: if f is regular and g is complemented,</span></div><div class="line"><a name="l03297"></a><span class="lineno"> 3297</span>&#160;<span class="comment"> ** f(1,...,1) = 1 &gt; 0 = g(1,...,1).</span></div><div class="line"><a name="l03298"></a><span class="lineno"> 3298</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l03299"></a><span class="lineno"> 3299</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(f)) <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l03300"></a><span class="lineno"> 3300</span>&#160; <span class="comment">/* Both are complemented: Swap and complement because</span></div><div class="line"><a name="l03301"></a><span class="lineno"> 3301</span>&#160;<span class="comment"> ** f &lt;= g &lt;=&gt; g&#39; &lt;= f&#39; and we want the second argument to be regular.</span></div><div class="line"><a name="l03302"></a><span class="lineno"> 3302</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l03303"></a><span class="lineno"> 3303</span>&#160; tmp = g;</div><div class="line"><a name="l03304"></a><span class="lineno"> 3304</span>&#160; g = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(f);</div><div class="line"><a name="l03305"></a><span class="lineno"> 3305</span>&#160; f = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l03306"></a><span class="lineno"> 3306</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(f) &amp;&amp; g &lt; f) {</div><div class="line"><a name="l03307"></a><span class="lineno"> 3307</span>&#160; tmp = g;</div><div class="line"><a name="l03308"></a><span class="lineno"> 3308</span>&#160; g = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(f);</div><div class="line"><a name="l03309"></a><span class="lineno"> 3309</span>&#160; f = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l03310"></a><span class="lineno"> 3310</span>&#160; }</div><div class="line"><a name="l03311"></a><span class="lineno"> 3311</span>&#160;</div><div class="line"><a name="l03312"></a><span class="lineno"> 3312</span>&#160; <span class="comment">/* Now g is regular and, if f is not regular, f &lt; g. */</span></div><div class="line"><a name="l03313"></a><span class="lineno"> 3313</span>&#160; one = <a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd);</div><div class="line"><a name="l03314"></a><span class="lineno"> 3314</span>&#160; <span class="keywordflow">if</span> (g == one) <span class="keywordflow">return</span>(1); <span class="comment">/* no need to test against zero */</span></div><div class="line"><a name="l03315"></a><span class="lineno"> 3315</span>&#160; <span class="keywordflow">if</span> (f == one) <span class="keywordflow">return</span>(0); <span class="comment">/* since at this point g != one */</span></div><div class="line"><a name="l03316"></a><span class="lineno"> 3316</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(f) == g) <span class="keywordflow">return</span>(0); <span class="comment">/* because neither is constant */</span></div><div class="line"><a name="l03317"></a><span class="lineno"> 3317</span>&#160; zero = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(one);</div><div class="line"><a name="l03318"></a><span class="lineno"> 3318</span>&#160; <span class="keywordflow">if</span> (f == zero) <span class="keywordflow">return</span>(1);</div><div class="line"><a name="l03319"></a><span class="lineno"> 3319</span>&#160;</div><div class="line"><a name="l03320"></a><span class="lineno"> 3320</span>&#160; <span class="comment">/* Here neither f nor g is constant. */</span></div><div class="line"><a name="l03321"></a><span class="lineno"> 3321</span>&#160;</div><div class="line"><a name="l03322"></a><span class="lineno"> 3322</span>&#160; <span class="comment">/* Check cache. */</span></div><div class="line"><a name="l03323"></a><span class="lineno"> 3323</span>&#160; tmp = <a class="code" href="cuddInt_8c.html#ab4f89447f0f0892337a1d6ff4c533933">cuddCacheLookup2</a>(dd,(<a class="code" href="cudd_8h.html#af55488f14ee0664be0dee3f2004f5fd6">DD_CTFP</a>)<a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>,f,g);</div><div class="line"><a name="l03324"></a><span class="lineno"> 3324</span>&#160; <span class="keywordflow">if</span> (tmp != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>) {</div><div class="line"><a name="l03325"></a><span class="lineno"> 3325</span>&#160; <span class="keywordflow">return</span>(tmp == one);</div><div class="line"><a name="l03326"></a><span class="lineno"> 3326</span>&#160; }</div><div class="line"><a name="l03327"></a><span class="lineno"> 3327</span>&#160;</div><div class="line"><a name="l03328"></a><span class="lineno"> 3328</span>&#160; <span class="comment">/* Compute cofactors. */</span></div><div class="line"><a name="l03329"></a><span class="lineno"> 3329</span>&#160; F = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f);</div><div class="line"><a name="l03330"></a><span class="lineno"> 3330</span>&#160; topf = dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[F-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>];</div><div class="line"><a name="l03331"></a><span class="lineno"> 3331</span>&#160; topg = dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[g-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>];</div><div class="line"><a name="l03332"></a><span class="lineno"> 3332</span>&#160; <span class="keywordflow">if</span> (topf &lt;= topg) {</div><div class="line"><a name="l03333"></a><span class="lineno"> 3333</span>&#160; fv = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(F); fvn = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(F);</div><div class="line"><a name="l03334"></a><span class="lineno"> 3334</span>&#160; <span class="keywordflow">if</span> (f != F) {</div><div class="line"><a name="l03335"></a><span class="lineno"> 3335</span>&#160; fv = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(fv);</div><div class="line"><a name="l03336"></a><span class="lineno"> 3336</span>&#160; fvn = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(fvn);</div><div class="line"><a name="l03337"></a><span class="lineno"> 3337</span>&#160; }</div><div class="line"><a name="l03338"></a><span class="lineno"> 3338</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l03339"></a><span class="lineno"> 3339</span>&#160; fv = fvn = f;</div><div class="line"><a name="l03340"></a><span class="lineno"> 3340</span>&#160; }</div><div class="line"><a name="l03341"></a><span class="lineno"> 3341</span>&#160; <span class="keywordflow">if</span> (topg &lt;= topf) {</div><div class="line"><a name="l03342"></a><span class="lineno"> 3342</span>&#160; gv = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(g); gvn = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(g);</div><div class="line"><a name="l03343"></a><span class="lineno"> 3343</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l03344"></a><span class="lineno"> 3344</span>&#160; gv = gvn = g;</div><div class="line"><a name="l03345"></a><span class="lineno"> 3345</span>&#160; }</div><div class="line"><a name="l03346"></a><span class="lineno"> 3346</span>&#160;</div><div class="line"><a name="l03347"></a><span class="lineno"> 3347</span>&#160; <span class="comment">/* Recursive calls. Since we want to maximize the probability of</span></div><div class="line"><a name="l03348"></a><span class="lineno"> 3348</span>&#160;<span class="comment"> ** the special case f(1,...,1) &gt; g(1,...,1), we consider the negative</span></div><div class="line"><a name="l03349"></a><span class="lineno"> 3349</span>&#160;<span class="comment"> ** cofactors first. Indeed, the complementation parity of the positive</span></div><div class="line"><a name="l03350"></a><span class="lineno"> 3350</span>&#160;<span class="comment"> ** cofactors is the same as the one of the parent functions.</span></div><div class="line"><a name="l03351"></a><span class="lineno"> 3351</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l03352"></a><span class="lineno"> 3352</span>&#160; res = <a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>(dd,fvn,gvn) &amp;&amp; <a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>(dd,fv,gv);</div><div class="line"><a name="l03353"></a><span class="lineno"> 3353</span>&#160;</div><div class="line"><a name="l03354"></a><span class="lineno"> 3354</span>&#160; <span class="comment">/* Store result in cache and return. */</span></div><div class="line"><a name="l03355"></a><span class="lineno"> 3355</span>&#160; <a class="code" href="cuddInt_8c.html#acf6d1175a8da1a1613910bac913fee58">cuddCacheInsert2</a>(dd,(<a class="code" href="cudd_8h.html#af55488f14ee0664be0dee3f2004f5fd6">DD_CTFP</a>)<a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>,f,g,(res ? one : zero));</div><div class="line"><a name="l03356"></a><span class="lineno"> 3356</span>&#160; <span class="keywordflow">return</span>(res);</div><div class="line"><a name="l03357"></a><span class="lineno"> 3357</span>&#160;</div><div class="line"><a name="l03358"></a><span class="lineno"> 3358</span>&#160;} <span class="comment">/* end of Cudd_bddLeq */</span></div><div class="ttc" id="structDdNode_html"><div class="ttname"><a href="structDdNode.html">DdNode</a></div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00271">cudd.h:271</a></div></div>
2195
+ <div class="fragment"><div class="line"><a name="l03287"></a><span class="lineno"> 3287</span>&#160;{</div><div class="line"><a name="l03288"></a><span class="lineno"> 3288</span>&#160; <a class="code" href="structDdNode.html">DdNode</a> *<a class="code" href="cuddInt_8c.html#a49e3c7508be54a84ae83273ed240e31c">one</a>, *<a class="code" href="cuddInt_8c.html#ad9d1aaa6ee837cb65ffcf74932161586">zero</a>, *tmp, *<a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>, *fv, *fvn, *gv, *gvn;</div><div class="line"><a name="l03289"></a><span class="lineno"> 3289</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> topf, topg, res;</div><div class="line"><a name="l03290"></a><span class="lineno"> 3290</span>&#160;</div><div class="line"><a name="l03291"></a><span class="lineno"> 3291</span>&#160; <a class="code" href="cuddInt_8h.html#a94289b59164b0be08fdb041e6f847fd4">statLine</a>(dd);</div><div class="line"><a name="l03292"></a><span class="lineno"> 3292</span>&#160; <span class="comment">/* Terminal cases and normalization. */</span></div><div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>&#160; <span class="keywordflow">if</span> (f == g) <span class="keywordflow">return</span>(1);</div><div class="line"><a name="l03294"></a><span class="lineno"> 3294</span>&#160;</div><div class="line"><a name="l03295"></a><span class="lineno"> 3295</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(g)) {</div><div class="line"><a name="l03296"></a><span class="lineno"> 3296</span>&#160; <span class="comment">/* Special case: if f is regular and g is complemented,</span></div><div class="line"><a name="l03297"></a><span class="lineno"> 3297</span>&#160;<span class="comment"> ** f(1,...,1) = 1 &gt; 0 = g(1,...,1).</span></div><div class="line"><a name="l03298"></a><span class="lineno"> 3298</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l03299"></a><span class="lineno"> 3299</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(f)) <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l03300"></a><span class="lineno"> 3300</span>&#160; <span class="comment">/* Both are complemented: Swap and complement because</span></div><div class="line"><a name="l03301"></a><span class="lineno"> 3301</span>&#160;<span class="comment"> ** f &lt;= g &lt;=&gt; g&#39; &lt;= f&#39; and we want the second argument to be regular.</span></div><div class="line"><a name="l03302"></a><span class="lineno"> 3302</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l03303"></a><span class="lineno"> 3303</span>&#160; tmp = g;</div><div class="line"><a name="l03304"></a><span class="lineno"> 3304</span>&#160; g = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(f);</div><div class="line"><a name="l03305"></a><span class="lineno"> 3305</span>&#160; f = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l03306"></a><span class="lineno"> 3306</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(f) &amp;&amp; g &lt; f) {</div><div class="line"><a name="l03307"></a><span class="lineno"> 3307</span>&#160; tmp = g;</div><div class="line"><a name="l03308"></a><span class="lineno"> 3308</span>&#160; g = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(f);</div><div class="line"><a name="l03309"></a><span class="lineno"> 3309</span>&#160; f = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l03310"></a><span class="lineno"> 3310</span>&#160; }</div><div class="line"><a name="l03311"></a><span class="lineno"> 3311</span>&#160;</div><div class="line"><a name="l03312"></a><span class="lineno"> 3312</span>&#160; <span class="comment">/* Now g is regular and, if f is not regular, f &lt; g. */</span></div><div class="line"><a name="l03313"></a><span class="lineno"> 3313</span>&#160; one = <a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd);</div><div class="line"><a name="l03314"></a><span class="lineno"> 3314</span>&#160; <span class="keywordflow">if</span> (g == one) <span class="keywordflow">return</span>(1); <span class="comment">/* no need to test against zero */</span></div><div class="line"><a name="l03315"></a><span class="lineno"> 3315</span>&#160; <span class="keywordflow">if</span> (f == one) <span class="keywordflow">return</span>(0); <span class="comment">/* since at this point g != one */</span></div><div class="line"><a name="l03316"></a><span class="lineno"> 3316</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(f) == g) <span class="keywordflow">return</span>(0); <span class="comment">/* because neither is constant */</span></div><div class="line"><a name="l03317"></a><span class="lineno"> 3317</span>&#160; zero = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(one);</div><div class="line"><a name="l03318"></a><span class="lineno"> 3318</span>&#160; <span class="keywordflow">if</span> (f == zero) <span class="keywordflow">return</span>(1);</div><div class="line"><a name="l03319"></a><span class="lineno"> 3319</span>&#160;</div><div class="line"><a name="l03320"></a><span class="lineno"> 3320</span>&#160; <span class="comment">/* Here neither f nor g is constant. */</span></div><div class="line"><a name="l03321"></a><span class="lineno"> 3321</span>&#160;</div><div class="line"><a name="l03322"></a><span class="lineno"> 3322</span>&#160; <span class="comment">/* Check cache. */</span></div><div class="line"><a name="l03323"></a><span class="lineno"> 3323</span>&#160; tmp = <a class="code" href="cuddInt_8c.html#ab4f89447f0f0892337a1d6ff4c533933">cuddCacheLookup2</a>(dd,(<a class="code" href="cudd_8h.html#af55488f14ee0664be0dee3f2004f5fd6">DD_CTFP</a>)<a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>,f,g);</div><div class="line"><a name="l03324"></a><span class="lineno"> 3324</span>&#160; <span class="keywordflow">if</span> (tmp != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>) {</div><div class="line"><a name="l03325"></a><span class="lineno"> 3325</span>&#160; <span class="keywordflow">return</span>(tmp == one);</div><div class="line"><a name="l03326"></a><span class="lineno"> 3326</span>&#160; }</div><div class="line"><a name="l03327"></a><span class="lineno"> 3327</span>&#160;</div><div class="line"><a name="l03328"></a><span class="lineno"> 3328</span>&#160; <span class="comment">/* Compute cofactors. */</span></div><div class="line"><a name="l03329"></a><span class="lineno"> 3329</span>&#160; F = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f);</div><div class="line"><a name="l03330"></a><span class="lineno"> 3330</span>&#160; topf = dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[F-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>];</div><div class="line"><a name="l03331"></a><span class="lineno"> 3331</span>&#160; topg = dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[g-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>];</div><div class="line"><a name="l03332"></a><span class="lineno"> 3332</span>&#160; <span class="keywordflow">if</span> (topf &lt;= topg) {</div><div class="line"><a name="l03333"></a><span class="lineno"> 3333</span>&#160; fv = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(F); fvn = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(F);</div><div class="line"><a name="l03334"></a><span class="lineno"> 3334</span>&#160; <span class="keywordflow">if</span> (f != F) {</div><div class="line"><a name="l03335"></a><span class="lineno"> 3335</span>&#160; fv = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(fv);</div><div class="line"><a name="l03336"></a><span class="lineno"> 3336</span>&#160; fvn = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(fvn);</div><div class="line"><a name="l03337"></a><span class="lineno"> 3337</span>&#160; }</div><div class="line"><a name="l03338"></a><span class="lineno"> 3338</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l03339"></a><span class="lineno"> 3339</span>&#160; fv = fvn = f;</div><div class="line"><a name="l03340"></a><span class="lineno"> 3340</span>&#160; }</div><div class="line"><a name="l03341"></a><span class="lineno"> 3341</span>&#160; <span class="keywordflow">if</span> (topg &lt;= topf) {</div><div class="line"><a name="l03342"></a><span class="lineno"> 3342</span>&#160; gv = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(g); gvn = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(g);</div><div class="line"><a name="l03343"></a><span class="lineno"> 3343</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l03344"></a><span class="lineno"> 3344</span>&#160; gv = gvn = g;</div><div class="line"><a name="l03345"></a><span class="lineno"> 3345</span>&#160; }</div><div class="line"><a name="l03346"></a><span class="lineno"> 3346</span>&#160;</div><div class="line"><a name="l03347"></a><span class="lineno"> 3347</span>&#160; <span class="comment">/* Recursive calls. Since we want to maximize the probability of</span></div><div class="line"><a name="l03348"></a><span class="lineno"> 3348</span>&#160;<span class="comment"> ** the special case f(1,...,1) &gt; g(1,...,1), we consider the negative</span></div><div class="line"><a name="l03349"></a><span class="lineno"> 3349</span>&#160;<span class="comment"> ** cofactors first. Indeed, the complementation parity of the positive</span></div><div class="line"><a name="l03350"></a><span class="lineno"> 3350</span>&#160;<span class="comment"> ** cofactors is the same as the one of the parent functions.</span></div><div class="line"><a name="l03351"></a><span class="lineno"> 3351</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l03352"></a><span class="lineno"> 3352</span>&#160; res = <a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>(dd,fvn,gvn) &amp;&amp; <a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>(dd,fv,gv);</div><div class="line"><a name="l03353"></a><span class="lineno"> 3353</span>&#160;</div><div class="line"><a name="l03354"></a><span class="lineno"> 3354</span>&#160; <span class="comment">/* Store result in cache and return. */</span></div><div class="line"><a name="l03355"></a><span class="lineno"> 3355</span>&#160; <a class="code" href="cuddInt_8c.html#acf6d1175a8da1a1613910bac913fee58">cuddCacheInsert2</a>(dd,(<a class="code" href="cudd_8h.html#af55488f14ee0664be0dee3f2004f5fd6">DD_CTFP</a>)<a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>,f,g,(res ? one : zero));</div><div class="line"><a name="l03356"></a><span class="lineno"> 3356</span>&#160; <span class="keywordflow">return</span>(res);</div><div class="line"><a name="l03357"></a><span class="lineno"> 3357</span>&#160;</div><div class="line"><a name="l03358"></a><span class="lineno"> 3358</span>&#160;} <span class="comment">/* end of Cudd_bddLeq */</span></div><div class="ttc" id="structDdNode_html"><div class="ttname"><a href="structDdNode.html">DdNode</a></div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00271">cudd.h:271</a></div></div>
2196
2196
  <div class="ttc" id="cudd_8h_html_a352ef8d39e760eaabae6d58d9a5ddbfc"><div class="ttname"><a href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a></div><div class="ttdeci">#define Cudd_Not(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00352">cudd.h:352</a></div></div>
2197
2197
  <div class="ttc" id="cuddInt_8c_html_a49e3c7508be54a84ae83273ed240e31c"><div class="ttname"><a href="cuddInt_8c.html#a49e3c7508be54a84ae83273ed240e31c">one</a></div><div class="ttdeci">static DdNode * one</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l16562">cuddInt.c:16562</a></div></div>
2198
2198
  <div class="ttc" id="cudd_8h_html_afbbecf4f6f78f92518f4d0a477d870b6"><div class="ttname"><a href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a></div><div class="ttdeci">#define Cudd_Regular(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00382">cudd.h:382</a></div></div>
@@ -2202,8 +2202,8 @@ To link with mis, define DD_MIS. </li>
2202
2202
  <div class="ttc" id="cuddInt_8c_html_ab4f89447f0f0892337a1d6ff4c533933"><div class="ttname"><a href="cuddInt_8c.html#ab4f89447f0f0892337a1d6ff4c533933">cuddCacheLookup2</a></div><div class="ttdeci">DdNode * cuddCacheLookup2(DdManager *table, DD_CTFP op, DdNode *f, DdNode *g)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l04537">cuddInt.c:4537</a></div></div>
2203
2203
  <div class="ttc" id="cuddInt_8h_html_a09834c697b92ac296b1e50c863f88262"><div class="ttname"><a href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a></div><div class="ttdeci">#define cuddT(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00626">cuddInt.h:626</a></div></div>
2204
2204
  <div class="ttc" id="cuddInt_8c_html_a89a46089e8572876a1521cdee6cb31a2"><div class="ttname"><a href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a></div><div class="ttdeci">int Cudd_bddLeq(DdManager *dd, DdNode *f, DdNode *g)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l03283">cuddInt.c:3283</a></div></div>
2205
- <div class="ttc" id="CFLGrammar_8txt_html_acc7b4cf736579c4d83be2316d5a9e5f2"><div class="ttname"><a href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00013">CFLGrammar.txt:13</a></div></div>
2206
2205
  <div class="ttc" id="structDdNode_html_abbd39b25b9abe4b4d53cd267a4103bda"><div class="ttname"><a href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">DdNode::index</a></div><div class="ttdeci">DdHalfWord index</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00273">cudd.h:273</a></div></div>
2206
+ <div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
2207
2207
  <div class="ttc" id="cJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
2208
2208
  <div class="ttc" id="cuddInt_8h_html_aaef03f10591d8e28bb5fecd2aa7c93ff"><div class="ttname"><a href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a></div><div class="ttdeci">#define cuddE(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00642">cuddInt.h:642</a></div></div>
2209
2209
  <div class="ttc" id="cuddInt_8c_html_ad9d1aaa6ee837cb65ffcf74932161586"><div class="ttname"><a href="cuddInt_8c.html#ad9d1aaa6ee837cb65ffcf74932161586">zero</a></div><div class="ttdeci">static DdNode * zero</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l16562">cuddInt.c:16562</a></div></div>
@@ -2259,7 +2259,7 @@ To link with mis, define DD_MIS. </li>
2259
2259
  <p>SeeAlso [Cudd_EquivDC Cudd_bddLeq Cudd_bddIteConstant] </p>
2260
2260
 
2261
2261
  <p class="definition">Definition at line <a class="el" href="cuddInt_8c_source.html#l16870">16870</a> of file <a class="el" href="cuddInt_8c_source.html">cuddInt.c</a>.</p>
2262
- <div class="fragment"><div class="line"><a name="l16875"></a><span class="lineno">16875</span>&#160; {</div><div class="line"><a name="l16876"></a><span class="lineno">16876</span>&#160; <a class="code" href="structDdNode.html">DdNode</a> *tmp, *One, *<a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>, *G;</div><div class="line"><a name="l16877"></a><span class="lineno">16877</span>&#160; <a class="code" href="structDdNode.html">DdNode</a> *Ft, *Fe, *Gt, *Ge, *Dt, *De;</div><div class="line"><a name="l16878"></a><span class="lineno">16878</span>&#160; <span class="keywordtype">int</span> res;</div><div class="line"><a name="l16879"></a><span class="lineno">16879</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> flevel, glevel, dlevel, top;</div><div class="line"><a name="l16880"></a><span class="lineno">16880</span>&#160;</div><div class="line"><a name="l16881"></a><span class="lineno">16881</span>&#160; <a class="code" href="cuddInt_8h.html#a94289b59164b0be08fdb041e6f847fd4">statLine</a>(dd);</div><div class="line"><a name="l16882"></a><span class="lineno">16882</span>&#160;</div><div class="line"><a name="l16883"></a><span class="lineno">16883</span>&#160; One = <a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd);</div><div class="line"><a name="l16884"></a><span class="lineno">16884</span>&#160;</div><div class="line"><a name="l16885"></a><span class="lineno">16885</span>&#160; <span class="comment">/* Check terminal cases. */</span></div><div class="line"><a name="l16886"></a><span class="lineno">16886</span>&#160; <span class="keywordflow">if</span> (f == g || g == One || f == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(One) || D == One ||</div><div class="line"><a name="l16887"></a><span class="lineno">16887</span>&#160; D == f || D == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(g)) <span class="keywordflow">return</span>(1);</div><div class="line"><a name="l16888"></a><span class="lineno">16888</span>&#160; <span class="comment">/* Check for two-operand cases. */</span></div><div class="line"><a name="l16889"></a><span class="lineno">16889</span>&#160; <span class="keywordflow">if</span> (D == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(One) || D == g || D == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(f))</div><div class="line"><a name="l16890"></a><span class="lineno">16890</span>&#160; <span class="keywordflow">return</span>(<a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>(dd,f,g));</div><div class="line"><a name="l16891"></a><span class="lineno">16891</span>&#160; <span class="keywordflow">if</span> (g == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(One) || g == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(f)) <span class="keywordflow">return</span>(<a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>(dd,f,D));</div><div class="line"><a name="l16892"></a><span class="lineno">16892</span>&#160; <span class="keywordflow">if</span> (f == One) <span class="keywordflow">return</span>(<a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>(dd,<a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(g),D));</div><div class="line"><a name="l16893"></a><span class="lineno">16893</span>&#160;</div><div class="line"><a name="l16894"></a><span class="lineno">16894</span>&#160; <span class="comment">/* From now on, f, g, and D are non-constant, distinct, and</span></div><div class="line"><a name="l16895"></a><span class="lineno">16895</span>&#160;<span class="comment"> ** non-complementary. */</span></div><div class="line"><a name="l16896"></a><span class="lineno">16896</span>&#160;</div><div class="line"><a name="l16897"></a><span class="lineno">16897</span>&#160; <span class="comment">/* Normalize call to increase cache efficiency. We rely on the</span></div><div class="line"><a name="l16898"></a><span class="lineno">16898</span>&#160;<span class="comment"> ** fact that f &lt;= g unless D is equivalent to not(g) &lt;= not(f)</span></div><div class="line"><a name="l16899"></a><span class="lineno">16899</span>&#160;<span class="comment"> ** unless D and to f &lt;= D unless g. We make sure that D is</span></div><div class="line"><a name="l16900"></a><span class="lineno">16900</span>&#160;<span class="comment"> ** regular, and that at most one of f and g is complemented. We also</span></div><div class="line"><a name="l16901"></a><span class="lineno">16901</span>&#160;<span class="comment"> ** ensure that when two operands can be swapped, the one with the</span></div><div class="line"><a name="l16902"></a><span class="lineno">16902</span>&#160;<span class="comment"> ** lowest address comes first. */</span></div><div class="line"><a name="l16903"></a><span class="lineno">16903</span>&#160;</div><div class="line"><a name="l16904"></a><span class="lineno">16904</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(D)) {</div><div class="line"><a name="l16905"></a><span class="lineno">16905</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(g)) {</div><div class="line"><a name="l16906"></a><span class="lineno">16906</span>&#160; <span class="comment">/* Special case: if f is regular and g is complemented,</span></div><div class="line"><a name="l16907"></a><span class="lineno">16907</span>&#160;<span class="comment"> ** f(1,...,1) = 1 &gt; 0 = g(1,...,1). If D(1,...,1) = 0, return 0.</span></div><div class="line"><a name="l16908"></a><span class="lineno">16908</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l16909"></a><span class="lineno">16909</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(f)) <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l16910"></a><span class="lineno">16910</span>&#160; <span class="comment">/* !g &lt;= D unless !f or !D &lt;= g unless !f */</span></div><div class="line"><a name="l16911"></a><span class="lineno">16911</span>&#160; tmp = D;</div><div class="line"><a name="l16912"></a><span class="lineno">16912</span>&#160; D = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(f);</div><div class="line"><a name="l16913"></a><span class="lineno">16913</span>&#160; <span class="keywordflow">if</span> (g &lt; tmp) {</div><div class="line"><a name="l16914"></a><span class="lineno">16914</span>&#160; f = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(g);</div><div class="line"><a name="l16915"></a><span class="lineno">16915</span>&#160; g = tmp;</div><div class="line"><a name="l16916"></a><span class="lineno">16916</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16917"></a><span class="lineno">16917</span>&#160; f = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l16918"></a><span class="lineno">16918</span>&#160; }</div><div class="line"><a name="l16919"></a><span class="lineno">16919</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16920"></a><span class="lineno">16920</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(f)) {</div><div class="line"><a name="l16921"></a><span class="lineno">16921</span>&#160; <span class="comment">/* !D &lt;= !f unless g or !D &lt;= g unless !f */</span></div><div class="line"><a name="l16922"></a><span class="lineno">16922</span>&#160; tmp = f;</div><div class="line"><a name="l16923"></a><span class="lineno">16923</span>&#160; f = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(D);</div><div class="line"><a name="l16924"></a><span class="lineno">16924</span>&#160; <span class="keywordflow">if</span> (tmp &lt; g) {</div><div class="line"><a name="l16925"></a><span class="lineno">16925</span>&#160; D = g;</div><div class="line"><a name="l16926"></a><span class="lineno">16926</span>&#160; g = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l16927"></a><span class="lineno">16927</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16928"></a><span class="lineno">16928</span>&#160; D = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l16929"></a><span class="lineno">16929</span>&#160; }</div><div class="line"><a name="l16930"></a><span class="lineno">16930</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16931"></a><span class="lineno">16931</span>&#160; <span class="comment">/* f &lt;= D unless g or !D &lt;= !f unless g */</span></div><div class="line"><a name="l16932"></a><span class="lineno">16932</span>&#160; tmp = D;</div><div class="line"><a name="l16933"></a><span class="lineno">16933</span>&#160; D = g;</div><div class="line"><a name="l16934"></a><span class="lineno">16934</span>&#160; <span class="keywordflow">if</span> (tmp &lt; f) {</div><div class="line"><a name="l16935"></a><span class="lineno">16935</span>&#160; g = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(f);</div><div class="line"><a name="l16936"></a><span class="lineno">16936</span>&#160; f = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l16937"></a><span class="lineno">16937</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16938"></a><span class="lineno">16938</span>&#160; g = tmp;</div><div class="line"><a name="l16939"></a><span class="lineno">16939</span>&#160; }</div><div class="line"><a name="l16940"></a><span class="lineno">16940</span>&#160; }</div><div class="line"><a name="l16941"></a><span class="lineno">16941</span>&#160; }</div><div class="line"><a name="l16942"></a><span class="lineno">16942</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16943"></a><span class="lineno">16943</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(g)) {</div><div class="line"><a name="l16944"></a><span class="lineno">16944</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(f)) {</div><div class="line"><a name="l16945"></a><span class="lineno">16945</span>&#160; <span class="comment">/* !g &lt;= !f unless D or !g &lt;= D unless !f */</span></div><div class="line"><a name="l16946"></a><span class="lineno">16946</span>&#160; tmp = f;</div><div class="line"><a name="l16947"></a><span class="lineno">16947</span>&#160; f = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(g);</div><div class="line"><a name="l16948"></a><span class="lineno">16948</span>&#160; <span class="keywordflow">if</span> (D &lt; tmp) {</div><div class="line"><a name="l16949"></a><span class="lineno">16949</span>&#160; g = D;</div><div class="line"><a name="l16950"></a><span class="lineno">16950</span>&#160; D = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l16951"></a><span class="lineno">16951</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16952"></a><span class="lineno">16952</span>&#160; g = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l16953"></a><span class="lineno">16953</span>&#160; }</div><div class="line"><a name="l16954"></a><span class="lineno">16954</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16955"></a><span class="lineno">16955</span>&#160; <span class="comment">/* f &lt;= g unless D or !g &lt;= !f unless D */</span></div><div class="line"><a name="l16956"></a><span class="lineno">16956</span>&#160; <span class="keywordflow">if</span> (g &lt; f) {</div><div class="line"><a name="l16957"></a><span class="lineno">16957</span>&#160; tmp = g;</div><div class="line"><a name="l16958"></a><span class="lineno">16958</span>&#160; g = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(f);</div><div class="line"><a name="l16959"></a><span class="lineno">16959</span>&#160; f = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l16960"></a><span class="lineno">16960</span>&#160; }</div><div class="line"><a name="l16961"></a><span class="lineno">16961</span>&#160; }</div><div class="line"><a name="l16962"></a><span class="lineno">16962</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16963"></a><span class="lineno">16963</span>&#160; <span class="comment">/* f &lt;= g unless D or f &lt;= D unless g */</span></div><div class="line"><a name="l16964"></a><span class="lineno">16964</span>&#160; <span class="keywordflow">if</span> (D &lt; g) {</div><div class="line"><a name="l16965"></a><span class="lineno">16965</span>&#160; tmp = D;</div><div class="line"><a name="l16966"></a><span class="lineno">16966</span>&#160; D = g;</div><div class="line"><a name="l16967"></a><span class="lineno">16967</span>&#160; g = tmp;</div><div class="line"><a name="l16968"></a><span class="lineno">16968</span>&#160; }</div><div class="line"><a name="l16969"></a><span class="lineno">16969</span>&#160; }</div><div class="line"><a name="l16970"></a><span class="lineno">16970</span>&#160; }</div><div class="line"><a name="l16971"></a><span class="lineno">16971</span>&#160;</div><div class="line"><a name="l16972"></a><span class="lineno">16972</span>&#160; <span class="comment">/* From now on, D is regular. */</span></div><div class="line"><a name="l16973"></a><span class="lineno">16973</span>&#160;</div><div class="line"><a name="l16974"></a><span class="lineno">16974</span>&#160; <span class="comment">/* Check cache. */</span></div><div class="line"><a name="l16975"></a><span class="lineno">16975</span>&#160; tmp = <a class="code" href="cuddInt_8c.html#ab2e7f6c2eabfb9af8ed7e52dcc00a678">cuddCacheLookup</a>(dd,<a class="code" href="cuddInt_8h.html#ae51310f4dbc382140288e235e21840f3">DD_BDD_LEQ_UNLESS_TAG</a>,f,g,D);</div><div class="line"><a name="l16976"></a><span class="lineno">16976</span>&#160; <span class="keywordflow">if</span> (tmp != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>) <span class="keywordflow">return</span>(tmp == One);</div><div class="line"><a name="l16977"></a><span class="lineno">16977</span>&#160;</div><div class="line"><a name="l16978"></a><span class="lineno">16978</span>&#160; <span class="comment">/* Find splitting variable. */</span></div><div class="line"><a name="l16979"></a><span class="lineno">16979</span>&#160; F = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f);</div><div class="line"><a name="l16980"></a><span class="lineno">16980</span>&#160; flevel = dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[F-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>];</div><div class="line"><a name="l16981"></a><span class="lineno">16981</span>&#160; G = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(g);</div><div class="line"><a name="l16982"></a><span class="lineno">16982</span>&#160; glevel = dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[G-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>];</div><div class="line"><a name="l16983"></a><span class="lineno">16983</span>&#160; top = <a class="code" href="cuddInt_8h.html#a2ca9cfb1642557eefc559198c4801092">ddMin</a>(flevel,glevel);</div><div class="line"><a name="l16984"></a><span class="lineno">16984</span>&#160; dlevel = dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[D-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>];</div><div class="line"><a name="l16985"></a><span class="lineno">16985</span>&#160; top = <a class="code" href="cuddInt_8h.html#a2ca9cfb1642557eefc559198c4801092">ddMin</a>(top,dlevel);</div><div class="line"><a name="l16986"></a><span class="lineno">16986</span>&#160;</div><div class="line"><a name="l16987"></a><span class="lineno">16987</span>&#160; <span class="comment">/* Compute cofactors. */</span></div><div class="line"><a name="l16988"></a><span class="lineno">16988</span>&#160; <span class="keywordflow">if</span> (top == flevel) {</div><div class="line"><a name="l16989"></a><span class="lineno">16989</span>&#160; Ft = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(F);</div><div class="line"><a name="l16990"></a><span class="lineno">16990</span>&#160; Fe = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(F);</div><div class="line"><a name="l16991"></a><span class="lineno">16991</span>&#160; <span class="keywordflow">if</span> (F != f) {</div><div class="line"><a name="l16992"></a><span class="lineno">16992</span>&#160; Ft = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(Ft);</div><div class="line"><a name="l16993"></a><span class="lineno">16993</span>&#160; Fe = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(Fe);</div><div class="line"><a name="l16994"></a><span class="lineno">16994</span>&#160; }</div><div class="line"><a name="l16995"></a><span class="lineno">16995</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16996"></a><span class="lineno">16996</span>&#160; Ft = Fe = f;</div><div class="line"><a name="l16997"></a><span class="lineno">16997</span>&#160; }</div><div class="line"><a name="l16998"></a><span class="lineno">16998</span>&#160; <span class="keywordflow">if</span> (top == glevel) {</div><div class="line"><a name="l16999"></a><span class="lineno">16999</span>&#160; Gt = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(G);</div><div class="line"><a name="l17000"></a><span class="lineno">17000</span>&#160; Ge = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(G);</div><div class="line"><a name="l17001"></a><span class="lineno">17001</span>&#160; <span class="keywordflow">if</span> (G != g) {</div><div class="line"><a name="l17002"></a><span class="lineno">17002</span>&#160; Gt = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(Gt);</div><div class="line"><a name="l17003"></a><span class="lineno">17003</span>&#160; Ge = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(Ge);</div><div class="line"><a name="l17004"></a><span class="lineno">17004</span>&#160; }</div><div class="line"><a name="l17005"></a><span class="lineno">17005</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l17006"></a><span class="lineno">17006</span>&#160; Gt = Ge = g;</div><div class="line"><a name="l17007"></a><span class="lineno">17007</span>&#160; }</div><div class="line"><a name="l17008"></a><span class="lineno">17008</span>&#160; <span class="keywordflow">if</span> (top == dlevel) {</div><div class="line"><a name="l17009"></a><span class="lineno">17009</span>&#160; Dt = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(D);</div><div class="line"><a name="l17010"></a><span class="lineno">17010</span>&#160; De = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(D);</div><div class="line"><a name="l17011"></a><span class="lineno">17011</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l17012"></a><span class="lineno">17012</span>&#160; Dt = De = D;</div><div class="line"><a name="l17013"></a><span class="lineno">17013</span>&#160; }</div><div class="line"><a name="l17014"></a><span class="lineno">17014</span>&#160;</div><div class="line"><a name="l17015"></a><span class="lineno">17015</span>&#160; <span class="comment">/* Solve recursively. */</span></div><div class="line"><a name="l17016"></a><span class="lineno">17016</span>&#160; res = <a class="code" href="cuddInt_8c.html#a5dcbf450b32f6937bc6dba252474638d">Cudd_bddLeqUnless</a>(dd,Ft,Gt,Dt);</div><div class="line"><a name="l17017"></a><span class="lineno">17017</span>&#160; <span class="keywordflow">if</span> (res != 0) {</div><div class="line"><a name="l17018"></a><span class="lineno">17018</span>&#160; res = <a class="code" href="cuddInt_8c.html#a5dcbf450b32f6937bc6dba252474638d">Cudd_bddLeqUnless</a>(dd,Fe,Ge,De);</div><div class="line"><a name="l17019"></a><span class="lineno">17019</span>&#160; }</div><div class="line"><a name="l17020"></a><span class="lineno">17020</span>&#160; <a class="code" href="cuddInt_8c.html#ac766e39390bf4d3c975d4a6bd34653dc">cuddCacheInsert</a>(dd,<a class="code" href="cuddInt_8h.html#ae51310f4dbc382140288e235e21840f3">DD_BDD_LEQ_UNLESS_TAG</a>,f,g,D,<a class="code" href="cudd_8h.html#ae870da95e89a703e939161fe08b899f9">Cudd_NotCond</a>(One,!res));</div><div class="line"><a name="l17021"></a><span class="lineno">17021</span>&#160;</div><div class="line"><a name="l17022"></a><span class="lineno">17022</span>&#160; <span class="keywordflow">return</span>(res);</div><div class="line"><a name="l17023"></a><span class="lineno">17023</span>&#160;</div><div class="line"><a name="l17024"></a><span class="lineno">17024</span>&#160; } <span class="comment">/* end of Cudd_bddLeqUnless */</span></div><div class="ttc" id="structDdNode_html"><div class="ttname"><a href="structDdNode.html">DdNode</a></div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00271">cudd.h:271</a></div></div>
2262
+ <div class="fragment"><div class="line"><a name="l16875"></a><span class="lineno">16875</span>&#160; {</div><div class="line"><a name="l16876"></a><span class="lineno">16876</span>&#160; <a class="code" href="structDdNode.html">DdNode</a> *tmp, *One, *<a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>, *G;</div><div class="line"><a name="l16877"></a><span class="lineno">16877</span>&#160; <a class="code" href="structDdNode.html">DdNode</a> *Ft, *Fe, *Gt, *Ge, *Dt, *De;</div><div class="line"><a name="l16878"></a><span class="lineno">16878</span>&#160; <span class="keywordtype">int</span> res;</div><div class="line"><a name="l16879"></a><span class="lineno">16879</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> flevel, glevel, dlevel, top;</div><div class="line"><a name="l16880"></a><span class="lineno">16880</span>&#160;</div><div class="line"><a name="l16881"></a><span class="lineno">16881</span>&#160; <a class="code" href="cuddInt_8h.html#a94289b59164b0be08fdb041e6f847fd4">statLine</a>(dd);</div><div class="line"><a name="l16882"></a><span class="lineno">16882</span>&#160;</div><div class="line"><a name="l16883"></a><span class="lineno">16883</span>&#160; One = <a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd);</div><div class="line"><a name="l16884"></a><span class="lineno">16884</span>&#160;</div><div class="line"><a name="l16885"></a><span class="lineno">16885</span>&#160; <span class="comment">/* Check terminal cases. */</span></div><div class="line"><a name="l16886"></a><span class="lineno">16886</span>&#160; <span class="keywordflow">if</span> (f == g || g == One || f == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(One) || D == One ||</div><div class="line"><a name="l16887"></a><span class="lineno">16887</span>&#160; D == f || D == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(g)) <span class="keywordflow">return</span>(1);</div><div class="line"><a name="l16888"></a><span class="lineno">16888</span>&#160; <span class="comment">/* Check for two-operand cases. */</span></div><div class="line"><a name="l16889"></a><span class="lineno">16889</span>&#160; <span class="keywordflow">if</span> (D == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(One) || D == g || D == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(f))</div><div class="line"><a name="l16890"></a><span class="lineno">16890</span>&#160; <span class="keywordflow">return</span>(<a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>(dd,f,g));</div><div class="line"><a name="l16891"></a><span class="lineno">16891</span>&#160; <span class="keywordflow">if</span> (g == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(One) || g == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(f)) <span class="keywordflow">return</span>(<a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>(dd,f,D));</div><div class="line"><a name="l16892"></a><span class="lineno">16892</span>&#160; <span class="keywordflow">if</span> (f == One) <span class="keywordflow">return</span>(<a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>(dd,<a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(g),D));</div><div class="line"><a name="l16893"></a><span class="lineno">16893</span>&#160;</div><div class="line"><a name="l16894"></a><span class="lineno">16894</span>&#160; <span class="comment">/* From now on, f, g, and D are non-constant, distinct, and</span></div><div class="line"><a name="l16895"></a><span class="lineno">16895</span>&#160;<span class="comment"> ** non-complementary. */</span></div><div class="line"><a name="l16896"></a><span class="lineno">16896</span>&#160;</div><div class="line"><a name="l16897"></a><span class="lineno">16897</span>&#160; <span class="comment">/* Normalize call to increase cache efficiency. We rely on the</span></div><div class="line"><a name="l16898"></a><span class="lineno">16898</span>&#160;<span class="comment"> ** fact that f &lt;= g unless D is equivalent to not(g) &lt;= not(f)</span></div><div class="line"><a name="l16899"></a><span class="lineno">16899</span>&#160;<span class="comment"> ** unless D and to f &lt;= D unless g. We make sure that D is</span></div><div class="line"><a name="l16900"></a><span class="lineno">16900</span>&#160;<span class="comment"> ** regular, and that at most one of f and g is complemented. We also</span></div><div class="line"><a name="l16901"></a><span class="lineno">16901</span>&#160;<span class="comment"> ** ensure that when two operands can be swapped, the one with the</span></div><div class="line"><a name="l16902"></a><span class="lineno">16902</span>&#160;<span class="comment"> ** lowest address comes first. */</span></div><div class="line"><a name="l16903"></a><span class="lineno">16903</span>&#160;</div><div class="line"><a name="l16904"></a><span class="lineno">16904</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(D)) {</div><div class="line"><a name="l16905"></a><span class="lineno">16905</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(g)) {</div><div class="line"><a name="l16906"></a><span class="lineno">16906</span>&#160; <span class="comment">/* Special case: if f is regular and g is complemented,</span></div><div class="line"><a name="l16907"></a><span class="lineno">16907</span>&#160;<span class="comment"> ** f(1,...,1) = 1 &gt; 0 = g(1,...,1). If D(1,...,1) = 0, return 0.</span></div><div class="line"><a name="l16908"></a><span class="lineno">16908</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l16909"></a><span class="lineno">16909</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(f)) <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l16910"></a><span class="lineno">16910</span>&#160; <span class="comment">/* !g &lt;= D unless !f or !D &lt;= g unless !f */</span></div><div class="line"><a name="l16911"></a><span class="lineno">16911</span>&#160; tmp = D;</div><div class="line"><a name="l16912"></a><span class="lineno">16912</span>&#160; D = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(f);</div><div class="line"><a name="l16913"></a><span class="lineno">16913</span>&#160; <span class="keywordflow">if</span> (g &lt; tmp) {</div><div class="line"><a name="l16914"></a><span class="lineno">16914</span>&#160; f = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(g);</div><div class="line"><a name="l16915"></a><span class="lineno">16915</span>&#160; g = tmp;</div><div class="line"><a name="l16916"></a><span class="lineno">16916</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16917"></a><span class="lineno">16917</span>&#160; f = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l16918"></a><span class="lineno">16918</span>&#160; }</div><div class="line"><a name="l16919"></a><span class="lineno">16919</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16920"></a><span class="lineno">16920</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(f)) {</div><div class="line"><a name="l16921"></a><span class="lineno">16921</span>&#160; <span class="comment">/* !D &lt;= !f unless g or !D &lt;= g unless !f */</span></div><div class="line"><a name="l16922"></a><span class="lineno">16922</span>&#160; tmp = f;</div><div class="line"><a name="l16923"></a><span class="lineno">16923</span>&#160; f = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(D);</div><div class="line"><a name="l16924"></a><span class="lineno">16924</span>&#160; <span class="keywordflow">if</span> (tmp &lt; g) {</div><div class="line"><a name="l16925"></a><span class="lineno">16925</span>&#160; D = g;</div><div class="line"><a name="l16926"></a><span class="lineno">16926</span>&#160; g = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l16927"></a><span class="lineno">16927</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16928"></a><span class="lineno">16928</span>&#160; D = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l16929"></a><span class="lineno">16929</span>&#160; }</div><div class="line"><a name="l16930"></a><span class="lineno">16930</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16931"></a><span class="lineno">16931</span>&#160; <span class="comment">/* f &lt;= D unless g or !D &lt;= !f unless g */</span></div><div class="line"><a name="l16932"></a><span class="lineno">16932</span>&#160; tmp = D;</div><div class="line"><a name="l16933"></a><span class="lineno">16933</span>&#160; D = g;</div><div class="line"><a name="l16934"></a><span class="lineno">16934</span>&#160; <span class="keywordflow">if</span> (tmp &lt; f) {</div><div class="line"><a name="l16935"></a><span class="lineno">16935</span>&#160; g = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(f);</div><div class="line"><a name="l16936"></a><span class="lineno">16936</span>&#160; f = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l16937"></a><span class="lineno">16937</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16938"></a><span class="lineno">16938</span>&#160; g = tmp;</div><div class="line"><a name="l16939"></a><span class="lineno">16939</span>&#160; }</div><div class="line"><a name="l16940"></a><span class="lineno">16940</span>&#160; }</div><div class="line"><a name="l16941"></a><span class="lineno">16941</span>&#160; }</div><div class="line"><a name="l16942"></a><span class="lineno">16942</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16943"></a><span class="lineno">16943</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(g)) {</div><div class="line"><a name="l16944"></a><span class="lineno">16944</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(f)) {</div><div class="line"><a name="l16945"></a><span class="lineno">16945</span>&#160; <span class="comment">/* !g &lt;= !f unless D or !g &lt;= D unless !f */</span></div><div class="line"><a name="l16946"></a><span class="lineno">16946</span>&#160; tmp = f;</div><div class="line"><a name="l16947"></a><span class="lineno">16947</span>&#160; f = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(g);</div><div class="line"><a name="l16948"></a><span class="lineno">16948</span>&#160; <span class="keywordflow">if</span> (D &lt; tmp) {</div><div class="line"><a name="l16949"></a><span class="lineno">16949</span>&#160; g = D;</div><div class="line"><a name="l16950"></a><span class="lineno">16950</span>&#160; D = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l16951"></a><span class="lineno">16951</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16952"></a><span class="lineno">16952</span>&#160; g = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l16953"></a><span class="lineno">16953</span>&#160; }</div><div class="line"><a name="l16954"></a><span class="lineno">16954</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16955"></a><span class="lineno">16955</span>&#160; <span class="comment">/* f &lt;= g unless D or !g &lt;= !f unless D */</span></div><div class="line"><a name="l16956"></a><span class="lineno">16956</span>&#160; <span class="keywordflow">if</span> (g &lt; f) {</div><div class="line"><a name="l16957"></a><span class="lineno">16957</span>&#160; tmp = g;</div><div class="line"><a name="l16958"></a><span class="lineno">16958</span>&#160; g = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(f);</div><div class="line"><a name="l16959"></a><span class="lineno">16959</span>&#160; f = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(tmp);</div><div class="line"><a name="l16960"></a><span class="lineno">16960</span>&#160; }</div><div class="line"><a name="l16961"></a><span class="lineno">16961</span>&#160; }</div><div class="line"><a name="l16962"></a><span class="lineno">16962</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16963"></a><span class="lineno">16963</span>&#160; <span class="comment">/* f &lt;= g unless D or f &lt;= D unless g */</span></div><div class="line"><a name="l16964"></a><span class="lineno">16964</span>&#160; <span class="keywordflow">if</span> (D &lt; g) {</div><div class="line"><a name="l16965"></a><span class="lineno">16965</span>&#160; tmp = D;</div><div class="line"><a name="l16966"></a><span class="lineno">16966</span>&#160; D = g;</div><div class="line"><a name="l16967"></a><span class="lineno">16967</span>&#160; g = tmp;</div><div class="line"><a name="l16968"></a><span class="lineno">16968</span>&#160; }</div><div class="line"><a name="l16969"></a><span class="lineno">16969</span>&#160; }</div><div class="line"><a name="l16970"></a><span class="lineno">16970</span>&#160; }</div><div class="line"><a name="l16971"></a><span class="lineno">16971</span>&#160;</div><div class="line"><a name="l16972"></a><span class="lineno">16972</span>&#160; <span class="comment">/* From now on, D is regular. */</span></div><div class="line"><a name="l16973"></a><span class="lineno">16973</span>&#160;</div><div class="line"><a name="l16974"></a><span class="lineno">16974</span>&#160; <span class="comment">/* Check cache. */</span></div><div class="line"><a name="l16975"></a><span class="lineno">16975</span>&#160; tmp = <a class="code" href="cuddInt_8c.html#ab2e7f6c2eabfb9af8ed7e52dcc00a678">cuddCacheLookup</a>(dd,<a class="code" href="cuddInt_8h.html#ae51310f4dbc382140288e235e21840f3">DD_BDD_LEQ_UNLESS_TAG</a>,f,g,D);</div><div class="line"><a name="l16976"></a><span class="lineno">16976</span>&#160; <span class="keywordflow">if</span> (tmp != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>) <span class="keywordflow">return</span>(tmp == One);</div><div class="line"><a name="l16977"></a><span class="lineno">16977</span>&#160;</div><div class="line"><a name="l16978"></a><span class="lineno">16978</span>&#160; <span class="comment">/* Find splitting variable. */</span></div><div class="line"><a name="l16979"></a><span class="lineno">16979</span>&#160; F = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f);</div><div class="line"><a name="l16980"></a><span class="lineno">16980</span>&#160; flevel = dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[F-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>];</div><div class="line"><a name="l16981"></a><span class="lineno">16981</span>&#160; G = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(g);</div><div class="line"><a name="l16982"></a><span class="lineno">16982</span>&#160; glevel = dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[G-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>];</div><div class="line"><a name="l16983"></a><span class="lineno">16983</span>&#160; top = <a class="code" href="cuddInt_8h.html#a2ca9cfb1642557eefc559198c4801092">ddMin</a>(flevel,glevel);</div><div class="line"><a name="l16984"></a><span class="lineno">16984</span>&#160; dlevel = dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[D-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>];</div><div class="line"><a name="l16985"></a><span class="lineno">16985</span>&#160; top = <a class="code" href="cuddInt_8h.html#a2ca9cfb1642557eefc559198c4801092">ddMin</a>(top,dlevel);</div><div class="line"><a name="l16986"></a><span class="lineno">16986</span>&#160;</div><div class="line"><a name="l16987"></a><span class="lineno">16987</span>&#160; <span class="comment">/* Compute cofactors. */</span></div><div class="line"><a name="l16988"></a><span class="lineno">16988</span>&#160; <span class="keywordflow">if</span> (top == flevel) {</div><div class="line"><a name="l16989"></a><span class="lineno">16989</span>&#160; Ft = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(F);</div><div class="line"><a name="l16990"></a><span class="lineno">16990</span>&#160; Fe = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(F);</div><div class="line"><a name="l16991"></a><span class="lineno">16991</span>&#160; <span class="keywordflow">if</span> (F != f) {</div><div class="line"><a name="l16992"></a><span class="lineno">16992</span>&#160; Ft = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(Ft);</div><div class="line"><a name="l16993"></a><span class="lineno">16993</span>&#160; Fe = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(Fe);</div><div class="line"><a name="l16994"></a><span class="lineno">16994</span>&#160; }</div><div class="line"><a name="l16995"></a><span class="lineno">16995</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16996"></a><span class="lineno">16996</span>&#160; Ft = Fe = f;</div><div class="line"><a name="l16997"></a><span class="lineno">16997</span>&#160; }</div><div class="line"><a name="l16998"></a><span class="lineno">16998</span>&#160; <span class="keywordflow">if</span> (top == glevel) {</div><div class="line"><a name="l16999"></a><span class="lineno">16999</span>&#160; Gt = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(G);</div><div class="line"><a name="l17000"></a><span class="lineno">17000</span>&#160; Ge = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(G);</div><div class="line"><a name="l17001"></a><span class="lineno">17001</span>&#160; <span class="keywordflow">if</span> (G != g) {</div><div class="line"><a name="l17002"></a><span class="lineno">17002</span>&#160; Gt = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(Gt);</div><div class="line"><a name="l17003"></a><span class="lineno">17003</span>&#160; Ge = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(Ge);</div><div class="line"><a name="l17004"></a><span class="lineno">17004</span>&#160; }</div><div class="line"><a name="l17005"></a><span class="lineno">17005</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l17006"></a><span class="lineno">17006</span>&#160; Gt = Ge = g;</div><div class="line"><a name="l17007"></a><span class="lineno">17007</span>&#160; }</div><div class="line"><a name="l17008"></a><span class="lineno">17008</span>&#160; <span class="keywordflow">if</span> (top == dlevel) {</div><div class="line"><a name="l17009"></a><span class="lineno">17009</span>&#160; Dt = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(D);</div><div class="line"><a name="l17010"></a><span class="lineno">17010</span>&#160; De = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(D);</div><div class="line"><a name="l17011"></a><span class="lineno">17011</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l17012"></a><span class="lineno">17012</span>&#160; Dt = De = D;</div><div class="line"><a name="l17013"></a><span class="lineno">17013</span>&#160; }</div><div class="line"><a name="l17014"></a><span class="lineno">17014</span>&#160;</div><div class="line"><a name="l17015"></a><span class="lineno">17015</span>&#160; <span class="comment">/* Solve recursively. */</span></div><div class="line"><a name="l17016"></a><span class="lineno">17016</span>&#160; res = <a class="code" href="cuddInt_8c.html#a5dcbf450b32f6937bc6dba252474638d">Cudd_bddLeqUnless</a>(dd,Ft,Gt,Dt);</div><div class="line"><a name="l17017"></a><span class="lineno">17017</span>&#160; <span class="keywordflow">if</span> (res != 0) {</div><div class="line"><a name="l17018"></a><span class="lineno">17018</span>&#160; res = <a class="code" href="cuddInt_8c.html#a5dcbf450b32f6937bc6dba252474638d">Cudd_bddLeqUnless</a>(dd,Fe,Ge,De);</div><div class="line"><a name="l17019"></a><span class="lineno">17019</span>&#160; }</div><div class="line"><a name="l17020"></a><span class="lineno">17020</span>&#160; <a class="code" href="cuddInt_8c.html#ac766e39390bf4d3c975d4a6bd34653dc">cuddCacheInsert</a>(dd,<a class="code" href="cuddInt_8h.html#ae51310f4dbc382140288e235e21840f3">DD_BDD_LEQ_UNLESS_TAG</a>,f,g,D,<a class="code" href="cudd_8h.html#ae870da95e89a703e939161fe08b899f9">Cudd_NotCond</a>(One,!res));</div><div class="line"><a name="l17021"></a><span class="lineno">17021</span>&#160;</div><div class="line"><a name="l17022"></a><span class="lineno">17022</span>&#160; <span class="keywordflow">return</span>(res);</div><div class="line"><a name="l17023"></a><span class="lineno">17023</span>&#160;</div><div class="line"><a name="l17024"></a><span class="lineno">17024</span>&#160; } <span class="comment">/* end of Cudd_bddLeqUnless */</span></div><div class="ttc" id="structDdNode_html"><div class="ttname"><a href="structDdNode.html">DdNode</a></div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00271">cudd.h:271</a></div></div>
2263
2263
  <div class="ttc" id="cudd_8h_html_a352ef8d39e760eaabae6d58d9a5ddbfc"><div class="ttname"><a href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a></div><div class="ttdeci">#define Cudd_Not(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00352">cudd.h:352</a></div></div>
2264
2264
  <div class="ttc" id="cuddInt_8c_html_ab2e7f6c2eabfb9af8ed7e52dcc00a678"><div class="ttname"><a href="cuddInt_8c.html#ab2e7f6c2eabfb9af8ed7e52dcc00a678">cuddCacheLookup</a></div><div class="ttdeci">DdNode * cuddCacheLookup(DdManager *table, ptruint op, DdNode *f, DdNode *g, DdNode *h)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l04413">cuddInt.c:4413</a></div></div>
2265
2265
  <div class="ttc" id="cudd_8h_html_afbbecf4f6f78f92518f4d0a477d870b6"><div class="ttname"><a href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a></div><div class="ttdeci">#define Cudd_Regular(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00382">cudd.h:382</a></div></div>
@@ -2269,10 +2269,10 @@ To link with mis, define DD_MIS. </li>
2269
2269
  <div class="ttc" id="cuddInt_8h_html_a09834c697b92ac296b1e50c863f88262"><div class="ttname"><a href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a></div><div class="ttdeci">#define cuddT(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00626">cuddInt.h:626</a></div></div>
2270
2270
  <div class="ttc" id="cuddInt_8h_html_ae51310f4dbc382140288e235e21840f3"><div class="ttname"><a href="cuddInt_8h.html#ae51310f4dbc382140288e235e21840f3">DD_BDD_LEQ_UNLESS_TAG</a></div><div class="ttdeci">#define DD_BDD_LEQ_UNLESS_TAG</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00189">cuddInt.h:189</a></div></div>
2271
2271
  <div class="ttc" id="cuddInt_8c_html_a89a46089e8572876a1521cdee6cb31a2"><div class="ttname"><a href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a></div><div class="ttdeci">int Cudd_bddLeq(DdManager *dd, DdNode *f, DdNode *g)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l03283">cuddInt.c:3283</a></div></div>
2272
- <div class="ttc" id="CFLGrammar_8txt_html_acc7b4cf736579c4d83be2316d5a9e5f2"><div class="ttname"><a href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00013">CFLGrammar.txt:13</a></div></div>
2273
2272
  <div class="ttc" id="cuddInt_8c_html_ac766e39390bf4d3c975d4a6bd34653dc"><div class="ttname"><a href="cuddInt_8c.html#ac766e39390bf4d3c975d4a6bd34653dc">cuddCacheInsert</a></div><div class="ttdeci">void cuddCacheInsert(DdManager *table, ptruint op, DdNode *f, DdNode *g, DdNode *h, DdNode *data)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l04283">cuddInt.c:4283</a></div></div>
2274
2273
  <div class="ttc" id="cuddInt_8c_html_a5dcbf450b32f6937bc6dba252474638d"><div class="ttname"><a href="cuddInt_8c.html#a5dcbf450b32f6937bc6dba252474638d">Cudd_bddLeqUnless</a></div><div class="ttdeci">int Cudd_bddLeqUnless(DdManager *dd, DdNode *f, DdNode *g, DdNode *D)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l16870">cuddInt.c:16870</a></div></div>
2275
2274
  <div class="ttc" id="structDdNode_html_abbd39b25b9abe4b4d53cd267a4103bda"><div class="ttname"><a href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">DdNode::index</a></div><div class="ttdeci">DdHalfWord index</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00273">cudd.h:273</a></div></div>
2275
+ <div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
2276
2276
  <div class="ttc" id="cJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
2277
2277
  <div class="ttc" id="cuddInt_8h_html_aaef03f10591d8e28bb5fecd2aa7c93ff"><div class="ttname"><a href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a></div><div class="ttdeci">#define cuddE(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00642">cuddInt.h:642</a></div></div>
2278
2278
  <div class="ttc" id="cudd_8h_html_ae870da95e89a703e939161fe08b899f9"><div class="ttname"><a href="cudd_8h.html#ae870da95e89a703e939161fe08b899f9">Cudd_NotCond</a></div><div class="ttdeci">#define Cudd_NotCond(node, c)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00368">cudd.h:368</a></div></div>
@@ -2513,7 +2513,7 @@ To link with mis, define DD_MIS. </li>
2513
2513
  <p>SeeAlso [] </p>
2514
2514
 
2515
2515
  <p class="definition">Definition at line <a class="el" href="cuddInt_8c_source.html#l02369">2369</a> of file <a class="el" href="cuddInt_8c_source.html">cuddInt.c</a>.</p>
2516
- <div class="fragment"><div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160;{</div><div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160; <a class="code" href="structDdNode.html">DdNode</a> *<a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>, *res, *<a class="code" href="cuddInt_8c.html#ad9d1aaa6ee837cb65ffcf74932161586">zero</a>, *ft, *fe;</div><div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160; <span class="keywordtype">unsigned</span> topf, level;</div><div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160; <a class="code" href="cudd_8h.html#af55488f14ee0664be0dee3f2004f5fd6">DD_CTFP</a> cacheOp;</div><div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160; <span class="keywordtype">int</span> retval;</div><div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160;</div><div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160; zero = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(<a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd));</div><div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35e63bfe07b09cd6f2508742cc37af38">Cudd_IsConstant</a>(f)) <span class="keywordflow">return</span>(f == zero);</div><div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160;</div><div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160; <span class="comment">/* From now on f is not constant. */</span></div><div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160; F = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f);</div><div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160; topf = (unsigned) dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[F-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>];</div><div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160; level = (<span class="keywordtype">unsigned</span>) dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[var-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>];</div><div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160;</div><div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160; <span class="comment">/* Check terminal case. If topf &gt; index of var, f does not depend on var.</span></div><div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160;<span class="comment"> ** Therefore, var is not dependent in f. */</span></div><div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160; <span class="keywordflow">if</span> (topf &gt; level) {</div><div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160; <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160; }</div><div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160;</div><div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160; cacheOp = (<a class="code" href="cudd_8h.html#af55488f14ee0664be0dee3f2004f5fd6">DD_CTFP</a>) <a class="code" href="cuddInt_8c.html#a4175e1b1c5fe59957da7be2966036a77">Cudd_bddVarIsDependent</a>;</div><div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160; res = <a class="code" href="cuddInt_8c.html#ab4f89447f0f0892337a1d6ff4c533933">cuddCacheLookup2</a>(dd,cacheOp,f,var);</div><div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160; <span class="keywordflow">if</span> (res != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>) {</div><div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>&#160; <span class="keywordflow">return</span>(res != zero);</div><div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160; }</div><div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160;</div><div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160; <span class="comment">/* Compute cofactors. */</span></div><div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160; ft = <a class="code" href="cudd_8h.html#ae870da95e89a703e939161fe08b899f9">Cudd_NotCond</a>(<a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(F), f != F);</div><div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160; fe = <a class="code" href="cudd_8h.html#ae870da95e89a703e939161fe08b899f9">Cudd_NotCond</a>(<a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(F), f != F);</div><div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160;</div><div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>&#160; <span class="keywordflow">if</span> (topf == level) {</div><div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>&#160; retval = <a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>(dd,ft,<a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(fe));</div><div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160; retval = <a class="code" href="cuddInt_8c.html#a4175e1b1c5fe59957da7be2966036a77">Cudd_bddVarIsDependent</a>(dd,ft,var) &amp;&amp;</div><div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>&#160; <a class="code" href="cuddInt_8c.html#a4175e1b1c5fe59957da7be2966036a77">Cudd_bddVarIsDependent</a>(dd,fe,var);</div><div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>&#160; }</div><div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160;</div><div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160; <a class="code" href="cuddInt_8c.html#acf6d1175a8da1a1613910bac913fee58">cuddCacheInsert2</a>(dd,cacheOp,f,var,<a class="code" href="cudd_8h.html#ae870da95e89a703e939161fe08b899f9">Cudd_NotCond</a>(zero,retval));</div><div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160;</div><div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>&#160; <span class="keywordflow">return</span>(retval);</div><div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160;</div><div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160;} <span class="comment">/* Cudd_bddVarIsDependent */</span></div><div class="ttc" id="structDdNode_html"><div class="ttname"><a href="structDdNode.html">DdNode</a></div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00271">cudd.h:271</a></div></div>
2516
+ <div class="fragment"><div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160;{</div><div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160; <a class="code" href="structDdNode.html">DdNode</a> *<a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>, *res, *<a class="code" href="cuddInt_8c.html#ad9d1aaa6ee837cb65ffcf74932161586">zero</a>, *ft, *fe;</div><div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160; <span class="keywordtype">unsigned</span> topf, level;</div><div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160; <a class="code" href="cudd_8h.html#af55488f14ee0664be0dee3f2004f5fd6">DD_CTFP</a> cacheOp;</div><div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160; <span class="keywordtype">int</span> retval;</div><div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160;</div><div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160; zero = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(<a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd));</div><div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35e63bfe07b09cd6f2508742cc37af38">Cudd_IsConstant</a>(f)) <span class="keywordflow">return</span>(f == zero);</div><div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160;</div><div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160; <span class="comment">/* From now on f is not constant. */</span></div><div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160; F = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f);</div><div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160; topf = (unsigned) dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[F-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>];</div><div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160; level = (<span class="keywordtype">unsigned</span>) dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[var-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>];</div><div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160;</div><div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160; <span class="comment">/* Check terminal case. If topf &gt; index of var, f does not depend on var.</span></div><div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160;<span class="comment"> ** Therefore, var is not dependent in f. */</span></div><div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160; <span class="keywordflow">if</span> (topf &gt; level) {</div><div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160; <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160; }</div><div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160;</div><div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160; cacheOp = (<a class="code" href="cudd_8h.html#af55488f14ee0664be0dee3f2004f5fd6">DD_CTFP</a>) <a class="code" href="cuddInt_8c.html#a4175e1b1c5fe59957da7be2966036a77">Cudd_bddVarIsDependent</a>;</div><div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160; res = <a class="code" href="cuddInt_8c.html#ab4f89447f0f0892337a1d6ff4c533933">cuddCacheLookup2</a>(dd,cacheOp,f,var);</div><div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160; <span class="keywordflow">if</span> (res != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>) {</div><div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>&#160; <span class="keywordflow">return</span>(res != zero);</div><div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160; }</div><div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160;</div><div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160; <span class="comment">/* Compute cofactors. */</span></div><div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160; ft = <a class="code" href="cudd_8h.html#ae870da95e89a703e939161fe08b899f9">Cudd_NotCond</a>(<a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(F), f != F);</div><div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160; fe = <a class="code" href="cudd_8h.html#ae870da95e89a703e939161fe08b899f9">Cudd_NotCond</a>(<a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(F), f != F);</div><div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160;</div><div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>&#160; <span class="keywordflow">if</span> (topf == level) {</div><div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>&#160; retval = <a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>(dd,ft,<a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(fe));</div><div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160; retval = <a class="code" href="cuddInt_8c.html#a4175e1b1c5fe59957da7be2966036a77">Cudd_bddVarIsDependent</a>(dd,ft,var) &amp;&amp;</div><div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>&#160; <a class="code" href="cuddInt_8c.html#a4175e1b1c5fe59957da7be2966036a77">Cudd_bddVarIsDependent</a>(dd,fe,var);</div><div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>&#160; }</div><div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160;</div><div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160; <a class="code" href="cuddInt_8c.html#acf6d1175a8da1a1613910bac913fee58">cuddCacheInsert2</a>(dd,cacheOp,f,var,<a class="code" href="cudd_8h.html#ae870da95e89a703e939161fe08b899f9">Cudd_NotCond</a>(zero,retval));</div><div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160;</div><div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>&#160; <span class="keywordflow">return</span>(retval);</div><div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160;</div><div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160;} <span class="comment">/* Cudd_bddVarIsDependent */</span></div><div class="ttc" id="structDdNode_html"><div class="ttname"><a href="structDdNode.html">DdNode</a></div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00271">cudd.h:271</a></div></div>
2517
2517
  <div class="ttc" id="cudd_8h_html_a352ef8d39e760eaabae6d58d9a5ddbfc"><div class="ttname"><a href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a></div><div class="ttdeci">#define Cudd_Not(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00352">cudd.h:352</a></div></div>
2518
2518
  <div class="ttc" id="cudd_8h_html_a35e63bfe07b09cd6f2508742cc37af38"><div class="ttname"><a href="cudd_8h.html#a35e63bfe07b09cd6f2508742cc37af38">Cudd_IsConstant</a></div><div class="ttdeci">#define Cudd_IsConstant(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00337">cudd.h:337</a></div></div>
2519
2519
  <div class="ttc" id="cudd_8h_html_afbbecf4f6f78f92518f4d0a477d870b6"><div class="ttname"><a href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a></div><div class="ttdeci">#define Cudd_Regular(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00382">cudd.h:382</a></div></div>
@@ -2522,8 +2522,8 @@ To link with mis, define DD_MIS. </li>
2522
2522
  <div class="ttc" id="cuddInt_8c_html_ab4f89447f0f0892337a1d6ff4c533933"><div class="ttname"><a href="cuddInt_8c.html#ab4f89447f0f0892337a1d6ff4c533933">cuddCacheLookup2</a></div><div class="ttdeci">DdNode * cuddCacheLookup2(DdManager *table, DD_CTFP op, DdNode *f, DdNode *g)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l04537">cuddInt.c:4537</a></div></div>
2523
2523
  <div class="ttc" id="cuddInt_8h_html_a09834c697b92ac296b1e50c863f88262"><div class="ttname"><a href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a></div><div class="ttdeci">#define cuddT(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00626">cuddInt.h:626</a></div></div>
2524
2524
  <div class="ttc" id="cuddInt_8c_html_a89a46089e8572876a1521cdee6cb31a2"><div class="ttname"><a href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a></div><div class="ttdeci">int Cudd_bddLeq(DdManager *dd, DdNode *f, DdNode *g)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l03283">cuddInt.c:3283</a></div></div>
2525
- <div class="ttc" id="CFLGrammar_8txt_html_acc7b4cf736579c4d83be2316d5a9e5f2"><div class="ttname"><a href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00013">CFLGrammar.txt:13</a></div></div>
2526
2525
  <div class="ttc" id="structDdNode_html_abbd39b25b9abe4b4d53cd267a4103bda"><div class="ttname"><a href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">DdNode::index</a></div><div class="ttdeci">DdHalfWord index</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00273">cudd.h:273</a></div></div>
2526
+ <div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
2527
2527
  <div class="ttc" id="cJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
2528
2528
  <div class="ttc" id="cuddInt_8h_html_aaef03f10591d8e28bb5fecd2aa7c93ff"><div class="ttname"><a href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a></div><div class="ttdeci">#define cuddE(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00642">cuddInt.h:642</a></div></div>
2529
2529
  <div class="ttc" id="cudd_8h_html_ae870da95e89a703e939161fe08b899f9"><div class="ttname"><a href="cudd_8h.html#ae870da95e89a703e939161fe08b899f9">Cudd_NotCond</a></div><div class="ttdeci">#define Cudd_NotCond(node, c)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00368">cudd.h:368</a></div></div>
@@ -2817,7 +2817,7 @@ Wrong number of total dead found </li>
2817
2817
  <div class="ttc" id="cudd_8h_html_a0eacff9d14824f9601da7152ecfdaeb1"><div class="ttname"><a href="cudd_8h.html#a0eacff9d14824f9601da7152ecfdaeb1">CUDD_VALUE_TYPE</a></div><div class="ttdeci">#define CUDD_VALUE_TYPE</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00087">cudd.h:87</a></div></div>
2818
2818
  <div class="ttc" id="structDdManager_html_a239bd99ee654742adc79b8299c2bc92e"><div class="ttname"><a href="structDdManager.html#a239bd99ee654742adc79b8299c2bc92e">DdManager::one</a></div><div class="ttdeci">DdNode * one</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00343">cuddInt.h:343</a></div></div>
2819
2819
  <div class="ttc" id="cJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
2820
- <div class="ttc" id="CFLGrammar_8txt_html_a114c2e5cd44b3ea4720e9191ed819f3b"><div class="ttname"><a href="CFLGrammar_8txt.html#a114c2e5cd44b3ea4720e9191ed819f3b">epsilon</a></div><div class="ttdeci">Fbar epsilon</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00010">CFLGrammar.txt:10</a></div></div>
2820
+ <div class="ttc" id="CFLGrammar_8txt_html_a114c2e5cd44b3ea4720e9191ed819f3b"><div class="ttname"><a href="CFLGrammar_8txt.html#a114c2e5cd44b3ea4720e9191ed819f3b">epsilon</a></div><div class="ttdeci">Fbar epsilon</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00011">CFLGrammar.txt:11</a></div></div>
2821
2821
  <div class="ttc" id="cuddInt_8c_html_ad9d1aaa6ee837cb65ffcf74932161586"><div class="ttname"><a href="cuddInt_8c.html#ad9d1aaa6ee837cb65ffcf74932161586">zero</a></div><div class="ttdeci">static DdNode * zero</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l16562">cuddInt.c:16562</a></div></div>
2822
2822
  <div class="ttc" id="structDdManager_html_af901aff58575a7fea75f7de35b4684b6"><div class="ttname"><a href="structDdManager.html#af901aff58575a7fea75f7de35b4684b6">DdManager::background</a></div><div class="ttdeci">DdNode * background</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00347">cuddInt.h:347</a></div></div>
2823
2823
  </div><!-- fragment -->
@@ -2956,7 +2956,7 @@ ref count error at node </li>
2956
2956
  <p>SeeAlso [Cudd_Increasing] </p>
2957
2957
 
2958
2958
  <p class="definition">Definition at line <a class="el" href="cuddInt_8c_source.html#l16691">16691</a> of file <a class="el" href="cuddInt_8c_source.html">cuddInt.c</a>.</p>
2959
- <div class="fragment"><div class="line"><a name="l16695"></a><span class="lineno">16695</span>&#160; {</div><div class="line"><a name="l16696"></a><span class="lineno">16696</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> topf, level;</div><div class="line"><a name="l16697"></a><span class="lineno">16697</span>&#160; <a class="code" href="structDdNode.html">DdNode</a> *<a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>, *fv, *fvn, *res;</div><div class="line"><a name="l16698"></a><span class="lineno">16698</span>&#160; <a class="code" href="cudd_8h.html#af55488f14ee0664be0dee3f2004f5fd6">DD_CTFP</a> cacheOp;</div><div class="line"><a name="l16699"></a><span class="lineno">16699</span>&#160;</div><div class="line"><a name="l16700"></a><span class="lineno">16700</span>&#160; <a class="code" href="cuddInt_8h.html#a94289b59164b0be08fdb041e6f847fd4">statLine</a>(dd);</div><div class="line"><a name="l16701"></a><span class="lineno">16701</span>&#160;<span class="preprocessor">#ifdef DD_DEBUG</span></div><div class="line"><a name="l16702"></a><span class="lineno">16702</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(0 &lt;= i &amp;&amp; i &lt; dd-&gt;size);</div><div class="line"><a name="l16703"></a><span class="lineno">16703</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l16704"></a><span class="lineno">16704</span>&#160;</div><div class="line"><a name="l16705"></a><span class="lineno">16705</span>&#160; F = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f);</div><div class="line"><a name="l16706"></a><span class="lineno">16706</span>&#160; topf = <a class="code" href="cuddInt_8h.html#aa7299d1217a57571ef88e9ac90530978">cuddI</a>(dd,F-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>);</div><div class="line"><a name="l16707"></a><span class="lineno">16707</span>&#160;</div><div class="line"><a name="l16708"></a><span class="lineno">16708</span>&#160; <span class="comment">/* Check terminal case. If topf &gt; i, f does not depend on var.</span></div><div class="line"><a name="l16709"></a><span class="lineno">16709</span>&#160;<span class="comment"> ** Therefore, f is unate in i.</span></div><div class="line"><a name="l16710"></a><span class="lineno">16710</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l16711"></a><span class="lineno">16711</span>&#160; level = (unsigned) dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[i];</div><div class="line"><a name="l16712"></a><span class="lineno">16712</span>&#160; <a class="code" href="cJSON_8cpp.html#a90e6101bee79e6d18c535254695e91e3">if</a> (topf &gt; level) {</div><div class="line"><a name="l16713"></a><span class="lineno">16713</span>&#160; <span class="keywordflow">return</span>(<a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd));</div><div class="line"><a name="l16714"></a><span class="lineno">16714</span>&#160; }</div><div class="line"><a name="l16715"></a><span class="lineno">16715</span>&#160;</div><div class="line"><a name="l16716"></a><span class="lineno">16716</span>&#160; <span class="comment">/* From now on, f is not constant. */</span></div><div class="line"><a name="l16717"></a><span class="lineno">16717</span>&#160;</div><div class="line"><a name="l16718"></a><span class="lineno">16718</span>&#160; <span class="comment">/* Check cache. */</span></div><div class="line"><a name="l16719"></a><span class="lineno">16719</span>&#160; cacheOp = (<a class="code" href="cudd_8h.html#af55488f14ee0664be0dee3f2004f5fd6">DD_CTFP</a>) <a class="code" href="cuddInt_8c.html#a66a70b011fca8b95fbc3953e8b1be1fe">Cudd_Decreasing</a>;</div><div class="line"><a name="l16720"></a><span class="lineno">16720</span>&#160; res = <a class="code" href="cuddInt_8c.html#ab4f89447f0f0892337a1d6ff4c533933">cuddCacheLookup2</a>(dd,cacheOp,f,dd-&gt;<a class="code" href="structDdManager.html#a70f75f877a9e8f1b7a1c219cd4675ce1">vars</a>[i]);</div><div class="line"><a name="l16721"></a><span class="lineno">16721</span>&#160; <span class="keywordflow">if</span> (res != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>) {</div><div class="line"><a name="l16722"></a><span class="lineno">16722</span>&#160; <span class="keywordflow">return</span>(res);</div><div class="line"><a name="l16723"></a><span class="lineno">16723</span>&#160; }</div><div class="line"><a name="l16724"></a><span class="lineno">16724</span>&#160;</div><div class="line"><a name="l16725"></a><span class="lineno">16725</span>&#160; <span class="comment">/* Compute cofactors. */</span></div><div class="line"><a name="l16726"></a><span class="lineno">16726</span>&#160; fv = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(F); fvn = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(F);</div><div class="line"><a name="l16727"></a><span class="lineno">16727</span>&#160; <span class="keywordflow">if</span> (F != f) {</div><div class="line"><a name="l16728"></a><span class="lineno">16728</span>&#160; fv = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(fv);</div><div class="line"><a name="l16729"></a><span class="lineno">16729</span>&#160; fvn = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(fvn);</div><div class="line"><a name="l16730"></a><span class="lineno">16730</span>&#160; }</div><div class="line"><a name="l16731"></a><span class="lineno">16731</span>&#160;</div><div class="line"><a name="l16732"></a><span class="lineno">16732</span>&#160; <span class="keywordflow">if</span> (topf == (<span class="keywordtype">unsigned</span>) level) {</div><div class="line"><a name="l16733"></a><span class="lineno">16733</span>&#160; <span class="comment">/* Special case: if fv is regular, fv(1,...,1) = 1;</span></div><div class="line"><a name="l16734"></a><span class="lineno">16734</span>&#160;<span class="comment"> ** If in addition fvn is complemented, fvn(1,...,1) = 0.</span></div><div class="line"><a name="l16735"></a><span class="lineno">16735</span>&#160;<span class="comment"> ** But then f(1,1,...,1) &gt; f(0,1,...,1). Hence f is not</span></div><div class="line"><a name="l16736"></a><span class="lineno">16736</span>&#160;<span class="comment"> ** monotonic decreasing in i.</span></div><div class="line"><a name="l16737"></a><span class="lineno">16737</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l16738"></a><span class="lineno">16738</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(fv) &amp;&amp; <a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(fvn)) {</div><div class="line"><a name="l16739"></a><span class="lineno">16739</span>&#160; <span class="keywordflow">return</span>(<a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(<a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd)));</div><div class="line"><a name="l16740"></a><span class="lineno">16740</span>&#160; }</div><div class="line"><a name="l16741"></a><span class="lineno">16741</span>&#160; res = <a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>(dd,fv,fvn) ? <a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd) : <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(<a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd));</div><div class="line"><a name="l16742"></a><span class="lineno">16742</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16743"></a><span class="lineno">16743</span>&#160; res = <a class="code" href="cuddInt_8c.html#a66a70b011fca8b95fbc3953e8b1be1fe">Cudd_Decreasing</a>(dd,fv,i);</div><div class="line"><a name="l16744"></a><span class="lineno">16744</span>&#160; <span class="keywordflow">if</span> (res == <a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd)) {</div><div class="line"><a name="l16745"></a><span class="lineno">16745</span>&#160; res = <a class="code" href="cuddInt_8c.html#a66a70b011fca8b95fbc3953e8b1be1fe">Cudd_Decreasing</a>(dd,fvn,i);</div><div class="line"><a name="l16746"></a><span class="lineno">16746</span>&#160; }</div><div class="line"><a name="l16747"></a><span class="lineno">16747</span>&#160; }</div><div class="line"><a name="l16748"></a><span class="lineno">16748</span>&#160;</div><div class="line"><a name="l16749"></a><span class="lineno">16749</span>&#160; <a class="code" href="cuddInt_8c.html#acf6d1175a8da1a1613910bac913fee58">cuddCacheInsert2</a>(dd,cacheOp,f,dd-&gt;<a class="code" href="structDdManager.html#a70f75f877a9e8f1b7a1c219cd4675ce1">vars</a>[i],res);</div><div class="line"><a name="l16750"></a><span class="lineno">16750</span>&#160; <span class="keywordflow">return</span>(res);</div><div class="line"><a name="l16751"></a><span class="lineno">16751</span>&#160;</div><div class="line"><a name="l16752"></a><span class="lineno">16752</span>&#160; } <span class="comment">/* end of Cudd_Decreasing */</span></div><div class="ttc" id="cJSON_8cpp_html_a90e6101bee79e6d18c535254695e91e3"><div class="ttname"><a href="cJSON_8cpp.html#a90e6101bee79e6d18c535254695e91e3">if</a></div><div class="ttdeci">if(!(object-&gt;type &amp;cJSON_String)||(object-&gt;type &amp;cJSON_IsReference))</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00405">cJSON.cpp:405</a></div></div>
2959
+ <div class="fragment"><div class="line"><a name="l16695"></a><span class="lineno">16695</span>&#160; {</div><div class="line"><a name="l16696"></a><span class="lineno">16696</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> topf, level;</div><div class="line"><a name="l16697"></a><span class="lineno">16697</span>&#160; <a class="code" href="structDdNode.html">DdNode</a> *<a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>, *fv, *fvn, *res;</div><div class="line"><a name="l16698"></a><span class="lineno">16698</span>&#160; <a class="code" href="cudd_8h.html#af55488f14ee0664be0dee3f2004f5fd6">DD_CTFP</a> cacheOp;</div><div class="line"><a name="l16699"></a><span class="lineno">16699</span>&#160;</div><div class="line"><a name="l16700"></a><span class="lineno">16700</span>&#160; <a class="code" href="cuddInt_8h.html#a94289b59164b0be08fdb041e6f847fd4">statLine</a>(dd);</div><div class="line"><a name="l16701"></a><span class="lineno">16701</span>&#160;<span class="preprocessor">#ifdef DD_DEBUG</span></div><div class="line"><a name="l16702"></a><span class="lineno">16702</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(0 &lt;= i &amp;&amp; i &lt; dd-&gt;size);</div><div class="line"><a name="l16703"></a><span class="lineno">16703</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l16704"></a><span class="lineno">16704</span>&#160;</div><div class="line"><a name="l16705"></a><span class="lineno">16705</span>&#160; F = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f);</div><div class="line"><a name="l16706"></a><span class="lineno">16706</span>&#160; topf = <a class="code" href="cuddInt_8h.html#aa7299d1217a57571ef88e9ac90530978">cuddI</a>(dd,F-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>);</div><div class="line"><a name="l16707"></a><span class="lineno">16707</span>&#160;</div><div class="line"><a name="l16708"></a><span class="lineno">16708</span>&#160; <span class="comment">/* Check terminal case. If topf &gt; i, f does not depend on var.</span></div><div class="line"><a name="l16709"></a><span class="lineno">16709</span>&#160;<span class="comment"> ** Therefore, f is unate in i.</span></div><div class="line"><a name="l16710"></a><span class="lineno">16710</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l16711"></a><span class="lineno">16711</span>&#160; level = (unsigned) dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[i];</div><div class="line"><a name="l16712"></a><span class="lineno">16712</span>&#160; <a class="code" href="cJSON_8cpp.html#a90e6101bee79e6d18c535254695e91e3">if</a> (topf &gt; level) {</div><div class="line"><a name="l16713"></a><span class="lineno">16713</span>&#160; <span class="keywordflow">return</span>(<a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd));</div><div class="line"><a name="l16714"></a><span class="lineno">16714</span>&#160; }</div><div class="line"><a name="l16715"></a><span class="lineno">16715</span>&#160;</div><div class="line"><a name="l16716"></a><span class="lineno">16716</span>&#160; <span class="comment">/* From now on, f is not constant. */</span></div><div class="line"><a name="l16717"></a><span class="lineno">16717</span>&#160;</div><div class="line"><a name="l16718"></a><span class="lineno">16718</span>&#160; <span class="comment">/* Check cache. */</span></div><div class="line"><a name="l16719"></a><span class="lineno">16719</span>&#160; cacheOp = (<a class="code" href="cudd_8h.html#af55488f14ee0664be0dee3f2004f5fd6">DD_CTFP</a>) <a class="code" href="cuddInt_8c.html#a66a70b011fca8b95fbc3953e8b1be1fe">Cudd_Decreasing</a>;</div><div class="line"><a name="l16720"></a><span class="lineno">16720</span>&#160; res = <a class="code" href="cuddInt_8c.html#ab4f89447f0f0892337a1d6ff4c533933">cuddCacheLookup2</a>(dd,cacheOp,f,dd-&gt;<a class="code" href="structDdManager.html#a70f75f877a9e8f1b7a1c219cd4675ce1">vars</a>[i]);</div><div class="line"><a name="l16721"></a><span class="lineno">16721</span>&#160; <span class="keywordflow">if</span> (res != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>) {</div><div class="line"><a name="l16722"></a><span class="lineno">16722</span>&#160; <span class="keywordflow">return</span>(res);</div><div class="line"><a name="l16723"></a><span class="lineno">16723</span>&#160; }</div><div class="line"><a name="l16724"></a><span class="lineno">16724</span>&#160;</div><div class="line"><a name="l16725"></a><span class="lineno">16725</span>&#160; <span class="comment">/* Compute cofactors. */</span></div><div class="line"><a name="l16726"></a><span class="lineno">16726</span>&#160; fv = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(F); fvn = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(F);</div><div class="line"><a name="l16727"></a><span class="lineno">16727</span>&#160; <span class="keywordflow">if</span> (F != f) {</div><div class="line"><a name="l16728"></a><span class="lineno">16728</span>&#160; fv = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(fv);</div><div class="line"><a name="l16729"></a><span class="lineno">16729</span>&#160; fvn = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(fvn);</div><div class="line"><a name="l16730"></a><span class="lineno">16730</span>&#160; }</div><div class="line"><a name="l16731"></a><span class="lineno">16731</span>&#160;</div><div class="line"><a name="l16732"></a><span class="lineno">16732</span>&#160; <span class="keywordflow">if</span> (topf == (<span class="keywordtype">unsigned</span>) level) {</div><div class="line"><a name="l16733"></a><span class="lineno">16733</span>&#160; <span class="comment">/* Special case: if fv is regular, fv(1,...,1) = 1;</span></div><div class="line"><a name="l16734"></a><span class="lineno">16734</span>&#160;<span class="comment"> ** If in addition fvn is complemented, fvn(1,...,1) = 0.</span></div><div class="line"><a name="l16735"></a><span class="lineno">16735</span>&#160;<span class="comment"> ** But then f(1,1,...,1) &gt; f(0,1,...,1). Hence f is not</span></div><div class="line"><a name="l16736"></a><span class="lineno">16736</span>&#160;<span class="comment"> ** monotonic decreasing in i.</span></div><div class="line"><a name="l16737"></a><span class="lineno">16737</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l16738"></a><span class="lineno">16738</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(fv) &amp;&amp; <a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(fvn)) {</div><div class="line"><a name="l16739"></a><span class="lineno">16739</span>&#160; <span class="keywordflow">return</span>(<a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(<a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd)));</div><div class="line"><a name="l16740"></a><span class="lineno">16740</span>&#160; }</div><div class="line"><a name="l16741"></a><span class="lineno">16741</span>&#160; res = <a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>(dd,fv,fvn) ? <a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd) : <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(<a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd));</div><div class="line"><a name="l16742"></a><span class="lineno">16742</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16743"></a><span class="lineno">16743</span>&#160; res = <a class="code" href="cuddInt_8c.html#a66a70b011fca8b95fbc3953e8b1be1fe">Cudd_Decreasing</a>(dd,fv,i);</div><div class="line"><a name="l16744"></a><span class="lineno">16744</span>&#160; <span class="keywordflow">if</span> (res == <a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd)) {</div><div class="line"><a name="l16745"></a><span class="lineno">16745</span>&#160; res = <a class="code" href="cuddInt_8c.html#a66a70b011fca8b95fbc3953e8b1be1fe">Cudd_Decreasing</a>(dd,fvn,i);</div><div class="line"><a name="l16746"></a><span class="lineno">16746</span>&#160; }</div><div class="line"><a name="l16747"></a><span class="lineno">16747</span>&#160; }</div><div class="line"><a name="l16748"></a><span class="lineno">16748</span>&#160;</div><div class="line"><a name="l16749"></a><span class="lineno">16749</span>&#160; <a class="code" href="cuddInt_8c.html#acf6d1175a8da1a1613910bac913fee58">cuddCacheInsert2</a>(dd,cacheOp,f,dd-&gt;<a class="code" href="structDdManager.html#a70f75f877a9e8f1b7a1c219cd4675ce1">vars</a>[i],res);</div><div class="line"><a name="l16750"></a><span class="lineno">16750</span>&#160; <span class="keywordflow">return</span>(res);</div><div class="line"><a name="l16751"></a><span class="lineno">16751</span>&#160;</div><div class="line"><a name="l16752"></a><span class="lineno">16752</span>&#160; } <span class="comment">/* end of Cudd_Decreasing */</span></div><div class="ttc" id="cJSON_8cpp_html_a90e6101bee79e6d18c535254695e91e3"><div class="ttname"><a href="cJSON_8cpp.html#a90e6101bee79e6d18c535254695e91e3">if</a></div><div class="ttdeci">if(!(object-&gt;type &amp;cJSON_String)||(object-&gt;type &amp;cJSON_IsReference))</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00405">cJSON.cpp:405</a></div></div>
2960
2960
  <div class="ttc" id="structDdNode_html"><div class="ttname"><a href="structDdNode.html">DdNode</a></div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00271">cudd.h:271</a></div></div>
2961
2961
  <div class="ttc" id="cudd_8h_html_a352ef8d39e760eaabae6d58d9a5ddbfc"><div class="ttname"><a href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a></div><div class="ttdeci">#define Cudd_Not(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00352">cudd.h:352</a></div></div>
2962
2962
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
@@ -2969,9 +2969,9 @@ ref count error at node </li>
2969
2969
  <div class="ttc" id="cuddInt_8h_html_a09834c697b92ac296b1e50c863f88262"><div class="ttname"><a href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a></div><div class="ttdeci">#define cuddT(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00626">cuddInt.h:626</a></div></div>
2970
2970
  <div class="ttc" id="cuddInt_8h_html_aa7299d1217a57571ef88e9ac90530978"><div class="ttname"><a href="cuddInt_8h.html#aa7299d1217a57571ef88e9ac90530978">cuddI</a></div><div class="ttdeci">#define cuddI(dd, index)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00676">cuddInt.h:676</a></div></div>
2971
2971
  <div class="ttc" id="cuddInt_8c_html_a89a46089e8572876a1521cdee6cb31a2"><div class="ttname"><a href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a></div><div class="ttdeci">int Cudd_bddLeq(DdManager *dd, DdNode *f, DdNode *g)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l03283">cuddInt.c:3283</a></div></div>
2972
- <div class="ttc" id="CFLGrammar_8txt_html_acc7b4cf736579c4d83be2316d5a9e5f2"><div class="ttname"><a href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00013">CFLGrammar.txt:13</a></div></div>
2973
2972
  <div class="ttc" id="structDdNode_html_abbd39b25b9abe4b4d53cd267a4103bda"><div class="ttname"><a href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">DdNode::index</a></div><div class="ttdeci">DdHalfWord index</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00273">cudd.h:273</a></div></div>
2974
2973
  <div class="ttc" id="structDdManager_html_a70f75f877a9e8f1b7a1c219cd4675ce1"><div class="ttname"><a href="structDdManager.html#a70f75f877a9e8f1b7a1c219cd4675ce1">DdManager::vars</a></div><div class="ttdeci">DdNode ** vars</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00387">cuddInt.h:387</a></div></div>
2974
+ <div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
2975
2975
  <div class="ttc" id="cJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
2976
2976
  <div class="ttc" id="cuddInt_8h_html_aaef03f10591d8e28bb5fecd2aa7c93ff"><div class="ttname"><a href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a></div><div class="ttdeci">#define cuddE(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00642">cuddInt.h:642</a></div></div>
2977
2977
  <div class="ttc" id="cuddInt_8h_html_a0fc86b7b0c157b7fa3738661d65a22d7"><div class="ttname"><a href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a></div><div class="ttdeci">#define DD_ONE(dd)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00881">cuddInt.h:881</a></div></div>
@@ -3121,7 +3121,7 @@ ref count error at node </li>
3121
3121
  <p>SeeAlso [Cudd_bddLeqUnless] </p>
3122
3122
 
3123
3123
  <p class="definition">Definition at line <a class="el" href="cuddInt_8c_source.html#l16770">16770</a> of file <a class="el" href="cuddInt_8c_source.html">cuddInt.c</a>.</p>
3124
- <div class="fragment"><div class="line"><a name="l16775"></a><span class="lineno">16775</span>&#160; {</div><div class="line"><a name="l16776"></a><span class="lineno">16776</span>&#160; <a class="code" href="structDdNode.html">DdNode</a> *tmp, *One, *Gr, *Dr;</div><div class="line"><a name="l16777"></a><span class="lineno">16777</span>&#160; <a class="code" href="structDdNode.html">DdNode</a> *Fv, *Fvn, *Gv, *Gvn, *Dv, *Dvn;</div><div class="line"><a name="l16778"></a><span class="lineno">16778</span>&#160; <span class="keywordtype">int</span> res;</div><div class="line"><a name="l16779"></a><span class="lineno">16779</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> flevel, glevel, dlevel, top;</div><div class="line"><a name="l16780"></a><span class="lineno">16780</span>&#160;</div><div class="line"><a name="l16781"></a><span class="lineno">16781</span>&#160; One = <a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd);</div><div class="line"><a name="l16782"></a><span class="lineno">16782</span>&#160;</div><div class="line"><a name="l16783"></a><span class="lineno">16783</span>&#160; <a class="code" href="cuddInt_8h.html#a94289b59164b0be08fdb041e6f847fd4">statLine</a>(dd);</div><div class="line"><a name="l16784"></a><span class="lineno">16784</span>&#160; <span class="comment">/* Check terminal cases. */</span></div><div class="line"><a name="l16785"></a><span class="lineno">16785</span>&#160; <span class="keywordflow">if</span> (D == One || F == G) <span class="keywordflow">return</span>(1);</div><div class="line"><a name="l16786"></a><span class="lineno">16786</span>&#160; <span class="keywordflow">if</span> (D == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(One) || D == <a class="code" href="cuddInt_8h.html#ab78870b54aa3b1ff2eb38b311e5d8a1a">DD_ZERO</a>(dd) || F == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(G)) <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l16787"></a><span class="lineno">16787</span>&#160;</div><div class="line"><a name="l16788"></a><span class="lineno">16788</span>&#160; <span class="comment">/* From now on, D is non-constant. */</span></div><div class="line"><a name="l16789"></a><span class="lineno">16789</span>&#160;</div><div class="line"><a name="l16790"></a><span class="lineno">16790</span>&#160; <span class="comment">/* Normalize call to increase cache efficiency. */</span></div><div class="line"><a name="l16791"></a><span class="lineno">16791</span>&#160; <span class="keywordflow">if</span> (F &gt; G) {</div><div class="line"><a name="l16792"></a><span class="lineno">16792</span>&#160; tmp = <a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>;</div><div class="line"><a name="l16793"></a><span class="lineno">16793</span>&#160; F = G;</div><div class="line"><a name="l16794"></a><span class="lineno">16794</span>&#160; G = tmp;</div><div class="line"><a name="l16795"></a><span class="lineno">16795</span>&#160; }</div><div class="line"><a name="l16796"></a><span class="lineno">16796</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(F)) {</div><div class="line"><a name="l16797"></a><span class="lineno">16797</span>&#160; F = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(F);</div><div class="line"><a name="l16798"></a><span class="lineno">16798</span>&#160; G = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(G);</div><div class="line"><a name="l16799"></a><span class="lineno">16799</span>&#160; }</div><div class="line"><a name="l16800"></a><span class="lineno">16800</span>&#160;</div><div class="line"><a name="l16801"></a><span class="lineno">16801</span>&#160; <span class="comment">/* From now on, F is regular. */</span></div><div class="line"><a name="l16802"></a><span class="lineno">16802</span>&#160;</div><div class="line"><a name="l16803"></a><span class="lineno">16803</span>&#160; <span class="comment">/* Check cache. */</span></div><div class="line"><a name="l16804"></a><span class="lineno">16804</span>&#160; tmp = <a class="code" href="cuddInt_8c.html#ab2e7f6c2eabfb9af8ed7e52dcc00a678">cuddCacheLookup</a>(dd,<a class="code" href="cuddInt_8h.html#a544fba69760437cee493d4111f2e956f">DD_EQUIV_DC_TAG</a>,F,G,D);</div><div class="line"><a name="l16805"></a><span class="lineno">16805</span>&#160; <span class="keywordflow">if</span> (tmp != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>) <span class="keywordflow">return</span>(tmp == One);</div><div class="line"><a name="l16806"></a><span class="lineno">16806</span>&#160;</div><div class="line"><a name="l16807"></a><span class="lineno">16807</span>&#160; <span class="comment">/* Find splitting variable. */</span></div><div class="line"><a name="l16808"></a><span class="lineno">16808</span>&#160; flevel = <a class="code" href="cuddInt_8h.html#aa7299d1217a57571ef88e9ac90530978">cuddI</a>(dd,F-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>);</div><div class="line"><a name="l16809"></a><span class="lineno">16809</span>&#160; Gr = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(G);</div><div class="line"><a name="l16810"></a><span class="lineno">16810</span>&#160; glevel = <a class="code" href="cuddInt_8h.html#aa7299d1217a57571ef88e9ac90530978">cuddI</a>(dd,Gr-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>);</div><div class="line"><a name="l16811"></a><span class="lineno">16811</span>&#160; top = <a class="code" href="cuddInt_8h.html#a2ca9cfb1642557eefc559198c4801092">ddMin</a>(flevel,glevel);</div><div class="line"><a name="l16812"></a><span class="lineno">16812</span>&#160; Dr = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(D);</div><div class="line"><a name="l16813"></a><span class="lineno">16813</span>&#160; dlevel = dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[Dr-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>];</div><div class="line"><a name="l16814"></a><span class="lineno">16814</span>&#160; top = <a class="code" href="cuddInt_8h.html#a2ca9cfb1642557eefc559198c4801092">ddMin</a>(top,dlevel);</div><div class="line"><a name="l16815"></a><span class="lineno">16815</span>&#160;</div><div class="line"><a name="l16816"></a><span class="lineno">16816</span>&#160; <span class="comment">/* Compute cofactors. */</span></div><div class="line"><a name="l16817"></a><span class="lineno">16817</span>&#160; <span class="keywordflow">if</span> (top == flevel) {</div><div class="line"><a name="l16818"></a><span class="lineno">16818</span>&#160; Fv = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(F);</div><div class="line"><a name="l16819"></a><span class="lineno">16819</span>&#160; Fvn = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(F);</div><div class="line"><a name="l16820"></a><span class="lineno">16820</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16821"></a><span class="lineno">16821</span>&#160; Fv = Fvn = <a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>;</div><div class="line"><a name="l16822"></a><span class="lineno">16822</span>&#160; }</div><div class="line"><a name="l16823"></a><span class="lineno">16823</span>&#160; <span class="keywordflow">if</span> (top == glevel) {</div><div class="line"><a name="l16824"></a><span class="lineno">16824</span>&#160; Gv = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(Gr);</div><div class="line"><a name="l16825"></a><span class="lineno">16825</span>&#160; Gvn = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(Gr);</div><div class="line"><a name="l16826"></a><span class="lineno">16826</span>&#160; <span class="keywordflow">if</span> (G != Gr) {</div><div class="line"><a name="l16827"></a><span class="lineno">16827</span>&#160; Gv = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(Gv);</div><div class="line"><a name="l16828"></a><span class="lineno">16828</span>&#160; Gvn = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(Gvn);</div><div class="line"><a name="l16829"></a><span class="lineno">16829</span>&#160; }</div><div class="line"><a name="l16830"></a><span class="lineno">16830</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16831"></a><span class="lineno">16831</span>&#160; Gv = Gvn = G;</div><div class="line"><a name="l16832"></a><span class="lineno">16832</span>&#160; }</div><div class="line"><a name="l16833"></a><span class="lineno">16833</span>&#160; <span class="keywordflow">if</span> (top == dlevel) {</div><div class="line"><a name="l16834"></a><span class="lineno">16834</span>&#160; Dv = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(Dr);</div><div class="line"><a name="l16835"></a><span class="lineno">16835</span>&#160; Dvn = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(Dr);</div><div class="line"><a name="l16836"></a><span class="lineno">16836</span>&#160; <span class="keywordflow">if</span> (D != Dr) {</div><div class="line"><a name="l16837"></a><span class="lineno">16837</span>&#160; Dv = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(Dv);</div><div class="line"><a name="l16838"></a><span class="lineno">16838</span>&#160; Dvn = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(Dvn);</div><div class="line"><a name="l16839"></a><span class="lineno">16839</span>&#160; }</div><div class="line"><a name="l16840"></a><span class="lineno">16840</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16841"></a><span class="lineno">16841</span>&#160; Dv = Dvn = D;</div><div class="line"><a name="l16842"></a><span class="lineno">16842</span>&#160; }</div><div class="line"><a name="l16843"></a><span class="lineno">16843</span>&#160;</div><div class="line"><a name="l16844"></a><span class="lineno">16844</span>&#160; <span class="comment">/* Solve recursively. */</span></div><div class="line"><a name="l16845"></a><span class="lineno">16845</span>&#160; res = <a class="code" href="cuddInt_8c.html#a3e078600dd9087c623e1bdfea00d599d">Cudd_EquivDC</a>(dd,Fv,Gv,Dv);</div><div class="line"><a name="l16846"></a><span class="lineno">16846</span>&#160; <span class="keywordflow">if</span> (res != 0) {</div><div class="line"><a name="l16847"></a><span class="lineno">16847</span>&#160; res = <a class="code" href="cuddInt_8c.html#a3e078600dd9087c623e1bdfea00d599d">Cudd_EquivDC</a>(dd,Fvn,Gvn,Dvn);</div><div class="line"><a name="l16848"></a><span class="lineno">16848</span>&#160; }</div><div class="line"><a name="l16849"></a><span class="lineno">16849</span>&#160; <a class="code" href="cuddInt_8c.html#ac766e39390bf4d3c975d4a6bd34653dc">cuddCacheInsert</a>(dd,<a class="code" href="cuddInt_8h.html#a544fba69760437cee493d4111f2e956f">DD_EQUIV_DC_TAG</a>,F,G,D,(res) ? One : <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(One));</div><div class="line"><a name="l16850"></a><span class="lineno">16850</span>&#160;</div><div class="line"><a name="l16851"></a><span class="lineno">16851</span>&#160; <span class="keywordflow">return</span>(res);</div><div class="line"><a name="l16852"></a><span class="lineno">16852</span>&#160;</div><div class="line"><a name="l16853"></a><span class="lineno">16853</span>&#160; } <span class="comment">/* end of Cudd_EquivDC */</span></div><div class="ttc" id="cuddInt_8c_html_a3e078600dd9087c623e1bdfea00d599d"><div class="ttname"><a href="cuddInt_8c.html#a3e078600dd9087c623e1bdfea00d599d">Cudd_EquivDC</a></div><div class="ttdeci">int Cudd_EquivDC(DdManager *dd, DdNode *F, DdNode *G, DdNode *D)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l16770">cuddInt.c:16770</a></div></div>
3124
+ <div class="fragment"><div class="line"><a name="l16775"></a><span class="lineno">16775</span>&#160; {</div><div class="line"><a name="l16776"></a><span class="lineno">16776</span>&#160; <a class="code" href="structDdNode.html">DdNode</a> *tmp, *One, *Gr, *Dr;</div><div class="line"><a name="l16777"></a><span class="lineno">16777</span>&#160; <a class="code" href="structDdNode.html">DdNode</a> *Fv, *Fvn, *Gv, *Gvn, *Dv, *Dvn;</div><div class="line"><a name="l16778"></a><span class="lineno">16778</span>&#160; <span class="keywordtype">int</span> res;</div><div class="line"><a name="l16779"></a><span class="lineno">16779</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> flevel, glevel, dlevel, top;</div><div class="line"><a name="l16780"></a><span class="lineno">16780</span>&#160;</div><div class="line"><a name="l16781"></a><span class="lineno">16781</span>&#160; One = <a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd);</div><div class="line"><a name="l16782"></a><span class="lineno">16782</span>&#160;</div><div class="line"><a name="l16783"></a><span class="lineno">16783</span>&#160; <a class="code" href="cuddInt_8h.html#a94289b59164b0be08fdb041e6f847fd4">statLine</a>(dd);</div><div class="line"><a name="l16784"></a><span class="lineno">16784</span>&#160; <span class="comment">/* Check terminal cases. */</span></div><div class="line"><a name="l16785"></a><span class="lineno">16785</span>&#160; <span class="keywordflow">if</span> (D == One || F == G) <span class="keywordflow">return</span>(1);</div><div class="line"><a name="l16786"></a><span class="lineno">16786</span>&#160; <span class="keywordflow">if</span> (D == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(One) || D == <a class="code" href="cuddInt_8h.html#ab78870b54aa3b1ff2eb38b311e5d8a1a">DD_ZERO</a>(dd) || F == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(G)) <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l16787"></a><span class="lineno">16787</span>&#160;</div><div class="line"><a name="l16788"></a><span class="lineno">16788</span>&#160; <span class="comment">/* From now on, D is non-constant. */</span></div><div class="line"><a name="l16789"></a><span class="lineno">16789</span>&#160;</div><div class="line"><a name="l16790"></a><span class="lineno">16790</span>&#160; <span class="comment">/* Normalize call to increase cache efficiency. */</span></div><div class="line"><a name="l16791"></a><span class="lineno">16791</span>&#160; <span class="keywordflow">if</span> (F &gt; G) {</div><div class="line"><a name="l16792"></a><span class="lineno">16792</span>&#160; tmp = <a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>;</div><div class="line"><a name="l16793"></a><span class="lineno">16793</span>&#160; F = G;</div><div class="line"><a name="l16794"></a><span class="lineno">16794</span>&#160; G = tmp;</div><div class="line"><a name="l16795"></a><span class="lineno">16795</span>&#160; }</div><div class="line"><a name="l16796"></a><span class="lineno">16796</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(F)) {</div><div class="line"><a name="l16797"></a><span class="lineno">16797</span>&#160; F = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(F);</div><div class="line"><a name="l16798"></a><span class="lineno">16798</span>&#160; G = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(G);</div><div class="line"><a name="l16799"></a><span class="lineno">16799</span>&#160; }</div><div class="line"><a name="l16800"></a><span class="lineno">16800</span>&#160;</div><div class="line"><a name="l16801"></a><span class="lineno">16801</span>&#160; <span class="comment">/* From now on, F is regular. */</span></div><div class="line"><a name="l16802"></a><span class="lineno">16802</span>&#160;</div><div class="line"><a name="l16803"></a><span class="lineno">16803</span>&#160; <span class="comment">/* Check cache. */</span></div><div class="line"><a name="l16804"></a><span class="lineno">16804</span>&#160; tmp = <a class="code" href="cuddInt_8c.html#ab2e7f6c2eabfb9af8ed7e52dcc00a678">cuddCacheLookup</a>(dd,<a class="code" href="cuddInt_8h.html#a544fba69760437cee493d4111f2e956f">DD_EQUIV_DC_TAG</a>,F,G,D);</div><div class="line"><a name="l16805"></a><span class="lineno">16805</span>&#160; <span class="keywordflow">if</span> (tmp != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>) <span class="keywordflow">return</span>(tmp == One);</div><div class="line"><a name="l16806"></a><span class="lineno">16806</span>&#160;</div><div class="line"><a name="l16807"></a><span class="lineno">16807</span>&#160; <span class="comment">/* Find splitting variable. */</span></div><div class="line"><a name="l16808"></a><span class="lineno">16808</span>&#160; flevel = <a class="code" href="cuddInt_8h.html#aa7299d1217a57571ef88e9ac90530978">cuddI</a>(dd,F-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>);</div><div class="line"><a name="l16809"></a><span class="lineno">16809</span>&#160; Gr = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(G);</div><div class="line"><a name="l16810"></a><span class="lineno">16810</span>&#160; glevel = <a class="code" href="cuddInt_8h.html#aa7299d1217a57571ef88e9ac90530978">cuddI</a>(dd,Gr-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>);</div><div class="line"><a name="l16811"></a><span class="lineno">16811</span>&#160; top = <a class="code" href="cuddInt_8h.html#a2ca9cfb1642557eefc559198c4801092">ddMin</a>(flevel,glevel);</div><div class="line"><a name="l16812"></a><span class="lineno">16812</span>&#160; Dr = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(D);</div><div class="line"><a name="l16813"></a><span class="lineno">16813</span>&#160; dlevel = dd-&gt;<a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[Dr-&gt;<a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>];</div><div class="line"><a name="l16814"></a><span class="lineno">16814</span>&#160; top = <a class="code" href="cuddInt_8h.html#a2ca9cfb1642557eefc559198c4801092">ddMin</a>(top,dlevel);</div><div class="line"><a name="l16815"></a><span class="lineno">16815</span>&#160;</div><div class="line"><a name="l16816"></a><span class="lineno">16816</span>&#160; <span class="comment">/* Compute cofactors. */</span></div><div class="line"><a name="l16817"></a><span class="lineno">16817</span>&#160; <span class="keywordflow">if</span> (top == flevel) {</div><div class="line"><a name="l16818"></a><span class="lineno">16818</span>&#160; Fv = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(F);</div><div class="line"><a name="l16819"></a><span class="lineno">16819</span>&#160; Fvn = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(F);</div><div class="line"><a name="l16820"></a><span class="lineno">16820</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16821"></a><span class="lineno">16821</span>&#160; Fv = Fvn = <a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>;</div><div class="line"><a name="l16822"></a><span class="lineno">16822</span>&#160; }</div><div class="line"><a name="l16823"></a><span class="lineno">16823</span>&#160; <span class="keywordflow">if</span> (top == glevel) {</div><div class="line"><a name="l16824"></a><span class="lineno">16824</span>&#160; Gv = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(Gr);</div><div class="line"><a name="l16825"></a><span class="lineno">16825</span>&#160; Gvn = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(Gr);</div><div class="line"><a name="l16826"></a><span class="lineno">16826</span>&#160; <span class="keywordflow">if</span> (G != Gr) {</div><div class="line"><a name="l16827"></a><span class="lineno">16827</span>&#160; Gv = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(Gv);</div><div class="line"><a name="l16828"></a><span class="lineno">16828</span>&#160; Gvn = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(Gvn);</div><div class="line"><a name="l16829"></a><span class="lineno">16829</span>&#160; }</div><div class="line"><a name="l16830"></a><span class="lineno">16830</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16831"></a><span class="lineno">16831</span>&#160; Gv = Gvn = G;</div><div class="line"><a name="l16832"></a><span class="lineno">16832</span>&#160; }</div><div class="line"><a name="l16833"></a><span class="lineno">16833</span>&#160; <span class="keywordflow">if</span> (top == dlevel) {</div><div class="line"><a name="l16834"></a><span class="lineno">16834</span>&#160; Dv = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(Dr);</div><div class="line"><a name="l16835"></a><span class="lineno">16835</span>&#160; Dvn = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(Dr);</div><div class="line"><a name="l16836"></a><span class="lineno">16836</span>&#160; <span class="keywordflow">if</span> (D != Dr) {</div><div class="line"><a name="l16837"></a><span class="lineno">16837</span>&#160; Dv = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(Dv);</div><div class="line"><a name="l16838"></a><span class="lineno">16838</span>&#160; Dvn = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(Dvn);</div><div class="line"><a name="l16839"></a><span class="lineno">16839</span>&#160; }</div><div class="line"><a name="l16840"></a><span class="lineno">16840</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16841"></a><span class="lineno">16841</span>&#160; Dv = Dvn = D;</div><div class="line"><a name="l16842"></a><span class="lineno">16842</span>&#160; }</div><div class="line"><a name="l16843"></a><span class="lineno">16843</span>&#160;</div><div class="line"><a name="l16844"></a><span class="lineno">16844</span>&#160; <span class="comment">/* Solve recursively. */</span></div><div class="line"><a name="l16845"></a><span class="lineno">16845</span>&#160; res = <a class="code" href="cuddInt_8c.html#a3e078600dd9087c623e1bdfea00d599d">Cudd_EquivDC</a>(dd,Fv,Gv,Dv);</div><div class="line"><a name="l16846"></a><span class="lineno">16846</span>&#160; <span class="keywordflow">if</span> (res != 0) {</div><div class="line"><a name="l16847"></a><span class="lineno">16847</span>&#160; res = <a class="code" href="cuddInt_8c.html#a3e078600dd9087c623e1bdfea00d599d">Cudd_EquivDC</a>(dd,Fvn,Gvn,Dvn);</div><div class="line"><a name="l16848"></a><span class="lineno">16848</span>&#160; }</div><div class="line"><a name="l16849"></a><span class="lineno">16849</span>&#160; <a class="code" href="cuddInt_8c.html#ac766e39390bf4d3c975d4a6bd34653dc">cuddCacheInsert</a>(dd,<a class="code" href="cuddInt_8h.html#a544fba69760437cee493d4111f2e956f">DD_EQUIV_DC_TAG</a>,F,G,D,(res) ? One : <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(One));</div><div class="line"><a name="l16850"></a><span class="lineno">16850</span>&#160;</div><div class="line"><a name="l16851"></a><span class="lineno">16851</span>&#160; <span class="keywordflow">return</span>(res);</div><div class="line"><a name="l16852"></a><span class="lineno">16852</span>&#160;</div><div class="line"><a name="l16853"></a><span class="lineno">16853</span>&#160; } <span class="comment">/* end of Cudd_EquivDC */</span></div><div class="ttc" id="cuddInt_8c_html_a3e078600dd9087c623e1bdfea00d599d"><div class="ttname"><a href="cuddInt_8c.html#a3e078600dd9087c623e1bdfea00d599d">Cudd_EquivDC</a></div><div class="ttdeci">int Cudd_EquivDC(DdManager *dd, DdNode *F, DdNode *G, DdNode *D)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l16770">cuddInt.c:16770</a></div></div>
3125
3125
  <div class="ttc" id="structDdNode_html"><div class="ttname"><a href="structDdNode.html">DdNode</a></div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00271">cudd.h:271</a></div></div>
3126
3126
  <div class="ttc" id="cudd_8h_html_a352ef8d39e760eaabae6d58d9a5ddbfc"><div class="ttname"><a href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a></div><div class="ttdeci">#define Cudd_Not(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00352">cudd.h:352</a></div></div>
3127
3127
  <div class="ttc" id="cuddInt_8c_html_ab2e7f6c2eabfb9af8ed7e52dcc00a678"><div class="ttname"><a href="cuddInt_8c.html#ab2e7f6c2eabfb9af8ed7e52dcc00a678">cuddCacheLookup</a></div><div class="ttdeci">DdNode * cuddCacheLookup(DdManager *table, ptruint op, DdNode *f, DdNode *g, DdNode *h)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l04413">cuddInt.c:4413</a></div></div>
@@ -3131,10 +3131,10 @@ ref count error at node </li>
3131
3131
  <div class="ttc" id="cuddInt_8h_html_a2ca9cfb1642557eefc559198c4801092"><div class="ttname"><a href="cuddInt_8h.html#a2ca9cfb1642557eefc559198c4801092">ddMin</a></div><div class="ttdeci">#define ddMin(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00788">cuddInt.h:788</a></div></div>
3132
3132
  <div class="ttc" id="cuddInt_8h_html_a09834c697b92ac296b1e50c863f88262"><div class="ttname"><a href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a></div><div class="ttdeci">#define cuddT(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00626">cuddInt.h:626</a></div></div>
3133
3133
  <div class="ttc" id="cuddInt_8h_html_aa7299d1217a57571ef88e9ac90530978"><div class="ttname"><a href="cuddInt_8h.html#aa7299d1217a57571ef88e9ac90530978">cuddI</a></div><div class="ttdeci">#define cuddI(dd, index)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00676">cuddInt.h:676</a></div></div>
3134
- <div class="ttc" id="CFLGrammar_8txt_html_acc7b4cf736579c4d83be2316d5a9e5f2"><div class="ttname"><a href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00013">CFLGrammar.txt:13</a></div></div>
3135
3134
  <div class="ttc" id="cuddInt_8h_html_a544fba69760437cee493d4111f2e956f"><div class="ttname"><a href="cuddInt_8h.html#a544fba69760437cee493d4111f2e956f">DD_EQUIV_DC_TAG</a></div><div class="ttdeci">#define DD_EQUIV_DC_TAG</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00183">cuddInt.h:183</a></div></div>
3136
3135
  <div class="ttc" id="cuddInt_8c_html_ac766e39390bf4d3c975d4a6bd34653dc"><div class="ttname"><a href="cuddInt_8c.html#ac766e39390bf4d3c975d4a6bd34653dc">cuddCacheInsert</a></div><div class="ttdeci">void cuddCacheInsert(DdManager *table, ptruint op, DdNode *f, DdNode *g, DdNode *h, DdNode *data)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l04283">cuddInt.c:4283</a></div></div>
3137
3136
  <div class="ttc" id="structDdNode_html_abbd39b25b9abe4b4d53cd267a4103bda"><div class="ttname"><a href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">DdNode::index</a></div><div class="ttdeci">DdHalfWord index</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00273">cudd.h:273</a></div></div>
3137
+ <div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
3138
3138
  <div class="ttc" id="cJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
3139
3139
  <div class="ttc" id="cuddInt_8h_html_aaef03f10591d8e28bb5fecd2aa7c93ff"><div class="ttname"><a href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a></div><div class="ttdeci">#define cuddE(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00642">cuddInt.h:642</a></div></div>
3140
3140
  <div class="ttc" id="cuddInt_8h_html_a0fc86b7b0c157b7fa3738661d65a22d7"><div class="ttname"><a href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a></div><div class="ttdeci">#define DD_ONE(dd)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00881">cuddInt.h:881</a></div></div>
@@ -3688,7 +3688,7 @@ ref count error at node </li>
3688
3688
  <p>SeeAlso [Cudd_ShortestPath] </p>
3689
3689
 
3690
3690
  <p class="definition">Definition at line <a class="el" href="cuddInt_8c_source.html#l16616">16616</a> of file <a class="el" href="cuddInt_8c_source.html">cuddInt.c</a>.</p>
3691
- <div class="fragment"><div class="line"><a name="l16620"></a><span class="lineno">16620</span>&#160; {</div><div class="line"><a name="l16621"></a><span class="lineno">16621</span>&#160; <span class="keyword">register</span> <a class="code" href="structDdNode.html">DdNode</a> *<a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>;</div><div class="line"><a name="l16622"></a><span class="lineno">16622</span>&#160; <a class="code" href="structst__table.html">st_table</a> *visited;</div><div class="line"><a name="l16623"></a><span class="lineno">16623</span>&#160; <a class="code" href="structDdNode.html">DdNode</a> *sol;</div><div class="line"><a name="l16624"></a><span class="lineno">16624</span>&#160; <a class="code" href="structcuddPathPair.html">cuddPathPair</a> *rootPair;</div><div class="line"><a name="l16625"></a><span class="lineno">16625</span>&#160; <span class="keywordtype">int</span> complement, cost;</div><div class="line"><a name="l16626"></a><span class="lineno">16626</span>&#160;</div><div class="line"><a name="l16627"></a><span class="lineno">16627</span>&#160; <a class="code" href="cuddInt_8c.html#a49e3c7508be54a84ae83273ed240e31c">one</a> = <a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(manager);</div><div class="line"><a name="l16628"></a><span class="lineno">16628</span>&#160; <a class="code" href="cuddInt_8c.html#ad9d1aaa6ee837cb65ffcf74932161586">zero</a> = <a class="code" href="cuddInt_8h.html#ab78870b54aa3b1ff2eb38b311e5d8a1a">DD_ZERO</a>(manager);</div><div class="line"><a name="l16629"></a><span class="lineno">16629</span>&#160;</div><div class="line"><a name="l16630"></a><span class="lineno">16630</span>&#160; <span class="keywordflow">if</span> (f == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(<a class="code" href="cuddInt_8c.html#a49e3c7508be54a84ae83273ed240e31c">one</a>) || f == <a class="code" href="cuddInt_8c.html#ad9d1aaa6ee837cb65ffcf74932161586">zero</a>) {</div><div class="line"><a name="l16631"></a><span class="lineno">16631</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#a9f237f17f4e79d5b89149e09152edabe">length</a> != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>) {</div><div class="line"><a name="l16632"></a><span class="lineno">16632</span>&#160; *<a class="code" href="cJSON_8h.html#a9f237f17f4e79d5b89149e09152edabe">length</a> = <a class="code" href="cuddInt_8c.html#a6994699d7a2a82b8f838e9d8d408095a">DD_BIGGY</a>;</div><div class="line"><a name="l16633"></a><span class="lineno">16633</span>&#160; }</div><div class="line"><a name="l16634"></a><span class="lineno">16634</span>&#160; <span class="keywordflow">return</span>(<a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(<a class="code" href="cuddInt_8c.html#a49e3c7508be54a84ae83273ed240e31c">one</a>));</div><div class="line"><a name="l16635"></a><span class="lineno">16635</span>&#160; }</div><div class="line"><a name="l16636"></a><span class="lineno">16636</span>&#160; <span class="comment">/* From this point on, a path exists. */</span></div><div class="line"><a name="l16637"></a><span class="lineno">16637</span>&#160;</div><div class="line"><a name="l16638"></a><span class="lineno">16638</span>&#160; <span class="keywordflow">do</span> {</div><div class="line"><a name="l16639"></a><span class="lineno">16639</span>&#160; manager-&gt;<a class="code" href="structDdManager.html#ab8c81b5f0658b90c2c3bd339123a1f7a">reordered</a> = 0;</div><div class="line"><a name="l16640"></a><span class="lineno">16640</span>&#160;</div><div class="line"><a name="l16641"></a><span class="lineno">16641</span>&#160; <span class="comment">/* Initialize visited table. */</span></div><div class="line"><a name="l16642"></a><span class="lineno">16642</span>&#160; visited = <a class="code" href="st_8h.html#a410a87c90bd4719f24fecc904b9426ed">st_init_table</a>(<a class="code" href="st_8h.html#a6073f524b9f0ec98b2b3d3e59e4e3fbf">st_ptrcmp</a>, <a class="code" href="st_8h.html#a144fc385b211526daab6da9ad5a854cc">st_ptrhash</a>);</div><div class="line"><a name="l16643"></a><span class="lineno">16643</span>&#160;</div><div class="line"><a name="l16644"></a><span class="lineno">16644</span>&#160; <span class="comment">/* Now get the length of the shortest path(s) from f to 1. */</span></div><div class="line"><a name="l16645"></a><span class="lineno">16645</span>&#160; (void) <a class="code" href="cuddInt_8c.html#a6506f1ae80b0f85d1e01da0db4a4f31a">getLargest</a>(f, visited);</div><div class="line"><a name="l16646"></a><span class="lineno">16646</span>&#160;</div><div class="line"><a name="l16647"></a><span class="lineno">16647</span>&#160; complement = <a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(f);</div><div class="line"><a name="l16648"></a><span class="lineno">16648</span>&#160;</div><div class="line"><a name="l16649"></a><span class="lineno">16649</span>&#160; F = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f);</div><div class="line"><a name="l16650"></a><span class="lineno">16650</span>&#160;</div><div class="line"><a name="l16651"></a><span class="lineno">16651</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="st_8h.html#a0ed63fd0cb21b0a1fe502e84aa5563ef">st_lookup</a>(visited, F, &amp;rootPair)) <span class="keywordflow">return</span>(<a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>);</div><div class="line"><a name="l16652"></a><span class="lineno">16652</span>&#160;</div><div class="line"><a name="l16653"></a><span class="lineno">16653</span>&#160; <span class="keywordflow">if</span> (complement) {</div><div class="line"><a name="l16654"></a><span class="lineno">16654</span>&#160; cost = rootPair-&gt;<a class="code" href="structcuddPathPair.html#a968dc3d34b592da2876517a687873281">neg</a>;</div><div class="line"><a name="l16655"></a><span class="lineno">16655</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16656"></a><span class="lineno">16656</span>&#160; cost = rootPair-&gt;<a class="code" href="structcuddPathPair.html#adf2ec174fe645c74c4d045a9109364f4">pos</a>;</div><div class="line"><a name="l16657"></a><span class="lineno">16657</span>&#160; }</div><div class="line"><a name="l16658"></a><span class="lineno">16658</span>&#160;</div><div class="line"><a name="l16659"></a><span class="lineno">16659</span>&#160; <span class="comment">/* Recover an actual shortest path. */</span></div><div class="line"><a name="l16660"></a><span class="lineno">16660</span>&#160; sol = <a class="code" href="cuddInt_8c.html#ac4564d7da48b5f6457d7adca5e619b4c">getCube</a>(manager,visited,f,cost);</div><div class="line"><a name="l16661"></a><span class="lineno">16661</span>&#160;</div><div class="line"><a name="l16662"></a><span class="lineno">16662</span>&#160; <a class="code" href="st_8h.html#a5341675ff925b7a670ab4705735ceb38">st_foreach</a>(visited, <a class="code" href="cuddInt_8c.html#a498f7e0ebf19b278dd9e7d9651b82eef">freePathPair</a>, <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>);</div><div class="line"><a name="l16663"></a><span class="lineno">16663</span>&#160; <a class="code" href="st_8h.html#acb004847ef312373d65bfb0d1a21c5b3">st_free_table</a>(visited);</div><div class="line"><a name="l16664"></a><span class="lineno">16664</span>&#160;</div><div class="line"><a name="l16665"></a><span class="lineno">16665</span>&#160; } <span class="keywordflow">while</span> (manager-&gt;<a class="code" href="structDdManager.html#ab8c81b5f0658b90c2c3bd339123a1f7a">reordered</a> == 1);</div><div class="line"><a name="l16666"></a><span class="lineno">16666</span>&#160;</div><div class="line"><a name="l16667"></a><span class="lineno">16667</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#a9f237f17f4e79d5b89149e09152edabe">length</a> != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>) {</div><div class="line"><a name="l16668"></a><span class="lineno">16668</span>&#160; *<a class="code" href="cJSON_8h.html#a9f237f17f4e79d5b89149e09152edabe">length</a> = cost;</div><div class="line"><a name="l16669"></a><span class="lineno">16669</span>&#160; }</div><div class="line"><a name="l16670"></a><span class="lineno">16670</span>&#160; <span class="keywordflow">return</span>(sol);</div><div class="line"><a name="l16671"></a><span class="lineno">16671</span>&#160;</div><div class="line"><a name="l16672"></a><span class="lineno">16672</span>&#160; } <span class="comment">/* end of Cudd_LargestCube */</span></div><div class="ttc" id="st_8h_html_a0ed63fd0cb21b0a1fe502e84aa5563ef"><div class="ttname"><a href="st_8h.html#a0ed63fd0cb21b0a1fe502e84aa5563ef">st_lookup</a></div><div class="ttdeci">int st_lookup(st_table *, void *, void *)</div><div class="ttdef"><b>Definition:</b> <a href="st_8c_source.html#l00271">st.c:271</a></div></div>
3691
+ <div class="fragment"><div class="line"><a name="l16620"></a><span class="lineno">16620</span>&#160; {</div><div class="line"><a name="l16621"></a><span class="lineno">16621</span>&#160; <span class="keyword">register</span> <a class="code" href="structDdNode.html">DdNode</a> *<a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>;</div><div class="line"><a name="l16622"></a><span class="lineno">16622</span>&#160; <a class="code" href="structst__table.html">st_table</a> *visited;</div><div class="line"><a name="l16623"></a><span class="lineno">16623</span>&#160; <a class="code" href="structDdNode.html">DdNode</a> *sol;</div><div class="line"><a name="l16624"></a><span class="lineno">16624</span>&#160; <a class="code" href="structcuddPathPair.html">cuddPathPair</a> *rootPair;</div><div class="line"><a name="l16625"></a><span class="lineno">16625</span>&#160; <span class="keywordtype">int</span> complement, cost;</div><div class="line"><a name="l16626"></a><span class="lineno">16626</span>&#160;</div><div class="line"><a name="l16627"></a><span class="lineno">16627</span>&#160; <a class="code" href="cuddInt_8c.html#a49e3c7508be54a84ae83273ed240e31c">one</a> = <a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(manager);</div><div class="line"><a name="l16628"></a><span class="lineno">16628</span>&#160; <a class="code" href="cuddInt_8c.html#ad9d1aaa6ee837cb65ffcf74932161586">zero</a> = <a class="code" href="cuddInt_8h.html#ab78870b54aa3b1ff2eb38b311e5d8a1a">DD_ZERO</a>(manager);</div><div class="line"><a name="l16629"></a><span class="lineno">16629</span>&#160;</div><div class="line"><a name="l16630"></a><span class="lineno">16630</span>&#160; <span class="keywordflow">if</span> (f == <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(<a class="code" href="cuddInt_8c.html#a49e3c7508be54a84ae83273ed240e31c">one</a>) || f == <a class="code" href="cuddInt_8c.html#ad9d1aaa6ee837cb65ffcf74932161586">zero</a>) {</div><div class="line"><a name="l16631"></a><span class="lineno">16631</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#a9f237f17f4e79d5b89149e09152edabe">length</a> != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>) {</div><div class="line"><a name="l16632"></a><span class="lineno">16632</span>&#160; *<a class="code" href="cJSON_8h.html#a9f237f17f4e79d5b89149e09152edabe">length</a> = <a class="code" href="cuddInt_8c.html#a6994699d7a2a82b8f838e9d8d408095a">DD_BIGGY</a>;</div><div class="line"><a name="l16633"></a><span class="lineno">16633</span>&#160; }</div><div class="line"><a name="l16634"></a><span class="lineno">16634</span>&#160; <span class="keywordflow">return</span>(<a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(<a class="code" href="cuddInt_8c.html#a49e3c7508be54a84ae83273ed240e31c">one</a>));</div><div class="line"><a name="l16635"></a><span class="lineno">16635</span>&#160; }</div><div class="line"><a name="l16636"></a><span class="lineno">16636</span>&#160; <span class="comment">/* From this point on, a path exists. */</span></div><div class="line"><a name="l16637"></a><span class="lineno">16637</span>&#160;</div><div class="line"><a name="l16638"></a><span class="lineno">16638</span>&#160; <span class="keywordflow">do</span> {</div><div class="line"><a name="l16639"></a><span class="lineno">16639</span>&#160; manager-&gt;<a class="code" href="structDdManager.html#ab8c81b5f0658b90c2c3bd339123a1f7a">reordered</a> = 0;</div><div class="line"><a name="l16640"></a><span class="lineno">16640</span>&#160;</div><div class="line"><a name="l16641"></a><span class="lineno">16641</span>&#160; <span class="comment">/* Initialize visited table. */</span></div><div class="line"><a name="l16642"></a><span class="lineno">16642</span>&#160; visited = <a class="code" href="st_8h.html#a410a87c90bd4719f24fecc904b9426ed">st_init_table</a>(<a class="code" href="st_8h.html#a6073f524b9f0ec98b2b3d3e59e4e3fbf">st_ptrcmp</a>, <a class="code" href="st_8h.html#a144fc385b211526daab6da9ad5a854cc">st_ptrhash</a>);</div><div class="line"><a name="l16643"></a><span class="lineno">16643</span>&#160;</div><div class="line"><a name="l16644"></a><span class="lineno">16644</span>&#160; <span class="comment">/* Now get the length of the shortest path(s) from f to 1. */</span></div><div class="line"><a name="l16645"></a><span class="lineno">16645</span>&#160; (void) <a class="code" href="cuddInt_8c.html#a6506f1ae80b0f85d1e01da0db4a4f31a">getLargest</a>(f, visited);</div><div class="line"><a name="l16646"></a><span class="lineno">16646</span>&#160;</div><div class="line"><a name="l16647"></a><span class="lineno">16647</span>&#160; complement = <a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(f);</div><div class="line"><a name="l16648"></a><span class="lineno">16648</span>&#160;</div><div class="line"><a name="l16649"></a><span class="lineno">16649</span>&#160; F = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f);</div><div class="line"><a name="l16650"></a><span class="lineno">16650</span>&#160;</div><div class="line"><a name="l16651"></a><span class="lineno">16651</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="st_8h.html#a0ed63fd0cb21b0a1fe502e84aa5563ef">st_lookup</a>(visited, F, &amp;rootPair)) <span class="keywordflow">return</span>(<a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>);</div><div class="line"><a name="l16652"></a><span class="lineno">16652</span>&#160;</div><div class="line"><a name="l16653"></a><span class="lineno">16653</span>&#160; <span class="keywordflow">if</span> (complement) {</div><div class="line"><a name="l16654"></a><span class="lineno">16654</span>&#160; cost = rootPair-&gt;<a class="code" href="structcuddPathPair.html#a968dc3d34b592da2876517a687873281">neg</a>;</div><div class="line"><a name="l16655"></a><span class="lineno">16655</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16656"></a><span class="lineno">16656</span>&#160; cost = rootPair-&gt;<a class="code" href="structcuddPathPair.html#adf2ec174fe645c74c4d045a9109364f4">pos</a>;</div><div class="line"><a name="l16657"></a><span class="lineno">16657</span>&#160; }</div><div class="line"><a name="l16658"></a><span class="lineno">16658</span>&#160;</div><div class="line"><a name="l16659"></a><span class="lineno">16659</span>&#160; <span class="comment">/* Recover an actual shortest path. */</span></div><div class="line"><a name="l16660"></a><span class="lineno">16660</span>&#160; sol = <a class="code" href="cuddInt_8c.html#ac4564d7da48b5f6457d7adca5e619b4c">getCube</a>(manager,visited,f,cost);</div><div class="line"><a name="l16661"></a><span class="lineno">16661</span>&#160;</div><div class="line"><a name="l16662"></a><span class="lineno">16662</span>&#160; <a class="code" href="st_8h.html#a5341675ff925b7a670ab4705735ceb38">st_foreach</a>(visited, <a class="code" href="cuddInt_8c.html#a498f7e0ebf19b278dd9e7d9651b82eef">freePathPair</a>, <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>);</div><div class="line"><a name="l16663"></a><span class="lineno">16663</span>&#160; <a class="code" href="st_8h.html#acb004847ef312373d65bfb0d1a21c5b3">st_free_table</a>(visited);</div><div class="line"><a name="l16664"></a><span class="lineno">16664</span>&#160;</div><div class="line"><a name="l16665"></a><span class="lineno">16665</span>&#160; } <span class="keywordflow">while</span> (manager-&gt;<a class="code" href="structDdManager.html#ab8c81b5f0658b90c2c3bd339123a1f7a">reordered</a> == 1);</div><div class="line"><a name="l16666"></a><span class="lineno">16666</span>&#160;</div><div class="line"><a name="l16667"></a><span class="lineno">16667</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#a9f237f17f4e79d5b89149e09152edabe">length</a> != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>) {</div><div class="line"><a name="l16668"></a><span class="lineno">16668</span>&#160; *<a class="code" href="cJSON_8h.html#a9f237f17f4e79d5b89149e09152edabe">length</a> = cost;</div><div class="line"><a name="l16669"></a><span class="lineno">16669</span>&#160; }</div><div class="line"><a name="l16670"></a><span class="lineno">16670</span>&#160; <span class="keywordflow">return</span>(sol);</div><div class="line"><a name="l16671"></a><span class="lineno">16671</span>&#160;</div><div class="line"><a name="l16672"></a><span class="lineno">16672</span>&#160; } <span class="comment">/* end of Cudd_LargestCube */</span></div><div class="ttc" id="st_8h_html_a0ed63fd0cb21b0a1fe502e84aa5563ef"><div class="ttname"><a href="st_8h.html#a0ed63fd0cb21b0a1fe502e84aa5563ef">st_lookup</a></div><div class="ttdeci">int st_lookup(st_table *, void *, void *)</div><div class="ttdef"><b>Definition:</b> <a href="st_8c_source.html#l00271">st.c:271</a></div></div>
3692
3692
  <div class="ttc" id="structst__table_html"><div class="ttname"><a href="structst__table.html">st_table</a></div><div class="ttdef"><b>Definition:</b> <a href="st_8h_source.html#l00061">st.h:61</a></div></div>
3693
3693
  <div class="ttc" id="structDdNode_html"><div class="ttname"><a href="structDdNode.html">DdNode</a></div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00271">cudd.h:271</a></div></div>
3694
3694
  <div class="ttc" id="cudd_8h_html_a352ef8d39e760eaabae6d58d9a5ddbfc"><div class="ttname"><a href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a></div><div class="ttdeci">#define Cudd_Not(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00352">cudd.h:352</a></div></div>
@@ -3706,8 +3706,8 @@ ref count error at node </li>
3706
3706
  <div class="ttc" id="st_8h_html_a6073f524b9f0ec98b2b3d3e59e4e3fbf"><div class="ttname"><a href="st_8h.html#a6073f524b9f0ec98b2b3d3e59e4e3fbf">st_ptrcmp</a></div><div class="ttdeci">int st_ptrcmp(const char *, const char *)</div><div class="ttdef"><b>Definition:</b> <a href="st_8c_source.html#l00585">st.c:585</a></div></div>
3707
3707
  <div class="ttc" id="cuddInt_8c_html_a6994699d7a2a82b8f838e9d8d408095a"><div class="ttname"><a href="cuddInt_8c.html#a6994699d7a2a82b8f838e9d8d408095a">DD_BIGGY</a></div><div class="ttdeci">#define DD_BIGGY</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l16539">cuddInt.c:16539</a></div></div>
3708
3708
  <div class="ttc" id="st_8h_html_a410a87c90bd4719f24fecc904b9426ed"><div class="ttname"><a href="st_8h.html#a410a87c90bd4719f24fecc904b9426ed">st_init_table</a></div><div class="ttdeci">st_table * st_init_table(ST_PFICPCP, ST_PFICPI)</div><div class="ttdef"><b>Definition:</b> <a href="st_8c_source.html#l00148">st.c:148</a></div></div>
3709
- <div class="ttc" id="CFLGrammar_8txt_html_acc7b4cf736579c4d83be2316d5a9e5f2"><div class="ttname"><a href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00013">CFLGrammar.txt:13</a></div></div>
3710
3709
  <div class="ttc" id="cuddInt_8c_html_a6506f1ae80b0f85d1e01da0db4a4f31a"><div class="ttname"><a href="cuddInt_8c.html#a6506f1ae80b0f85d1e01da0db4a4f31a">getLargest</a></div><div class="ttdeci">static cuddPathPair getLargest(DdNode *root, st_table *visited)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l17347">cuddInt.c:17347</a></div></div>
3710
+ <div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
3711
3711
  <div class="ttc" id="cJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
3712
3712
  <div class="ttc" id="st_8h_html_a144fc385b211526daab6da9ad5a854cc"><div class="ttname"><a href="st_8h.html#a144fc385b211526daab6da9ad5a854cc">st_ptrhash</a></div><div class="ttdeci">int st_ptrhash(char *, int)</div><div class="ttdef"><b>Definition:</b> <a href="st_8c_source.html#l00547">st.c:547</a></div></div>
3713
3713
  <div class="ttc" id="cuddInt_8c_html_ad9d1aaa6ee837cb65ffcf74932161586"><div class="ttname"><a href="cuddInt_8c.html#ad9d1aaa6ee837cb65ffcf74932161586">zero</a></div><div class="ttdeci">static DdNode * zero</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l16562">cuddInt.c:16562</a></div></div>