svf-tools 1.0.613 → 1.0.615

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 (542) hide show
  1. package/CMakeLists.txt +13 -0
  2. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +7 -6
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +15 -15
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +22 -22
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +16 -16
  9. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +6 -6
  10. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +7 -7
  11. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +6 -6
  12. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +1 -1
  14. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +5 -5
  15. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +11 -11
  16. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +1 -1
  17. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +5 -5
  19. package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
  20. package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +14 -14
  22. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
  24. package/SVF-doxygen/html/html/ConsG_8h_source.html +9 -9
  25. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +18 -18
  26. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +9 -9
  27. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +4 -4
  28. package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
  29. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +8 -8
  30. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +4 -6
  32. package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
  33. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +9 -9
  34. package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
  35. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +22 -22
  36. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +21 -21
  40. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
  41. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  42. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +10 -10
  43. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
  44. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +13 -13
  45. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +27 -28
  46. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +65 -65
  47. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
  48. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  49. package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
  50. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  51. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
  52. package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +6 -6
  54. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +3 -3
  55. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +24 -29
  56. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +8 -8
  57. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  58. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
  59. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
  60. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +9 -9
  61. package/SVF-doxygen/html/html/LocationSet_8h_source.html +3 -3
  62. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +5 -5
  63. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +3 -3
  64. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
  66. package/SVF-doxygen/html/html/MHP_8h_source.html +5 -5
  67. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +17 -17
  68. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +8 -8
  69. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
  70. package/SVF-doxygen/html/html/MTA_8cpp_source.html +12 -17
  71. package/SVF-doxygen/html/html/MTA_8h_source.html +3 -4
  72. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +10 -10
  73. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +34 -34
  75. package/SVF-doxygen/html/html/MemRegion_8h_source.html +7 -7
  76. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +16 -15
  77. package/SVF-doxygen/html/html/MemSSA_8h_source.html +53 -52
  78. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +7 -8
  79. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +7 -7
  80. package/SVF-doxygen/html/html/Options_8cpp_source.html +52 -53
  81. package/SVF-doxygen/html/html/Options_8h_source.html +53 -54
  82. package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
  83. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +3 -3
  84. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -3
  86. package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
  87. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +33 -33
  88. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +91 -95
  89. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +31 -39
  90. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +85 -92
  91. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +20 -20
  92. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +16 -16
  93. package/SVF-doxygen/html/html/PointsTo_8cpp.html +1 -0
  94. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +51 -51
  95. package/SVF-doxygen/html/html/PointsTo_8h_source.html +38 -38
  96. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +6 -6
  97. package/SVF-doxygen/html/html/SCC_8h_source.html +4 -4
  98. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +11 -22
  99. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +14 -17
  100. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  102. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
  103. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +21 -19
  104. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +5 -5
  105. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +18 -18
  106. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +49 -62
  107. package/SVF-doxygen/html/html/SVFG_8h_source.html +45 -45
  108. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +12 -12
  109. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +8 -8
  110. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +3 -3
  111. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +10 -16
  112. package/SVF-doxygen/html/html/SVFIR_8h_source.html +83 -83
  113. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +19 -19
  114. package/SVF-doxygen/html/html/SVFType_8h.html +22 -22
  115. package/SVF-doxygen/html/html/SVFType_8h_source.html +76 -77
  116. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +5 -5
  117. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +11 -11
  118. package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +5 -5
  119. package/SVF-doxygen/html/html/SVFValue_8h_source.html +6 -6
  120. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  121. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +3 -3
  122. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +6 -6
  123. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +4 -4
  124. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +15 -15
  125. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -3
  126. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +69 -71
  127. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
  128. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +39 -39
  129. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  130. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
  131. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +49 -51
  132. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +13 -13
  133. package/SVF-doxygen/html/html/TCT_8cpp_source.html +4 -4
  134. package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
  135. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +8 -8
  136. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +3 -3
  137. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  138. package/SVF-doxygen/html/html/VFG_8cpp_source.html +17 -17
  139. package/SVF-doxygen/html/html/VFG_8h_source.html +5 -5
  140. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +8 -8
  141. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +33 -33
  142. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
  143. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +11 -11
  144. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +12 -12
  145. package/SVF-doxygen/html/html/WPAPass_8h_source.html +2 -2
  146. package/SVF-doxygen/html/html/WPASolver_8h_source.html +25 -25
  147. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
  148. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -5
  149. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -5
  150. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +2 -2
  152. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +2 -2
  153. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +187 -188
  155. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +104 -107
  156. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +163 -164
  157. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +47 -50
  158. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +194 -195
  159. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +45 -48
  160. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +204 -205
  161. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +35 -38
  162. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +17 -17
  163. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +191 -192
  164. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +29 -32
  165. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +122 -123
  166. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +158 -219
  167. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -2
  168. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +137 -138
  169. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +57 -49
  170. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +138 -139
  171. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +34 -34
  172. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +7 -7
  173. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +140 -141
  175. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +30 -30
  176. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +8 -8
  177. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +2 -2
  178. package/SVF-doxygen/html/html/classSVF_1_1CallSite-members.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +10 -10
  180. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -2
  181. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +114 -114
  182. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +6 -6
  183. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
  184. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +28 -28
  185. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
  186. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +6 -6
  187. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +4 -4
  188. package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +17 -31
  190. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +10 -10
  191. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +40 -40
  192. package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +15 -15
  193. package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +4 -4
  194. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +11 -11
  195. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
  196. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
  197. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +2 -2
  198. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +228 -229
  200. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +62 -65
  201. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
  202. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +17 -17
  203. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +194 -195
  204. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +55 -55
  205. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +219 -220
  206. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +335 -342
  207. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +57 -57
  208. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +6 -6
  209. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +2 -2
  210. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +2 -2
  211. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
  212. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
  213. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +2 -2
  214. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +1 -1
  215. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +6 -6
  216. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +2 -2
  217. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +4 -4
  218. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
  219. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
  220. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +8 -8
  221. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis-members.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +20 -14
  223. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +4 -4
  224. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +108 -94
  225. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
  226. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +36 -36
  227. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +2 -2
  228. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +12 -12
  229. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +25 -25
  230. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
  231. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +26 -26
  232. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +87 -87
  233. package/SVF-doxygen/html/html/classSVF_1_1MTA-members.html +2 -2
  234. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +27 -33
  235. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +21 -21
  236. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +14 -14
  237. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder-members.html +41 -43
  238. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +57 -80
  239. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
  240. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +54 -54
  241. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +4 -4
  242. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +4 -3
  243. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +170 -143
  244. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +16 -16
  245. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +2 -2
  246. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData-members.html +3 -3
  247. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +13 -15
  248. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +7 -7
  249. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +2 -2
  250. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +8 -8
  251. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +17 -18
  253. package/SVF-doxygen/html/html/classSVF_1_1Options.html +53 -79
  254. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  255. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
  256. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
  257. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +3 -3
  258. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +3 -3
  259. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +4 -4
  260. package/SVF-doxygen/html/html/classSVF_1_1PTData.html +11 -11
  261. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData-members.html +28 -28
  262. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +174 -177
  263. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData-members.html +17 -17
  264. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +99 -102
  265. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData-members.html +30 -30
  266. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +125 -127
  267. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData-members.html +13 -13
  268. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +83 -86
  269. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +122 -122
  271. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData-members.html +22 -22
  272. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +137 -140
  273. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +56 -56
  274. package/SVF-doxygen/html/html/classSVF_1_1PointsTo-members.html +16 -16
  275. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +183 -178
  276. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator-members.html +7 -7
  277. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +87 -65
  278. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +6 -6
  279. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +3 -3
  280. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
  281. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument-members.html +1 -1
  282. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +4 -4
  283. package/SVF-doxygen/html/html/classSVF_1_1SVFArrayType.html +6 -6
  284. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +3 -3
  285. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +13 -16
  286. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue-members.html +1 -1
  287. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +2 -2
  288. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst-members.html +1 -1
  289. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +2 -2
  290. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant-members.html +1 -1
  291. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +3 -3
  292. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData-members.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +2 -2
  294. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP-members.html +1 -1
  295. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +2 -2
  296. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt-members.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +2 -2
  298. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr-members.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +2 -2
  300. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +1 -1
  301. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +5 -7
  302. package/SVF-doxygen/html/html/classSVF_1_1SVFFunctionType.html +9 -9
  303. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
  304. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +211 -236
  305. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder-members.html +7 -9
  306. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +50 -138
  307. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +9 -9
  308. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +82 -82
  309. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +5 -5
  310. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue-members.html +1 -1
  311. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +2 -2
  312. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
  313. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +203 -215
  314. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +13 -13
  315. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +79 -79
  316. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction-members.html +1 -1
  317. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +4 -4
  318. package/SVF-doxygen/html/html/classSVF_1_1SVFIntergerType.html +5 -5
  319. package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo-members.html +1 -1
  320. package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo.html +5 -5
  321. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue-members.html +1 -1
  322. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +2 -2
  323. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +0 -4
  324. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +5 -5
  325. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue-members.html +1 -1
  326. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +3 -3
  327. package/SVF-doxygen/html/html/classSVF_1_1SVFPointerType.html +9 -9
  328. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +19 -19
  329. package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +5 -5
  330. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +38 -38
  331. package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +1 -1
  332. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +4 -5
  333. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +1 -1
  334. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst-members.html +1 -1
  335. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +2 -2
  336. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +9 -9
  337. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +12 -14
  338. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +42 -68
  339. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector-members.html +1 -1
  340. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +108 -109
  341. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator-members.html +1 -1
  342. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +50 -50
  343. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +6 -6
  344. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +146 -146
  345. package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +5 -5
  346. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +48 -61
  347. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +178 -179
  348. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +35 -38
  349. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
  350. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +20 -20
  351. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +42 -46
  352. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +10 -10
  353. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
  354. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +169 -170
  355. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +31 -34
  356. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
  357. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +28 -28
  358. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +263 -264
  359. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +112 -115
  360. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +41 -41
  361. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  362. package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +9 -9
  363. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver-members.html +2 -2
  364. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +9 -9
  365. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver-members.html +2 -2
  366. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +15 -15
  367. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +25 -25
  368. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver-members.html +2 -2
  369. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +17 -17
  370. package/SVF-doxygen/html/html/classSVF_1_1WPASolver-members.html +2 -2
  371. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +76 -81
  372. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +2 -2
  373. package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
  374. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  375. package/SVF-doxygen/html/html/functions.html +1 -1
  376. package/SVF-doxygen/html/html/functions_0x7e.html +16 -16
  377. package/SVF-doxygen/html/html/functions_a.html +7 -7
  378. package/SVF-doxygen/html/html/functions_b.html +6 -6
  379. package/SVF-doxygen/html/html/functions_c.html +27 -27
  380. package/SVF-doxygen/html/html/functions_d.html +10 -11
  381. package/SVF-doxygen/html/html/functions_e.html +2 -2
  382. package/SVF-doxygen/html/html/functions_f.html +6 -6
  383. package/SVF-doxygen/html/html/functions_func.html +6 -6
  384. package/SVF-doxygen/html/html/functions_func_0x7e.html +16 -16
  385. package/SVF-doxygen/html/html/functions_func_b.html +6 -6
  386. package/SVF-doxygen/html/html/functions_func_c.html +27 -27
  387. package/SVF-doxygen/html/html/functions_func_d.html +10 -11
  388. package/SVF-doxygen/html/html/functions_func_e.html +2 -2
  389. package/SVF-doxygen/html/html/functions_func_f.html +5 -5
  390. package/SVF-doxygen/html/html/functions_func_g.html +22 -22
  391. package/SVF-doxygen/html/html/functions_func_h.html +3 -3
  392. package/SVF-doxygen/html/html/functions_func_i.html +3 -3
  393. package/SVF-doxygen/html/html/functions_func_o.html +3 -3
  394. package/SVF-doxygen/html/html/functions_func_p.html +5 -5
  395. package/SVF-doxygen/html/html/functions_func_r.html +5 -8
  396. package/SVF-doxygen/html/html/functions_func_s.html +6 -6
  397. package/SVF-doxygen/html/html/functions_func_t.html +1 -1
  398. package/SVF-doxygen/html/html/functions_func_u.html +23 -23
  399. package/SVF-doxygen/html/html/functions_g.html +25 -28
  400. package/SVF-doxygen/html/html/functions_h.html +3 -3
  401. package/SVF-doxygen/html/html/functions_i.html +6 -6
  402. package/SVF-doxygen/html/html/functions_m.html +1 -1
  403. package/SVF-doxygen/html/html/functions_o.html +13 -13
  404. package/SVF-doxygen/html/html/functions_p.html +19 -19
  405. package/SVF-doxygen/html/html/functions_r.html +11 -12
  406. package/SVF-doxygen/html/html/functions_s.html +33 -36
  407. package/SVF-doxygen/html/html/functions_t.html +12 -12
  408. package/SVF-doxygen/html/html/functions_type_t.html +1 -1
  409. package/SVF-doxygen/html/html/functions_u.html +26 -23
  410. package/SVF-doxygen/html/html/functions_v.html +6 -6
  411. package/SVF-doxygen/html/html/functions_vars.html +1 -1
  412. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  413. package/SVF-doxygen/html/html/functions_vars_g.html +0 -3
  414. package/SVF-doxygen/html/html/functions_vars_i.html +1 -1
  415. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  416. package/SVF-doxygen/html/html/functions_vars_p.html +2 -2
  417. package/SVF-doxygen/html/html/functions_vars_s.html +5 -8
  418. package/SVF-doxygen/html/html/functions_vars_t.html +1 -1
  419. package/SVF-doxygen/html/html/functions_vars_u.html +3 -0
  420. package/SVF-doxygen/html/html/functions_w.html +3 -7
  421. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  422. package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
  423. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  424. package/SVF-doxygen/html/html/namespaceSVF.html +35 -35
  425. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +2 -2
  426. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +4 -4
  427. package/SVF-doxygen/html/html/saber_8cpp.html +1 -5
  428. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -5
  429. package/SVF-doxygen/html/html/search/all_0.js +1 -1
  430. package/SVF-doxygen/html/html/search/all_1.js +4 -4
  431. package/SVF-doxygen/html/html/search/all_10.js +15 -15
  432. package/SVF-doxygen/html/html/search/all_11.js +1 -2
  433. package/SVF-doxygen/html/html/search/all_12.js +20 -21
  434. package/SVF-doxygen/html/html/search/all_13.js +8 -8
  435. package/SVF-doxygen/html/html/search/all_14.js +13 -12
  436. package/SVF-doxygen/html/html/search/all_15.js +4 -4
  437. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  438. package/SVF-doxygen/html/html/search/all_19.js +16 -16
  439. package/SVF-doxygen/html/html/search/all_2.js +6 -6
  440. package/SVF-doxygen/html/html/search/all_3.js +14 -14
  441. package/SVF-doxygen/html/html/search/all_4.js +5 -5
  442. package/SVF-doxygen/html/html/search/all_5.js +2 -2
  443. package/SVF-doxygen/html/html/search/all_6.js +5 -5
  444. package/SVF-doxygen/html/html/search/all_7.js +11 -12
  445. package/SVF-doxygen/html/html/search/all_8.js +3 -3
  446. package/SVF-doxygen/html/html/search/all_9.js +4 -4
  447. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  448. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  449. package/SVF-doxygen/html/html/search/all_d.js +3 -3
  450. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  451. package/SVF-doxygen/html/html/search/all_f.js +5 -5
  452. package/SVF-doxygen/html/html/search/functions_0.js +4 -4
  453. package/SVF-doxygen/html/html/search/functions_1.js +6 -6
  454. package/SVF-doxygen/html/html/search/functions_10.js +1 -2
  455. package/SVF-doxygen/html/html/search/functions_11.js +11 -11
  456. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  457. package/SVF-doxygen/html/html/search/functions_13.js +12 -12
  458. package/SVF-doxygen/html/html/search/functions_17.js +16 -16
  459. package/SVF-doxygen/html/html/search/functions_2.js +14 -14
  460. package/SVF-doxygen/html/html/search/functions_3.js +5 -5
  461. package/SVF-doxygen/html/html/search/functions_4.js +2 -2
  462. package/SVF-doxygen/html/html/search/functions_5.js +4 -4
  463. package/SVF-doxygen/html/html/search/functions_6.js +11 -11
  464. package/SVF-doxygen/html/html/search/functions_7.js +3 -3
  465. package/SVF-doxygen/html/html/search/functions_8.js +3 -3
  466. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  467. package/SVF-doxygen/html/html/search/functions_e.js +3 -3
  468. package/SVF-doxygen/html/html/search/functions_f.js +5 -5
  469. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  470. package/SVF-doxygen/html/html/search/variables_0.js +1 -1
  471. package/SVF-doxygen/html/html/search/variables_10.js +2 -2
  472. package/SVF-doxygen/html/html/search/variables_12.js +5 -6
  473. package/SVF-doxygen/html/html/search/variables_13.js +3 -3
  474. package/SVF-doxygen/html/html/search/variables_14.js +1 -0
  475. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  476. package/SVF-doxygen/html/html/search/variables_7.js +0 -1
  477. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  478. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  479. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  480. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +14 -14
  481. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
  482. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  483. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
  484. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
  485. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  486. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement-members.html +1 -1
  487. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +47 -57
  488. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  489. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1PointsTo_01_4.html +1 -1
  490. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +5 -5
  491. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  492. package/SVF-doxygen/html/html/svf-ex_8cpp.html +6 -7
  493. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -7
  494. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  495. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  496. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  497. package/build.sh +2 -2
  498. package/include/DDA/DDAPass.h +1 -1
  499. package/include/DDA/FlowDDA.h +1 -1
  500. package/include/Graphs/ICFG.h +1 -1
  501. package/include/Graphs/SVFG.h +3 -4
  502. package/include/Graphs/SVFGOPT.h +7 -7
  503. package/include/MSSA/MemSSA.h +2 -0
  504. package/include/MSSA/SVFGBuilder.h +5 -14
  505. package/include/MTA/MTA.h +2 -2
  506. package/include/MemoryModel/MutablePointsToDS.h +3 -3
  507. package/include/MemoryModel/PersistentPointsToCache.h +7 -8
  508. package/include/MemoryModel/PersistentPointsToDS.h +93 -93
  509. package/include/MemoryModel/PointerAnalysisImpl.h +17 -28
  510. package/include/MemoryModel/PointsTo.h +24 -24
  511. package/include/SABER/SrcSnkDDA.h +10 -13
  512. package/include/SVF-LLVM/LLVMLoopAnalysis.h +2 -1
  513. package/include/SVF-LLVM/LLVMModule.h +6 -6
  514. package/include/SVFIR/SVFIR.h +3 -5
  515. package/include/SVFIR/SVFType.h +6 -8
  516. package/include/SVFIR/SVFValue.h +5 -5
  517. package/include/Util/Options.h +0 -1
  518. package/include/Util/SparseBitVector.h +6 -14
  519. package/include/WPA/FlowSensitive.h +13 -20
  520. package/include/WPA/WPASolver.h +5 -9
  521. package/lib/DDA/DDAPass.cpp +4 -4
  522. package/lib/Graphs/CFLGraph.cpp +3 -0
  523. package/lib/Graphs/SVFG.cpp +1 -1
  524. package/lib/MSSA/MemSSA.cpp +5 -3
  525. package/lib/MSSA/SVFGBuilder.cpp +9 -27
  526. package/lib/MTA/MTA.cpp +4 -4
  527. package/lib/MemoryModel/PointerAnalysisImpl.cpp +10 -10
  528. package/lib/MemoryModel/PointsTo.cpp +23 -19
  529. package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +3 -4
  530. package/lib/SVF-LLVM/LLVMModule.cpp +32 -21
  531. package/lib/SVFIR/SVFIR.cpp +1 -1
  532. package/lib/SVFIR/SymbolTableInfo.cpp +4 -15
  533. package/lib/Util/Options.cpp +0 -6
  534. package/lib/WPA/AndersenSFR.cpp +1 -1
  535. package/lib/WPA/FlowSensitive.cpp +1 -1
  536. package/package.json +1 -1
  537. package/tools/CFL/cfl.cpp +5 -4
  538. package/tools/DDA/dda.cpp +3 -2
  539. package/tools/Example/svf-ex.cpp +3 -2
  540. package/tools/MTA/mta.cpp +6 -4
  541. package/tools/SABER/saber.cpp +7 -5
  542. package/tools/WPA/wpa.cpp +3 -2
@@ -93,8 +93,8 @@ Public Member Functions</h2></td></tr>
93
93
  <tr class="separator:a4f618377a31eba119de672b0be4936bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
94
94
  <tr class="memitem:a9cb4261779da0cbeb8d09b8fbd5cf557"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SparseBitVector.html#a9cb4261779da0cbeb8d09b8fbd5cf557">SparseBitVector</a> (const <a class="el" href="classSVF_1_1SparseBitVector.html">SparseBitVector</a> &amp;RHS)</td></tr>
95
95
  <tr class="separator:a9cb4261779da0cbeb8d09b8fbd5cf557"><td class="memSeparator" colspan="2">&#160;</td></tr>
96
- <tr class="memitem:a786b5d4d9eb3cf4ec738043fc17e34c0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SparseBitVector.html#a786b5d4d9eb3cf4ec738043fc17e34c0">SparseBitVector</a> (<a class="el" href="classSVF_1_1SparseBitVector.html">SparseBitVector</a> &amp;&amp;RHS)</td></tr>
97
- <tr class="separator:a786b5d4d9eb3cf4ec738043fc17e34c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
96
+ <tr class="memitem:a8bb2c6e68fadfae0428bc6ce5d63ad88"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SparseBitVector.html#a8bb2c6e68fadfae0428bc6ce5d63ad88">SparseBitVector</a> (<a class="el" href="classSVF_1_1SparseBitVector.html">SparseBitVector</a> &amp;&amp;RHS) noexcept</td></tr>
97
+ <tr class="separator:a8bb2c6e68fadfae0428bc6ce5d63ad88"><td class="memSeparator" colspan="2">&#160;</td></tr>
98
98
  <tr class="memitem:a5afe3e74412a1f3f728d7e0eaae70c13"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SparseBitVector.html#a5afe3e74412a1f3f728d7e0eaae70c13">clear</a> ()</td></tr>
99
99
  <tr class="separator:a5afe3e74412a1f3f728d7e0eaae70c13"><td class="memSeparator" colspan="2">&#160;</td></tr>
100
100
  <tr class="memitem:adeed46c25650bdbccdef0519906d1030"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SparseBitVector.html">SparseBitVector</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SparseBitVector.html#adeed46c25650bdbccdef0519906d1030">operator=</a> (const <a class="el" href="classSVF_1_1SparseBitVector.html">SparseBitVector</a> &amp;RHS)</td></tr>
@@ -177,7 +177,7 @@ Private Attributes</h2></td></tr>
177
177
  class SVF::SparseBitVector&lt; ElementSize &gt;</h3>
178
178
 
179
179
 
180
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00462">462</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
180
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00454">454</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
181
181
  </div><h2 class="groupheader">Member Typedef Documentation</h2>
182
182
  <a id="a74ab73c1674200bb4560070c8b10346d"></a>
183
183
  <h2 class="memtitle"><span class="permalink"><a href="#a74ab73c1674200bb4560070c8b10346d">&#9670;&nbsp;</a></span>ElementList</h2>
@@ -201,7 +201,7 @@ template&lt;unsigned ElementSize = 128&gt; </div>
201
201
  </table>
202
202
  </div><div class="memdoc">
203
203
 
204
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00464">464</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
204
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00456">456</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
205
205
 
206
206
  </div>
207
207
  </div>
@@ -227,7 +227,7 @@ template&lt;unsigned ElementSize = 128&gt; </div>
227
227
  </table>
228
228
  </div><div class="memdoc">
229
229
 
230
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00466">466</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
230
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00458">458</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
231
231
 
232
232
  </div>
233
233
  </div>
@@ -253,7 +253,7 @@ template&lt;unsigned ElementSize = 128&gt; </div>
253
253
  </table>
254
254
  </div><div class="memdoc">
255
255
 
256
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00465">465</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
256
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00457">457</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
257
257
 
258
258
  </div>
259
259
  </div>
@@ -271,7 +271,7 @@ template&lt;unsigned ElementSize = 128&gt; </div>
271
271
  </table>
272
272
  </div><div class="memdoc">
273
273
 
274
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00675">675</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
274
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00667">667</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
275
275
 
276
276
  </div>
277
277
  </div>
@@ -301,9 +301,9 @@ template&lt;unsigned ElementSize = 128&gt; </div>
301
301
  <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ab0a250ed14fc688ffb38c8f00aca0bd4a887a4856f51078b02a23348b7331453e"></a>BITWORD_SIZE&#160;</td><td class="fielddoc"></td></tr>
302
302
  </table>
303
303
 
304
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00467">467</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
305
- <div class="fragment"><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; {</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab0a250ed14fc688ffb38c8f00aca0bd4a887a4856f51078b02a23348b7331453e">BITWORD_SIZE</a> = <a class="code" href="structSVF_1_1SparseBitVectorElement.html#a2dfc62db92b64481fe56fafaa923dce0a3335c07a7225c80110e998246f96d6c4">SparseBitVectorElement&lt;ElementSize&gt;::BITWORD_SIZE</a></div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; };</div><div class="ttc" id="structSVF_1_1SparseBitVectorElement_html_a2dfc62db92b64481fe56fafaa923dce0a3335c07a7225c80110e998246f96d6c4"><div class="ttname"><a href="structSVF_1_1SparseBitVectorElement.html#a2dfc62db92b64481fe56fafaa923dce0a3335c07a7225c80110e998246f96d6c4">SVF::SparseBitVectorElement::BITWORD_SIZE</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00224">SparseBitVector.h:224</a></div></div>
306
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab0a250ed14fc688ffb38c8f00aca0bd4a887a4856f51078b02a23348b7331453e"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab0a250ed14fc688ffb38c8f00aca0bd4a887a4856f51078b02a23348b7331453e">SVF::SparseBitVector::BITWORD_SIZE</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00469">SparseBitVector.h:469</a></div></div>
304
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00459">459</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
305
+ <div class="fragment"><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; {</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab0a250ed14fc688ffb38c8f00aca0bd4a887a4856f51078b02a23348b7331453e">BITWORD_SIZE</a> = <a class="code" href="structSVF_1_1SparseBitVectorElement.html#a2dfc62db92b64481fe56fafaa923dce0a3335c07a7225c80110e998246f96d6c4">SparseBitVectorElement&lt;ElementSize&gt;::BITWORD_SIZE</a></div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; };</div><div class="ttc" id="structSVF_1_1SparseBitVectorElement_html_a2dfc62db92b64481fe56fafaa923dce0a3335c07a7225c80110e998246f96d6c4"><div class="ttname"><a href="structSVF_1_1SparseBitVectorElement.html#a2dfc62db92b64481fe56fafaa923dce0a3335c07a7225c80110e998246f96d6c4">SVF::SparseBitVectorElement::BITWORD_SIZE</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00224">SparseBitVector.h:224</a></div></div>
306
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab0a250ed14fc688ffb38c8f00aca0bd4a887a4856f51078b02a23348b7331453e"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab0a250ed14fc688ffb38c8f00aca0bd4a887a4856f51078b02a23348b7331453e">SVF::SparseBitVector::BITWORD_SIZE</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00461">SparseBitVector.h:461</a></div></div>
307
307
  </div><!-- fragment -->
308
308
  </div>
309
309
  </div>
@@ -333,9 +333,9 @@ template&lt;unsigned ElementSize = 128&gt; </div>
333
333
  </table>
334
334
  </div><div class="memdoc">
335
335
 
336
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00677">677</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
337
- <div class="fragment"><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;: <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>(), <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>(<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin()) {}</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00476">SparseBitVector.h:476</a></div></div>
338
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
336
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00669">669</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
337
+ <div class="fragment"><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;: <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>(), <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>(<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin()) {}</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00468">SparseBitVector.h:468</a></div></div>
338
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
339
339
  </div><!-- fragment -->
340
340
  </div>
341
341
  </div>
@@ -365,14 +365,14 @@ template&lt;unsigned ElementSize = 128&gt; </div>
365
365
  </table>
366
366
  </div><div class="memdoc">
367
367
 
368
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00679">679</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
369
- <div class="fragment"><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; : <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>(RHS.Elements), <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>(<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin()) {}</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00476">SparseBitVector.h:476</a></div></div>
370
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
368
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00671">671</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
369
+ <div class="fragment"><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; : <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>(RHS.Elements), <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>(<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin()) {}</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00468">SparseBitVector.h:468</a></div></div>
370
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
371
371
  </div><!-- fragment -->
372
372
  </div>
373
373
  </div>
374
- <a id="a786b5d4d9eb3cf4ec738043fc17e34c0"></a>
375
- <h2 class="memtitle"><span class="permalink"><a href="#a786b5d4d9eb3cf4ec738043fc17e34c0">&#9670;&nbsp;</a></span>SparseBitVector() <span class="overload">[3/3]</span></h2>
374
+ <a id="a8bb2c6e68fadfae0428bc6ce5d63ad88"></a>
375
+ <h2 class="memtitle"><span class="permalink"><a href="#a8bb2c6e68fadfae0428bc6ce5d63ad88">&#9670;&nbsp;</a></span>SparseBitVector() <span class="overload">[3/3]</span></h2>
376
376
 
377
377
  <div class="memitem">
378
378
  <div class="memproto">
@@ -392,15 +392,15 @@ template&lt;unsigned ElementSize = 128&gt; </div>
392
392
  </table>
393
393
  </td>
394
394
  <td class="mlabels-right">
395
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
395
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
396
396
  </tr>
397
397
  </table>
398
398
  </div><div class="memdoc">
399
399
 
400
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00681">681</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
401
- <div class="fragment"><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; : <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(RHS.Elements)), <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>(<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin()) {}</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00476">SparseBitVector.h:476</a></div></div>
400
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00673">673</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
401
+ <div class="fragment"><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; : <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(RHS.Elements)), <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>(<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin()) {}</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00468">SparseBitVector.h:468</a></div></div>
402
402
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a72502f7f536418621485e90ab98c2016"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">SVF::SVFUtil::move</a></div><div class="ttdeci">constexpr std::remove_reference&lt; T &gt;::type &amp;&amp; move(T &amp;&amp;t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00657">SVFUtil.h:657</a></div></div>
403
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
403
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
404
404
  </div><!-- fragment -->
405
405
  </div>
406
406
  </div>
@@ -431,8 +431,8 @@ template&lt;unsigned ElementSize = 128&gt; </div>
431
431
  </table>
432
432
  </div><div class="memdoc">
433
433
 
434
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01115">1115</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
435
- <div class="fragment"><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; {</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SparseBitVector.html#a0421e3336137b232edc442ece00a8a9c">iterator</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_a0421e3336137b232edc442ece00a8a9c"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a0421e3336137b232edc442ece00a8a9c">SVF::SparseBitVector::iterator</a></div><div class="ttdeci">SparseBitVectorIterator iterator</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00675">SparseBitVector.h:675</a></div></div>
434
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01107">1107</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
435
+ <div class="fragment"><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; {</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SparseBitVector.html#a0421e3336137b232edc442ece00a8a9c">iterator</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_a0421e3336137b232edc442ece00a8a9c"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a0421e3336137b232edc442ece00a8a9c">SVF::SparseBitVector::iterator</a></div><div class="ttdeci">SparseBitVectorIterator iterator</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00667">SparseBitVector.h:667</a></div></div>
436
436
  </div><!-- fragment -->
437
437
  </div>
438
438
  </div>
@@ -462,8 +462,8 @@ template&lt;unsigned ElementSize = 128&gt; </div>
462
462
  </table>
463
463
  </div><div class="memdoc">
464
464
 
465
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00685">685</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
466
- <div class="fragment"><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; {</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.clear();</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
465
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00677">677</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
466
+ <div class="fragment"><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; {</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.clear();</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
467
467
  </div><!-- fragment -->
468
468
  </div>
469
469
  </div>
@@ -493,8 +493,8 @@ template&lt;unsigned ElementSize = 128&gt; </div>
493
493
  </table>
494
494
  </div><div class="memdoc">
495
495
 
496
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01073">1073</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
497
- <div class="fragment"><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; {</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; SparseBitVector&lt;ElementSize&gt; Result(*<span class="keyword">this</span>);</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; Result &amp;= RHS;</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; <span class="keywordflow">return</span> (Result == RHS);</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; }</div></div><!-- fragment -->
496
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01065">1065</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
497
+ <div class="fragment"><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; {</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; SparseBitVector&lt;ElementSize&gt; Result(*<span class="keyword">this</span>);</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; Result &amp;= RHS;</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; <span class="keywordflow">return</span> (Result == RHS);</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; }</div></div><!-- fragment -->
498
498
  </div>
499
499
  </div>
500
500
  <a id="a9f96e6a886fa69e07cda5dbfaed8b7c9"></a>
@@ -523,9 +523,9 @@ template&lt;unsigned ElementSize = 128&gt; </div>
523
523
  </table>
524
524
  </div><div class="memdoc">
525
525
 
526
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01104">1104</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
527
- <div class="fragment"><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; {</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <span class="keywordtype">unsigned</span> BitCount = 0;</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; Iter != <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end();</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; ++Iter)</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; BitCount += Iter-&gt;count();</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <span class="keywordflow">return</span> BitCount;</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
528
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_acdc2e97bfeeba3a91d8793992df9451f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">SVF::SparseBitVector::ElementListConstIter</a></div><div class="ttdeci">typename ElementList::const_iterator ElementListConstIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00466">SparseBitVector.h:466</a></div></div>
526
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01096">1096</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
527
+ <div class="fragment"><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; {</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; <span class="keywordtype">unsigned</span> BitCount = 0;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; Iter != <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end();</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; ++Iter)</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; BitCount += Iter-&gt;count();</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; <span class="keywordflow">return</span> BitCount;</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
528
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_acdc2e97bfeeba3a91d8793992df9451f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">SVF::SparseBitVector::ElementListConstIter</a></div><div class="ttdeci">typename ElementList::const_iterator ElementListConstIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00458">SparseBitVector.h:458</a></div></div>
529
529
  </div><!-- fragment -->
530
530
  </div>
531
531
  </div>
@@ -555,8 +555,8 @@ template&lt;unsigned ElementSize = 128&gt; </div>
555
555
  </table>
556
556
  </div><div class="memdoc">
557
557
 
558
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01099">1099</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
559
- <div class="fragment"><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; {</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty();</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
558
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01091">1091</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
559
+ <div class="fragment"><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; {</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty();</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
560
560
  </div><!-- fragment -->
561
561
  </div>
562
562
  </div>
@@ -586,8 +586,8 @@ template&lt;unsigned ElementSize = 128&gt; </div>
586
586
  </table>
587
587
  </div><div class="memdoc">
588
588
 
589
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01120">1120</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
590
- <div class="fragment"><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; {</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SparseBitVector.html#a0421e3336137b232edc442ece00a8a9c">iterator</a>(<span class="keyword">this</span>, <span class="keyword">true</span>);</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_a0421e3336137b232edc442ece00a8a9c"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a0421e3336137b232edc442ece00a8a9c">SVF::SparseBitVector::iterator</a></div><div class="ttdeci">SparseBitVectorIterator iterator</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00675">SparseBitVector.h:675</a></div></div>
589
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01112">1112</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
590
+ <div class="fragment"><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; {</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SparseBitVector.html#a0421e3336137b232edc442ece00a8a9c">iterator</a>(<span class="keyword">this</span>, <span class="keyword">true</span>);</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_a0421e3336137b232edc442ece00a8a9c"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a0421e3336137b232edc442ece00a8a9c">SVF::SparseBitVector::iterator</a></div><div class="ttdeci">SparseBitVectorIterator iterator</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00667">SparseBitVector.h:667</a></div></div>
591
591
  </div><!-- fragment -->
592
592
  </div>
593
593
  </div>
@@ -605,7 +605,6 @@ template&lt;unsigned ElementSize = 128&gt; </div>
605
605
  <tr>
606
606
  <td class="memname">int <a class="el" href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a>&lt; ElementSize &gt;::find_first </td>
607
607
  <td>(</td>
608
- <td class="paramtype">void&#160;</td>
609
608
  <td class="paramname"></td><td>)</td>
610
609
  <td> const</td>
611
610
  </tr>
@@ -617,8 +616,8 @@ template&lt;unsigned ElementSize = 128&gt; </div>
617
616
  </table>
618
617
  </div><div class="memdoc">
619
618
 
620
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01081">1081</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
621
- <div class="fragment"><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; {</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty())</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="keyword">const</span> SparseBitVectorElement&lt;ElementSize&gt; &amp;First = *(<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin());</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; <span class="keywordflow">return</span> (First.index() * ElementSize) + First.find_first();</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
619
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01073">1073</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
620
+ <div class="fragment"><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; {</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty())</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; <span class="keyword">const</span> SparseBitVectorElement&lt;ElementSize&gt; &amp;First = *(<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin());</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="keywordflow">return</span> (First.index() * ElementSize) + First.find_first();</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
622
621
  </div><!-- fragment -->
623
622
  </div>
624
623
  </div>
@@ -647,8 +646,8 @@ template&lt;unsigned ElementSize = 128&gt; </div>
647
646
  </table>
648
647
  </div><div class="memdoc">
649
648
 
650
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01090">1090</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
651
- <div class="fragment"><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; {</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty())</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; <span class="keyword">const</span> SparseBitVectorElement&lt;ElementSize&gt; &amp;Last = *(<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.rbegin());</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; <span class="keywordflow">return</span> (Last.index() * ElementSize) + Last.find_last();</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
649
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01082">1082</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
650
+ <div class="fragment"><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; {</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty())</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; <span class="keyword">const</span> SparseBitVectorElement&lt;ElementSize&gt; &amp;Last = *(<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.rbegin());</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; <span class="keywordflow">return</span> (Last.index() * ElementSize) + Last.find_last();</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
652
651
  </div><!-- fragment -->
653
652
  </div>
654
653
  </div>
@@ -678,8 +677,8 @@ template&lt;unsigned ElementSize = 128&gt; </div>
678
677
  </table>
679
678
  </div><div class="memdoc">
680
679
 
681
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00529">529</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
682
- <div class="fragment"><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; {</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SparseBitVector.html#ad53d20775e5445a438f579743aa77cf3">FindLowerBoundImpl</a>(ElementIndex);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ad53d20775e5445a438f579743aa77cf3"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ad53d20775e5445a438f579743aa77cf3">SVF::SparseBitVector::FindLowerBoundImpl</a></div><div class="ttdeci">ElementListIter FindLowerBoundImpl(unsigned ElementIndex) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00480">SparseBitVector.h:480</a></div></div>
680
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00521">521</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
681
+ <div class="fragment"><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; {</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SparseBitVector.html#ad53d20775e5445a438f579743aa77cf3">FindLowerBoundImpl</a>(ElementIndex);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ad53d20775e5445a438f579743aa77cf3"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ad53d20775e5445a438f579743aa77cf3">SVF::SparseBitVector::FindLowerBoundImpl</a></div><div class="ttdeci">ElementListIter FindLowerBoundImpl(unsigned ElementIndex) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
683
682
  </div><!-- fragment -->
684
683
  </div>
685
684
  </div>
@@ -709,8 +708,8 @@ template&lt;unsigned ElementSize = 128&gt; </div>
709
708
  </table>
710
709
  </div><div class="memdoc">
711
710
 
712
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00525">525</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
713
- <div class="fragment"><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; {</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SparseBitVector.html#ad53d20775e5445a438f579743aa77cf3">FindLowerBoundImpl</a>(ElementIndex);</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ad53d20775e5445a438f579743aa77cf3"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ad53d20775e5445a438f579743aa77cf3">SVF::SparseBitVector::FindLowerBoundImpl</a></div><div class="ttdeci">ElementListIter FindLowerBoundImpl(unsigned ElementIndex) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00480">SparseBitVector.h:480</a></div></div>
711
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00517">517</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
712
+ <div class="fragment"><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; {</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SparseBitVector.html#ad53d20775e5445a438f579743aa77cf3">FindLowerBoundImpl</a>(ElementIndex);</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ad53d20775e5445a438f579743aa77cf3"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ad53d20775e5445a438f579743aa77cf3">SVF::SparseBitVector::FindLowerBoundImpl</a></div><div class="ttdeci">ElementListIter FindLowerBoundImpl(unsigned ElementIndex) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
714
713
  </div><!-- fragment -->
715
714
  </div>
716
715
  </div>
@@ -740,10 +739,10 @@ template&lt;unsigned ElementSize = 128&gt; </div>
740
739
  </table>
741
740
  </div><div class="memdoc">
742
741
 
743
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00480">480</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
744
- <div class="fragment"><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; {</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="comment">// We cache a non-const iterator so we&#39;re forced to resort to const_cast to</span></div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="comment">// get the begin/end in the case where &#39;this&#39; is const. To avoid duplication</span></div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="comment">// of code with the only difference being whether the const cast is present</span></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="comment">// &#39;this&#39; is always const in this particular function and we sort out the</span></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="comment">// difference in FindLowerBound and FindLowerBoundConst.</span></div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> Begin =</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keyword">const_cast&lt;</span>SparseBitVector&lt;ElementSize&gt; *<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> End =</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keyword">const_cast&lt;</span>SparseBitVector&lt;ElementSize&gt; *<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end();</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty())</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; {</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = Begin;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; }</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="comment">// Make sure our current iterator is valid.</span></div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> == End)</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; --<a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="comment">// Search from our current iterator, either backwards or forwards,</span></div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="comment">// depending on what element we are looking for.</span></div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> ElementIter = <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>-&gt;index() == ElementIndex)</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; {</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">return</span> ElementIter;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; }</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>-&gt;index() &gt; ElementIndex)</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; {</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">while</span> (ElementIter != Begin</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; &amp;&amp; ElementIter-&gt;index() &gt; ElementIndex)</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; --ElementIter;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; }</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; {</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">while</span> (ElementIter != End &amp;&amp;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; ElementIter-&gt;index() &lt; ElementIndex)</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; ++ElementIter;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; }</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = ElementIter;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">return</span> ElementIter;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00476">SparseBitVector.h:476</a></div></div>
745
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
746
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a399721230d13a4153766e6e8ed1f9aed"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">SVF::SparseBitVector::ElementListIter</a></div><div class="ttdeci">typename ElementList::iterator ElementListIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00465">SparseBitVector.h:465</a></div></div>
742
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00472">472</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
743
+ <div class="fragment"><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; {</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="comment">// We cache a non-const iterator so we&#39;re forced to resort to const_cast to</span></div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="comment">// get the begin/end in the case where &#39;this&#39; is const. To avoid duplication</span></div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="comment">// of code with the only difference being whether the const cast is present</span></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="comment">// &#39;this&#39; is always const in this particular function and we sort out the</span></div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="comment">// difference in FindLowerBound and FindLowerBoundConst.</span></div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> Begin =</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keyword">const_cast&lt;</span>SparseBitVector&lt;ElementSize&gt; *<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> End =</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keyword">const_cast&lt;</span>SparseBitVector&lt;ElementSize&gt; *<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end();</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty())</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; {</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = Begin;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; }</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="comment">// Make sure our current iterator is valid.</span></div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> == End)</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; --<a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="comment">// Search from our current iterator, either backwards or forwards,</span></div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="comment">// depending on what element we are looking for.</span></div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> ElementIter = <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>-&gt;index() == ElementIndex)</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; {</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">return</span> ElementIter;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>-&gt;index() &gt; ElementIndex)</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; {</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">while</span> (ElementIter != Begin</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; &amp;&amp; ElementIter-&gt;index() &gt; ElementIndex)</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; --ElementIter;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; }</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; {</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">while</span> (ElementIter != End &amp;&amp;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; ElementIter-&gt;index() &lt; ElementIndex)</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; ++ElementIter;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; }</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = ElementIter;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">return</span> ElementIter;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00468">SparseBitVector.h:468</a></div></div>
744
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
745
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a399721230d13a4153766e6e8ed1f9aed"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">SVF::SparseBitVector::ElementListIter</a></div><div class="ttdeci">typename ElementList::iterator ElementListIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00457">SparseBitVector.h:457</a></div></div>
747
746
  </div><!-- fragment -->
748
747
  </div>
749
748
  </div>
@@ -773,8 +772,8 @@ template&lt;unsigned ElementSize = 128&gt; </div>
773
772
  </table>
774
773
  </div><div class="memdoc">
775
774
 
776
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01031">1031</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
777
- <div class="fragment"><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; {</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(*RHS);</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_a16756e0545fd3d50ab89f45a2e83bb79"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">SVF::SparseBitVector::intersects</a></div><div class="ttdeci">bool intersects(const SparseBitVector&lt; ElementSize &gt; *RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01031">SparseBitVector.h:1031</a></div></div>
775
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01023">1023</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
776
+ <div class="fragment"><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; {</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(*RHS);</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_a16756e0545fd3d50ab89f45a2e83bb79"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">SVF::SparseBitVector::intersects</a></div><div class="ttdeci">bool intersects(const SparseBitVector&lt; ElementSize &gt; *RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01023">SparseBitVector.h:1023</a></div></div>
778
777
  </div><!-- fragment -->
779
778
  </div>
780
779
  </div>
@@ -804,9 +803,9 @@ template&lt;unsigned ElementSize = 128&gt; </div>
804
803
  </table>
805
804
  </div><div class="memdoc">
806
805
 
807
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01037">1037</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
808
- <div class="fragment"><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; {</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter1 = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter2 = RHS.Elements.begin();</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; <span class="comment">// Check if both bitmaps are empty.</span></div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty() &amp;&amp; RHS.Elements.empty())</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; <span class="comment">// Loop through, intersecting stopping when we hit bits in common.</span></div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; <span class="keywordflow">while</span> (Iter2 != RHS.Elements.end())</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; {</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; <span class="keywordflow">if</span> (Iter1 == <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end())</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; <span class="keywordflow">if</span> (Iter1-&gt;index() &gt; Iter2-&gt;index())</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; {</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; ++Iter2;</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; }</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Iter1-&gt;index() == Iter2-&gt;index())</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; {</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; <span class="keywordflow">if</span> (Iter1-&gt;intersects(*Iter2))</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; ++Iter1;</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; ++Iter2;</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; }</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; {</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; ++Iter1;</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; }</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; }</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
809
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_acdc2e97bfeeba3a91d8793992df9451f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">SVF::SparseBitVector::ElementListConstIter</a></div><div class="ttdeci">typename ElementList::const_iterator ElementListConstIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00466">SparseBitVector.h:466</a></div></div>
806
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01029">1029</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
807
+ <div class="fragment"><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; {</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter1 = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter2 = RHS.Elements.begin();</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; <span class="comment">// Check if both bitmaps are empty.</span></div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty() &amp;&amp; RHS.Elements.empty())</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; <span class="comment">// Loop through, intersecting stopping when we hit bits in common.</span></div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <span class="keywordflow">while</span> (Iter2 != RHS.Elements.end())</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; {</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <span class="keywordflow">if</span> (Iter1 == <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end())</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; <span class="keywordflow">if</span> (Iter1-&gt;index() &gt; Iter2-&gt;index())</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; {</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; ++Iter2;</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; }</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Iter1-&gt;index() == Iter2-&gt;index())</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; {</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; <span class="keywordflow">if</span> (Iter1-&gt;intersects(*Iter2))</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; ++Iter1;</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; ++Iter2;</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; }</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; {</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; ++Iter1;</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; }</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; }</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
808
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_acdc2e97bfeeba3a91d8793992df9451f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">SVF::SparseBitVector::ElementListConstIter</a></div><div class="ttdeci">typename ElementList::const_iterator ElementListConstIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00458">SparseBitVector.h:458</a></div></div>
810
809
  </div><!-- fragment -->
811
810
  </div>
812
811
  </div>
@@ -836,13 +835,13 @@ template&lt;unsigned ElementSize = 128&gt; </div>
836
835
  </table>
837
836
  </div><div class="memdoc">
838
837
 
839
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00905">905</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
840
- <div class="fragment"><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; {</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">this</span> == &amp;RHS)</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; {</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">empty</a>())</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; {</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a5afe3e74412a1f3f728d7e0eaae70c13">clear</a>();</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; }</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; }</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> Iter1 = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter2 = RHS.Elements.begin();</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <span class="comment">// If either our bitmap or RHS is empty, we are done</span></div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty() || RHS.Elements.empty())</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <span class="comment">// Loop through, intersecting as we go, erasing elements when necessary.</span></div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <span class="keywordflow">while</span> (Iter2 != RHS.Elements.end())</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; {</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; <span class="keywordflow">if</span> (Iter1 == <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end())</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; {</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; }</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keywordflow">if</span> (Iter1-&gt;index() &gt; Iter2-&gt;index())</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; {</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; ++Iter2;</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; }</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Iter1-&gt;index() == Iter2-&gt;index())</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; {</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordtype">bool</span> BecameZero;</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; changed |= Iter1-&gt;intersectWithComplement(*Iter2, BecameZero);</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; <span class="keywordflow">if</span> (BecameZero)</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; {</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> IterTmp = Iter1;</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; ++Iter1;</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.erase(IterTmp);</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; }</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; {</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; ++Iter1;</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; }</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; ++Iter2;</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; }</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; {</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; ++Iter1;</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; }</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; }</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00476">SparseBitVector.h:476</a></div></div>
841
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
842
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a5afe3e74412a1f3f728d7e0eaae70c13"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a5afe3e74412a1f3f728d7e0eaae70c13">SVF::SparseBitVector::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00685">SparseBitVector.h:685</a></div></div>
843
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_acdc2e97bfeeba3a91d8793992df9451f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">SVF::SparseBitVector::ElementListConstIter</a></div><div class="ttdeci">typename ElementList::const_iterator ElementListConstIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00466">SparseBitVector.h:466</a></div></div>
844
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a399721230d13a4153766e6e8ed1f9aed"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">SVF::SparseBitVector::ElementListIter</a></div><div class="ttdeci">typename ElementList::iterator ElementListIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00465">SparseBitVector.h:465</a></div></div>
845
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_aea5389ad7e5fe4c8bef686940a1a6056"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">SVF::SparseBitVector::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01099">SparseBitVector.h:1099</a></div></div>
838
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00897">897</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
839
+ <div class="fragment"><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; {</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">this</span> == &amp;RHS)</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; {</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">empty</a>())</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; {</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a5afe3e74412a1f3f728d7e0eaae70c13">clear</a>();</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; }</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; }</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> Iter1 = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter2 = RHS.Elements.begin();</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160;</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <span class="comment">// If either our bitmap or RHS is empty, we are done</span></div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty() || RHS.Elements.empty())</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <span class="comment">// Loop through, intersecting as we go, erasing elements when necessary.</span></div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <span class="keywordflow">while</span> (Iter2 != RHS.Elements.end())</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; {</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; <span class="keywordflow">if</span> (Iter1 == <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end())</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; {</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; }</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160;</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <span class="keywordflow">if</span> (Iter1-&gt;index() &gt; Iter2-&gt;index())</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; {</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; ++Iter2;</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; }</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Iter1-&gt;index() == Iter2-&gt;index())</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; {</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <span class="keywordtype">bool</span> BecameZero;</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; changed |= Iter1-&gt;intersectWithComplement(*Iter2, BecameZero);</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keywordflow">if</span> (BecameZero)</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; {</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> IterTmp = Iter1;</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; ++Iter1;</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.erase(IterTmp);</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; }</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; {</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; ++Iter1;</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; }</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; ++Iter2;</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; }</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; {</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; ++Iter1;</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; }</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; }</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00468">SparseBitVector.h:468</a></div></div>
840
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
841
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a5afe3e74412a1f3f728d7e0eaae70c13"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a5afe3e74412a1f3f728d7e0eaae70c13">SVF::SparseBitVector::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00677">SparseBitVector.h:677</a></div></div>
842
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_acdc2e97bfeeba3a91d8793992df9451f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">SVF::SparseBitVector::ElementListConstIter</a></div><div class="ttdeci">typename ElementList::const_iterator ElementListConstIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00458">SparseBitVector.h:458</a></div></div>
843
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a399721230d13a4153766e6e8ed1f9aed"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">SVF::SparseBitVector::ElementListIter</a></div><div class="ttdeci">typename ElementList::iterator ElementListIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00457">SparseBitVector.h:457</a></div></div>
844
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_aea5389ad7e5fe4c8bef686940a1a6056"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">SVF::SparseBitVector::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01091">SparseBitVector.h:1091</a></div></div>
846
845
  </div><!-- fragment -->
847
846
  </div>
848
847
  </div>
@@ -872,8 +871,8 @@ template&lt;unsigned ElementSize = 128&gt; </div>
872
871
  </table>
873
872
  </div><div class="memdoc">
874
873
 
875
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00963">963</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
876
- <div class="fragment"><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; {</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SparseBitVector.html#a8b481ef53a27a351affecab90310b1ef">intersectWithComplement</a>(*RHS);</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_a8b481ef53a27a351affecab90310b1ef"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a8b481ef53a27a351affecab90310b1ef">SVF::SparseBitVector::intersectWithComplement</a></div><div class="ttdeci">bool intersectWithComplement(const SparseBitVector &amp;RHS)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00905">SparseBitVector.h:905</a></div></div>
874
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00955">955</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
875
+ <div class="fragment"><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; {</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SparseBitVector.html#a8b481ef53a27a351affecab90310b1ef">intersectWithComplement</a>(*RHS);</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_a8b481ef53a27a351affecab90310b1ef"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a8b481ef53a27a351affecab90310b1ef">SVF::SparseBitVector::intersectWithComplement</a></div><div class="ttdeci">bool intersectWithComplement(const SparseBitVector &amp;RHS)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00897">SparseBitVector.h:897</a></div></div>
877
876
  </div><!-- fragment -->
878
877
  </div>
879
878
  </div>
@@ -913,13 +912,13 @@ template&lt;unsigned ElementSize = 128&gt; </div>
913
912
  </table>
914
913
  </div><div class="memdoc">
915
914
 
916
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00970">970</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
917
- <div class="fragment"><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; {</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">this</span> == &amp;RHS1)</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; {</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a8b481ef53a27a351affecab90310b1ef">intersectWithComplement</a>(RHS2);</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; }</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> == &amp;RHS2)</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; {</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a4f618377a31eba119de672b0be4936bc">SparseBitVector</a> RHS2Copy(RHS2);</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a8b481ef53a27a351affecab90310b1ef">intersectWithComplement</a>(RHS1, RHS2Copy);</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; }</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.clear();</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter1 = RHS1.Elements.begin();</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter2 = RHS2.Elements.begin();</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; <span class="comment">// If RHS1 is empty, we are done</span></div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <span class="comment">// If RHS2 is empty, we still have to copy RHS1</span></div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="keywordflow">if</span> (RHS1.Elements.empty())</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; <span class="comment">// Loop through, intersecting as we go, erasing elements when necessary.</span></div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="keywordflow">while</span> (Iter2 != RHS2.Elements.end())</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; {</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; <span class="keywordflow">if</span> (Iter1 == RHS1.Elements.end())</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; <span class="keywordflow">if</span> (Iter1-&gt;index() &gt; Iter2-&gt;index())</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; {</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; ++Iter2;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; }</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Iter1-&gt;index() == Iter2-&gt;index())</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; {</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; <span class="keywordtype">bool</span> BecameZero = <span class="keyword">false</span>;</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.emplace_back(Iter1-&gt;index());</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.back().intersectWithComplement(*Iter1, *Iter2, BecameZero);</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; <span class="keywordflow">if</span> (BecameZero)</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.pop_back();</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; ++Iter1;</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; ++Iter2;</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; }</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; {</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.push_back(*Iter1++);</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; }</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; }</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; <span class="comment">// copy the remaining elements</span></div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">std::copy</a>(Iter1, RHS1.Elements.end(), std::back_inserter(<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>));</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00476">SparseBitVector.h:476</a></div></div>
918
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a8b481ef53a27a351affecab90310b1ef"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a8b481ef53a27a351affecab90310b1ef">SVF::SparseBitVector::intersectWithComplement</a></div><div class="ttdeci">bool intersectWithComplement(const SparseBitVector &amp;RHS)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00905">SparseBitVector.h:905</a></div></div>
919
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
920
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a4f618377a31eba119de672b0be4936bc"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a4f618377a31eba119de672b0be4936bc">SVF::SparseBitVector::SparseBitVector</a></div><div class="ttdeci">SparseBitVector()</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00677">SparseBitVector.h:677</a></div></div>
915
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00962">962</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
916
+ <div class="fragment"><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; {</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">this</span> == &amp;RHS1)</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; {</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a8b481ef53a27a351affecab90310b1ef">intersectWithComplement</a>(RHS2);</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; }</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> == &amp;RHS2)</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; {</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a4f618377a31eba119de672b0be4936bc">SparseBitVector</a> RHS2Copy(RHS2);</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a8b481ef53a27a351affecab90310b1ef">intersectWithComplement</a>(RHS1, RHS2Copy);</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; }</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.clear();</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter1 = RHS1.Elements.begin();</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter2 = RHS2.Elements.begin();</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="comment">// If RHS1 is empty, we are done</span></div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="comment">// If RHS2 is empty, we still have to copy RHS1</span></div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <span class="keywordflow">if</span> (RHS1.Elements.empty())</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; <span class="comment">// Loop through, intersecting as we go, erasing elements when necessary.</span></div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; <span class="keywordflow">while</span> (Iter2 != RHS2.Elements.end())</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; {</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; <span class="keywordflow">if</span> (Iter1 == RHS1.Elements.end())</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; <span class="keywordflow">if</span> (Iter1-&gt;index() &gt; Iter2-&gt;index())</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; {</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; ++Iter2;</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; }</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Iter1-&gt;index() == Iter2-&gt;index())</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; {</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keywordtype">bool</span> BecameZero = <span class="keyword">false</span>;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.emplace_back(Iter1-&gt;index());</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.back().intersectWithComplement(*Iter1, *Iter2, BecameZero);</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; <span class="keywordflow">if</span> (BecameZero)</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.pop_back();</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; ++Iter1;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; ++Iter2;</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; }</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; {</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.push_back(*Iter1++);</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; }</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; }</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; <span class="comment">// copy the remaining elements</span></div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">std::copy</a>(Iter1, RHS1.Elements.end(), std::back_inserter(<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>));</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00468">SparseBitVector.h:468</a></div></div>
917
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a8b481ef53a27a351affecab90310b1ef"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a8b481ef53a27a351affecab90310b1ef">SVF::SparseBitVector::intersectWithComplement</a></div><div class="ttdeci">bool intersectWithComplement(const SparseBitVector &amp;RHS)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00897">SparseBitVector.h:897</a></div></div>
918
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
919
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a4f618377a31eba119de672b0be4936bc"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a4f618377a31eba119de672b0be4936bc">SVF::SparseBitVector::SparseBitVector</a></div><div class="ttdeci">SparseBitVector()</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00669">SparseBitVector.h:669</a></div></div>
921
920
  <div class="ttc" id="cJSON_8cpp_html_a7669ee67a0563250c1efaa24d130e1ac"><div class="ttname"><a href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a></div><div class="ttdeci">copy</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00414">cJSON.cpp:414</a></div></div>
922
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_acdc2e97bfeeba3a91d8793992df9451f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">SVF::SparseBitVector::ElementListConstIter</a></div><div class="ttdeci">typename ElementList::const_iterator ElementListConstIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00466">SparseBitVector.h:466</a></div></div>
921
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_acdc2e97bfeeba3a91d8793992df9451f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">SVF::SparseBitVector::ElementListConstIter</a></div><div class="ttdeci">typename ElementList::const_iterator ElementListConstIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00458">SparseBitVector.h:458</a></div></div>
923
922
  </div><!-- fragment -->
924
923
  </div>
925
924
  </div>
@@ -959,8 +958,8 @@ template&lt;unsigned ElementSize = 128&gt; </div>
959
958
  </table>
960
959
  </div><div class="memdoc">
961
960
 
962
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01025">1025</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
963
- <div class="fragment"><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; {</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a8b481ef53a27a351affecab90310b1ef">intersectWithComplement</a>(*RHS1, *RHS2);</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_a8b481ef53a27a351affecab90310b1ef"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a8b481ef53a27a351affecab90310b1ef">SVF::SparseBitVector::intersectWithComplement</a></div><div class="ttdeci">bool intersectWithComplement(const SparseBitVector &amp;RHS)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00905">SparseBitVector.h:905</a></div></div>
961
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01017">1017</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
962
+ <div class="fragment"><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; {</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a8b481ef53a27a351affecab90310b1ef">intersectWithComplement</a>(*RHS1, *RHS2);</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_a8b481ef53a27a351affecab90310b1ef"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a8b481ef53a27a351affecab90310b1ef">SVF::SparseBitVector::intersectWithComplement</a></div><div class="ttdeci">bool intersectWithComplement(const SparseBitVector &amp;RHS)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00897">SparseBitVector.h:897</a></div></div>
964
963
  </div><!-- fragment -->
965
964
  </div>
966
965
  </div>
@@ -990,11 +989,11 @@ template&lt;unsigned ElementSize = 128&gt; </div>
990
989
  </table>
991
990
  </div><div class="memdoc">
992
991
 
993
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00844">844</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
994
- <div class="fragment"><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; {</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">this</span> == &amp;RHS)</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> Iter1 = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter2 = RHS.Elements.begin();</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <span class="comment">// Check if both bitmaps are empty.</span></div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty() &amp;&amp; RHS.Elements.empty())</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <span class="comment">// Loop through, intersecting as we go, erasing elements when necessary.</span></div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keywordflow">while</span> (Iter2 != RHS.Elements.end())</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; {</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keywordflow">if</span> (Iter1 == <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end())</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; {</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; }</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160;</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="keywordflow">if</span> (Iter1-&gt;index() &gt; Iter2-&gt;index())</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; {</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; ++Iter2;</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; }</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Iter1-&gt;index() == Iter2-&gt;index())</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; {</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="keywordtype">bool</span> BecameZero;</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; changed |= Iter1-&gt;intersectWith(*Iter2, BecameZero);</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <span class="keywordflow">if</span> (BecameZero)</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; {</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> IterTmp = Iter1;</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; ++Iter1;</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.erase(IterTmp);</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; }</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; {</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; ++Iter1;</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; }</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; ++Iter2;</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; }</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; {</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> IterTmp = Iter1;</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; ++Iter1;</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.erase(IterTmp);</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; }</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; }</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <span class="keywordflow">if</span> (Iter1 != <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end())</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; {</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.erase(Iter1, <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end());</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; }</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00476">SparseBitVector.h:476</a></div></div>
995
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
996
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_acdc2e97bfeeba3a91d8793992df9451f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">SVF::SparseBitVector::ElementListConstIter</a></div><div class="ttdeci">typename ElementList::const_iterator ElementListConstIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00466">SparseBitVector.h:466</a></div></div>
997
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a399721230d13a4153766e6e8ed1f9aed"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">SVF::SparseBitVector::ElementListIter</a></div><div class="ttdeci">typename ElementList::iterator ElementListIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00465">SparseBitVector.h:465</a></div></div>
992
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00836">836</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
993
+ <div class="fragment"><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; {</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">this</span> == &amp;RHS)</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> Iter1 = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter2 = RHS.Elements.begin();</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="comment">// Check if both bitmaps are empty.</span></div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty() &amp;&amp; RHS.Elements.empty())</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="comment">// Loop through, intersecting as we go, erasing elements when necessary.</span></div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="keywordflow">while</span> (Iter2 != RHS.Elements.end())</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; {</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="keywordflow">if</span> (Iter1 == <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end())</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; {</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; }</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keywordflow">if</span> (Iter1-&gt;index() &gt; Iter2-&gt;index())</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; {</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; ++Iter2;</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; }</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Iter1-&gt;index() == Iter2-&gt;index())</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; {</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; <span class="keywordtype">bool</span> BecameZero;</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; changed |= Iter1-&gt;intersectWith(*Iter2, BecameZero);</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="keywordflow">if</span> (BecameZero)</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; {</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> IterTmp = Iter1;</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; ++Iter1;</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.erase(IterTmp);</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; }</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; {</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; ++Iter1;</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; }</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; ++Iter2;</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; }</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; {</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> IterTmp = Iter1;</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; ++Iter1;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.erase(IterTmp);</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; }</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; }</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <span class="keywordflow">if</span> (Iter1 != <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end())</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; {</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.erase(Iter1, <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end());</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; }</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00468">SparseBitVector.h:468</a></div></div>
994
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
995
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_acdc2e97bfeeba3a91d8793992df9451f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">SVF::SparseBitVector::ElementListConstIter</a></div><div class="ttdeci">typename ElementList::const_iterator ElementListConstIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00458">SparseBitVector.h:458</a></div></div>
996
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a399721230d13a4153766e6e8ed1f9aed"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">SVF::SparseBitVector::ElementListIter</a></div><div class="ttdeci">typename ElementList::iterator ElementListIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00457">SparseBitVector.h:457</a></div></div>
998
997
  </div><!-- fragment -->
999
998
  </div>
1000
999
  </div>
@@ -1024,8 +1023,8 @@ template&lt;unsigned ElementSize = 128&gt; </div>
1024
1023
  </table>
1025
1024
  </div><div class="memdoc">
1026
1025
 
1027
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00787">787</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1028
- <div class="fragment"><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; {</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="keywordflow">return</span> !(*<span class="keyword">this</span> == RHS);</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; }</div></div><!-- fragment -->
1026
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00779">779</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1027
+ <div class="fragment"><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; {</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keywordflow">return</span> !(*<span class="keyword">this</span> == RHS);</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; }</div></div><!-- fragment -->
1029
1028
  </div>
1030
1029
  </div>
1031
1030
  <a id="adeed46c25650bdbccdef0519906d1030"></a>
@@ -1054,9 +1053,9 @@ template&lt;unsigned ElementSize = 128&gt; </div>
1054
1053
  </table>
1055
1054
  </div><div class="memdoc">
1056
1055
 
1057
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00691">691</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1058
- <div class="fragment"><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; {</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">this</span> == &amp;RHS)</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a> = RHS.Elements;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00476">SparseBitVector.h:476</a></div></div>
1059
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
1056
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00683">683</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1057
+ <div class="fragment"><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; {</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">this</span> == &amp;RHS)</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a> = RHS.Elements;</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00468">SparseBitVector.h:468</a></div></div>
1058
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
1060
1059
  </div><!-- fragment -->
1061
1060
  </div>
1062
1061
  </div>
@@ -1086,10 +1085,10 @@ template&lt;unsigned ElementSize = 128&gt; </div>
1086
1085
  </table>
1087
1086
  </div><div class="memdoc">
1088
1087
 
1089
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00700">700</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1090
- <div class="fragment"><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; {</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a> = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(RHS.Elements);</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00476">SparseBitVector.h:476</a></div></div>
1088
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00692">692</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1089
+ <div class="fragment"><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; {</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a> = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(RHS.Elements);</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00468">SparseBitVector.h:468</a></div></div>
1091
1090
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a72502f7f536418621485e90ab98c2016"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">SVF::SVFUtil::move</a></div><div class="ttdeci">constexpr std::remove_reference&lt; T &gt;::type &amp;&amp; move(T &amp;&amp;t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00657">SVFUtil.h:657</a></div></div>
1092
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
1091
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
1093
1092
  </div><!-- fragment -->
1094
1093
  </div>
1095
1094
  </div>
@@ -1119,9 +1118,9 @@ template&lt;unsigned ElementSize = 128&gt; </div>
1119
1118
  </table>
1120
1119
  </div><div class="memdoc">
1121
1120
 
1122
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00792">792</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1123
- <div class="fragment"><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; {</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter1 = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter2 = RHS.Elements.begin();</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keywordflow">for</span> (; Iter1 != <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end() &amp;&amp; Iter2 != RHS.Elements.end();</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; ++Iter1, ++Iter2)</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; {</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keywordflow">if</span> (*Iter1 != *Iter2)</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; }</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">return</span> Iter1 == <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end() &amp;&amp; Iter2 == RHS.Elements.end();</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
1124
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_acdc2e97bfeeba3a91d8793992df9451f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">SVF::SparseBitVector::ElementListConstIter</a></div><div class="ttdeci">typename ElementList::const_iterator ElementListConstIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00466">SparseBitVector.h:466</a></div></div>
1121
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00784">784</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1122
+ <div class="fragment"><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; {</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter1 = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter2 = RHS.Elements.begin();</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="keywordflow">for</span> (; Iter1 != <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end() &amp;&amp; Iter2 != RHS.Elements.end();</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; ++Iter1, ++Iter2)</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; {</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <span class="keywordflow">if</span> (*Iter1 != *Iter2)</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; }</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">return</span> Iter1 == <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end() &amp;&amp; Iter2 == RHS.Elements.end();</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
1123
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_acdc2e97bfeeba3a91d8793992df9451f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">SVF::SparseBitVector::ElementListConstIter</a></div><div class="ttdeci">typename ElementList::const_iterator ElementListConstIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00458">SparseBitVector.h:458</a></div></div>
1125
1124
  </div><!-- fragment -->
1126
1125
  </div>
1127
1126
  </div>
@@ -1151,11 +1150,11 @@ template&lt;unsigned ElementSize = 128&gt; </div>
1151
1150
  </table>
1152
1151
  </div><div class="memdoc">
1153
1152
 
1154
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00807">807</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1155
- <div class="fragment"><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; {</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">this</span> == &amp;RHS)</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> Iter1 = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter2 = RHS.Elements.begin();</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="comment">// If RHS is empty, we are done</span></div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keywordflow">if</span> (RHS.Elements.empty())</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <span class="keywordflow">while</span> (Iter2 != RHS.Elements.end())</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; {</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keywordflow">if</span> (Iter1 == <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end() || Iter1-&gt;index() &gt; Iter2-&gt;index())</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; {</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.insert(Iter1, *Iter2);</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; ++Iter2;</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; }</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Iter1-&gt;index() == Iter2-&gt;index())</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; {</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; changed |= Iter1-&gt;unionWith(*Iter2);</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; ++Iter1;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; ++Iter2;</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; }</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; {</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; ++Iter1;</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; }</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; }</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00476">SparseBitVector.h:476</a></div></div>
1156
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
1157
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_acdc2e97bfeeba3a91d8793992df9451f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">SVF::SparseBitVector::ElementListConstIter</a></div><div class="ttdeci">typename ElementList::const_iterator ElementListConstIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00466">SparseBitVector.h:466</a></div></div>
1158
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a399721230d13a4153766e6e8ed1f9aed"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">SVF::SparseBitVector::ElementListIter</a></div><div class="ttdeci">typename ElementList::iterator ElementListIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00465">SparseBitVector.h:465</a></div></div>
1153
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00799">799</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1154
+ <div class="fragment"><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; {</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">this</span> == &amp;RHS)</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> Iter1 = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> Iter2 = RHS.Elements.begin();</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <span class="comment">// If RHS is empty, we are done</span></div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">if</span> (RHS.Elements.empty())</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="keywordflow">while</span> (Iter2 != RHS.Elements.end())</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; {</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordflow">if</span> (Iter1 == <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end() || Iter1-&gt;index() &gt; Iter2-&gt;index())</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; {</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.insert(Iter1, *Iter2);</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; ++Iter2;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; }</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Iter1-&gt;index() == Iter2-&gt;index())</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; {</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; changed |= Iter1-&gt;unionWith(*Iter2);</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; ++Iter1;</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; ++Iter2;</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; }</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; {</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; ++Iter1;</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; }</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; }</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.begin();</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00468">SparseBitVector.h:468</a></div></div>
1155
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
1156
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_acdc2e97bfeeba3a91d8793992df9451f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">SVF::SparseBitVector::ElementListConstIter</a></div><div class="ttdeci">typename ElementList::const_iterator ElementListConstIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00458">SparseBitVector.h:458</a></div></div>
1157
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a399721230d13a4153766e6e8ed1f9aed"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">SVF::SparseBitVector::ElementListIter</a></div><div class="ttdeci">typename ElementList::iterator ElementListIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00457">SparseBitVector.h:457</a></div></div>
1159
1158
  </div><!-- fragment -->
1160
1159
  </div>
1161
1160
  </div>
@@ -1185,11 +1184,11 @@ template&lt;unsigned ElementSize = 128&gt; </div>
1185
1184
  </table>
1186
1185
  </div><div class="memdoc">
1187
1186
 
1188
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00724">724</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1189
- <div class="fragment"><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; {</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty())</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordtype">unsigned</span> ElementIndex = Idx / ElementSize;</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> ElementIter = <a class="code" href="classSVF_1_1SparseBitVector.html#aaac61c8dd5477ecc6e76c664bf45c0b0">FindLowerBound</a>(ElementIndex);</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="comment">// If we can&#39;t find an element that is supposed to contain this bit, there</span></div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="comment">// is nothing more to do.</span></div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="keywordflow">if</span> (ElementIter == <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end() ||</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; ElementIter-&gt;index() != ElementIndex)</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; ElementIter-&gt;reset(Idx % ElementSize);</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="comment">// When the element is zeroed out, delete it.</span></div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">if</span> (ElementIter-&gt;empty())</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; {</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; ++<a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.erase(ElementIter);</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; }</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00476">SparseBitVector.h:476</a></div></div>
1190
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_aaac61c8dd5477ecc6e76c664bf45c0b0"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#aaac61c8dd5477ecc6e76c664bf45c0b0">SVF::SparseBitVector::FindLowerBound</a></div><div class="ttdeci">ElementListIter FindLowerBound(unsigned ElementIndex)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00529">SparseBitVector.h:529</a></div></div>
1191
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
1192
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a399721230d13a4153766e6e8ed1f9aed"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">SVF::SparseBitVector::ElementListIter</a></div><div class="ttdeci">typename ElementList::iterator ElementListIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00465">SparseBitVector.h:465</a></div></div>
1187
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00716">716</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1188
+ <div class="fragment"><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; {</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty())</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="keywordtype">unsigned</span> ElementIndex = Idx / ElementSize;</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> ElementIter = <a class="code" href="classSVF_1_1SparseBitVector.html#aaac61c8dd5477ecc6e76c664bf45c0b0">FindLowerBound</a>(ElementIndex);</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="comment">// If we can&#39;t find an element that is supposed to contain this bit, there</span></div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="comment">// is nothing more to do.</span></div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">if</span> (ElementIter == <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end() ||</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; ElementIter-&gt;index() != ElementIndex)</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; ElementIter-&gt;reset(Idx % ElementSize);</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="comment">// When the element is zeroed out, delete it.</span></div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordflow">if</span> (ElementIter-&gt;empty())</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; {</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; ++<a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a>;</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.erase(ElementIter);</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; }</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00468">SparseBitVector.h:468</a></div></div>
1189
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_aaac61c8dd5477ecc6e76c664bf45c0b0"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#aaac61c8dd5477ecc6e76c664bf45c0b0">SVF::SparseBitVector::FindLowerBound</a></div><div class="ttdeci">ElementListIter FindLowerBound(unsigned ElementIndex)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00521">SparseBitVector.h:521</a></div></div>
1190
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
1191
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a399721230d13a4153766e6e8ed1f9aed"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">SVF::SparseBitVector::ElementListIter</a></div><div class="ttdeci">typename ElementList::iterator ElementListIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00457">SparseBitVector.h:457</a></div></div>
1193
1192
  </div><!-- fragment -->
1194
1193
  </div>
1195
1194
  </div>
@@ -1219,11 +1218,11 @@ template&lt;unsigned ElementSize = 128&gt; </div>
1219
1218
  </table>
1220
1219
  </div><div class="memdoc">
1221
1220
 
1222
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00747">747</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1223
- <div class="fragment"><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; {</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keywordtype">unsigned</span> ElementIndex = Idx / ElementSize;</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> ElementIter;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty())</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; {</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; ElementIter = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.emplace(<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end(), ElementIndex);</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; }</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; {</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; ElementIter = <a class="code" href="classSVF_1_1SparseBitVector.html#aaac61c8dd5477ecc6e76c664bf45c0b0">FindLowerBound</a>(ElementIndex);</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordflow">if</span> (ElementIter == <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end() ||</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; ElementIter-&gt;index() != ElementIndex)</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; {</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="comment">// We may have hit the beginning of our SparseBitVector, in which case,</span></div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="comment">// we may need to insert right after this element, which requires moving</span></div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="comment">// the current iterator forward one, because insert does insert before.</span></div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">if</span> (ElementIter != <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end() &amp;&amp;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; ElementIter-&gt;index() &lt; ElementIndex)</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; ++ElementIter;</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; ElementIter = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.emplace(ElementIter, ElementIndex);</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; }</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; }</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = ElementIter;</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; ElementIter-&gt;set(Idx % ElementSize);</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00476">SparseBitVector.h:476</a></div></div>
1224
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_aaac61c8dd5477ecc6e76c664bf45c0b0"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#aaac61c8dd5477ecc6e76c664bf45c0b0">SVF::SparseBitVector::FindLowerBound</a></div><div class="ttdeci">ElementListIter FindLowerBound(unsigned ElementIndex)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00529">SparseBitVector.h:529</a></div></div>
1225
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
1226
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a399721230d13a4153766e6e8ed1f9aed"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">SVF::SparseBitVector::ElementListIter</a></div><div class="ttdeci">typename ElementList::iterator ElementListIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00465">SparseBitVector.h:465</a></div></div>
1221
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00739">739</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1222
+ <div class="fragment"><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; {</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keywordtype">unsigned</span> ElementIndex = Idx / ElementSize;</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">ElementListIter</a> ElementIter;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty())</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; {</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; ElementIter = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.emplace(<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end(), ElementIndex);</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; }</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; {</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; ElementIter = <a class="code" href="classSVF_1_1SparseBitVector.html#aaac61c8dd5477ecc6e76c664bf45c0b0">FindLowerBound</a>(ElementIndex);</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">if</span> (ElementIter == <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end() ||</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; ElementIter-&gt;index() != ElementIndex)</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; {</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="comment">// We may have hit the beginning of our SparseBitVector, in which case,</span></div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="comment">// we may need to insert right after this element, which requires moving</span></div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="comment">// the current iterator forward one, because insert does insert before.</span></div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordflow">if</span> (ElementIter != <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end() &amp;&amp;</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; ElementIter-&gt;index() &lt; ElementIndex)</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; ++ElementIter;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; ElementIter = <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.emplace(ElementIter, ElementIndex);</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; }</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; }</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">CurrElementIter</a> = ElementIter;</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; ElementIter-&gt;set(Idx % ElementSize);</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ada7cb2e144c2fccd0d50138778b152dd"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ada7cb2e144c2fccd0d50138778b152dd">SVF::SparseBitVector::CurrElementIter</a></div><div class="ttdeci">ElementListIter CurrElementIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00468">SparseBitVector.h:468</a></div></div>
1223
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_aaac61c8dd5477ecc6e76c664bf45c0b0"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#aaac61c8dd5477ecc6e76c664bf45c0b0">SVF::SparseBitVector::FindLowerBound</a></div><div class="ttdeci">ElementListIter FindLowerBound(unsigned ElementIndex)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00521">SparseBitVector.h:521</a></div></div>
1224
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
1225
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a399721230d13a4153766e6e8ed1f9aed"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a399721230d13a4153766e6e8ed1f9aed">SVF::SparseBitVector::ElementListIter</a></div><div class="ttdeci">typename ElementList::iterator ElementListIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00457">SparseBitVector.h:457</a></div></div>
1227
1226
  </div><!-- fragment -->
1228
1227
  </div>
1229
1228
  </div>
@@ -1253,10 +1252,10 @@ template&lt;unsigned ElementSize = 128&gt; </div>
1253
1252
  </table>
1254
1253
  </div><div class="memdoc">
1255
1254
 
1256
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00708">708</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1257
- <div class="fragment"><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; {</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty())</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keywordtype">unsigned</span> ElementIndex = Idx / ElementSize;</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> ElementIter = <a class="code" href="classSVF_1_1SparseBitVector.html#ab4787f96a5f7cab926f9c7426aa92fc1">FindLowerBoundConst</a>(ElementIndex);</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="comment">// If we can&#39;t find an element that is supposed to contain this bit, there</span></div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="comment">// is nothing more to do.</span></div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="keywordflow">if</span> (ElementIter == <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end() ||</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; ElementIter-&gt;index() != ElementIndex)</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="keywordflow">return</span> ElementIter-&gt;test(Idx % ElementSize);</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ab4787f96a5f7cab926f9c7426aa92fc1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab4787f96a5f7cab926f9c7426aa92fc1">SVF::SparseBitVector::FindLowerBoundConst</a></div><div class="ttdeci">ElementListConstIter FindLowerBoundConst(unsigned ElementIndex) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00525">SparseBitVector.h:525</a></div></div>
1258
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
1259
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_acdc2e97bfeeba3a91d8793992df9451f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">SVF::SparseBitVector::ElementListConstIter</a></div><div class="ttdeci">typename ElementList::const_iterator ElementListConstIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00466">SparseBitVector.h:466</a></div></div>
1255
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00700">700</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1256
+ <div class="fragment"><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; {</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.empty())</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordtype">unsigned</span> ElementIndex = Idx / ElementSize;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">ElementListConstIter</a> ElementIter = <a class="code" href="classSVF_1_1SparseBitVector.html#ab4787f96a5f7cab926f9c7426aa92fc1">FindLowerBoundConst</a>(ElementIndex);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="comment">// If we can&#39;t find an element that is supposed to contain this bit, there</span></div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="comment">// is nothing more to do.</span></div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keywordflow">if</span> (ElementIter == <a class="code" href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">Elements</a>.end() ||</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; ElementIter-&gt;index() != ElementIndex)</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keywordflow">return</span> ElementIter-&gt;test(Idx % ElementSize);</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_ab4787f96a5f7cab926f9c7426aa92fc1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab4787f96a5f7cab926f9c7426aa92fc1">SVF::SparseBitVector::FindLowerBoundConst</a></div><div class="ttdeci">ElementListConstIter FindLowerBoundConst(unsigned ElementIndex) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00517">SparseBitVector.h:517</a></div></div>
1257
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00464">SparseBitVector.h:464</a></div></div>
1258
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_acdc2e97bfeeba3a91d8793992df9451f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#acdc2e97bfeeba3a91d8793992df9451f">SVF::SparseBitVector::ElementListConstIter</a></div><div class="ttdeci">typename ElementList::const_iterator ElementListConstIter</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00458">SparseBitVector.h:458</a></div></div>
1260
1259
  </div><!-- fragment -->
1261
1260
  </div>
1262
1261
  </div>
@@ -1286,8 +1285,8 @@ template&lt;unsigned ElementSize = 128&gt; </div>
1286
1285
  </table>
1287
1286
  </div><div class="memdoc">
1288
1287
 
1289
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00776">776</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1290
- <div class="fragment"><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; {</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordtype">bool</span> old = <a class="code" href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">test</a>(Idx);</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keywordflow">if</span> (!old)</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; {</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keyword">set</span>(Idx);</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; }</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_a112f2ede1240c95f9fe810f2882fab80"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">SVF::SparseBitVector::test</a></div><div class="ttdeci">bool test(unsigned Idx) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00708">SparseBitVector.h:708</a></div></div>
1288
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00768">768</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1289
+ <div class="fragment"><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; {</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keywordtype">bool</span> old = <a class="code" href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">test</a>(Idx);</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keywordflow">if</span> (!old)</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; {</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keyword">set</span>(Idx);</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; }</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_a112f2ede1240c95f9fe810f2882fab80"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">SVF::SparseBitVector::test</a></div><div class="ttdeci">bool test(unsigned Idx) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00700">SparseBitVector.h:700</a></div></div>
1291
1290
  </div><!-- fragment -->
1292
1291
  </div>
1293
1292
  </div>
@@ -1314,7 +1313,7 @@ template&lt;unsigned ElementSize = 128&gt; </div>
1314
1313
  </table>
1315
1314
  </div><div class="memdoc">
1316
1315
 
1317
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00476">476</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1316
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00468">468</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1318
1317
 
1319
1318
  </div>
1320
1319
  </div>
@@ -1340,7 +1339,7 @@ template&lt;unsigned ElementSize = 128&gt; </div>
1340
1339
  </table>
1341
1340
  </div><div class="memdoc">
1342
1341
 
1343
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00472">472</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1342
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l00464">464</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
1344
1343
 
1345
1344
  </div>
1346
1345
  </div>