svf-tools 1.0.890 → 1.0.892

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 (343) hide show
  1. package/SVF-doxygen/html/AbstractExecution_8cpp_source.html +451 -450
  2. package/SVF-doxygen/html/AbstractExecution_8h_source.html +11 -11
  3. package/SVF-doxygen/html/AccessPath_8cpp_source.html +150 -147
  4. package/SVF-doxygen/html/AccessPath_8h_source.html +6 -6
  5. package/SVF-doxygen/html/Andersen_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/BufOverflowChecker_8cpp_source.html +426 -425
  7. package/SVF-doxygen/html/BufOverflowChecker_8h_source.html +2 -2
  8. package/SVF-doxygen/html/CFLAlias_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/ConsG_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/CppUtil_8cpp_source.html +4 -4
  11. package/SVF-doxygen/html/CxtStmt_8h_source.html +1 -1
  12. package/SVF-doxygen/html/DCHG_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/DDAClient_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/ICFGBuilder_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/ICFGSimplification_8cpp_source.html +43 -44
  16. package/SVF-doxygen/html/ICFGWTO_8h_source.html +4 -4
  17. package/SVF-doxygen/html/ICFG_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +556 -556
  19. package/SVF-doxygen/html/LLVMModule_8h_source.html +15 -15
  20. package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +552 -525
  21. package/SVF-doxygen/html/LLVMUtil_8h.html +2 -0
  22. package/SVF-doxygen/html/LLVMUtil_8h_source.html +55 -52
  23. package/SVF-doxygen/html/LockResultValidator_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/MHP_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +1 -1
  26. package/SVF-doxygen/html/MTAResultValidator_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/ObjTypeInference_8cpp.html +1 -1
  29. package/SVF-doxygen/html/ObjTypeInference_8cpp_source.html +3 -3
  30. package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +828 -827
  32. package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +20 -20
  33. package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +7 -7
  34. package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +1 -1
  35. package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +2 -2
  36. package/SVF-doxygen/html/SVFStatements_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/SVFStatements_8h_source.html +1 -1
  38. package/SVF-doxygen/html/SVFValue_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
  40. package/SVF-doxygen/html/SVFVariables_8cpp_source.html +1 -1
  41. package/SVF-doxygen/html/Steensgaard_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +9 -9
  43. package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +1 -1
  44. package/SVF-doxygen/html/WTO_8h.html +1 -0
  45. package/SVF-doxygen/html/WTO_8h_source.html +812 -811
  46. package/SVF-doxygen/html/ae_8cpp.html +46 -47
  47. package/SVF-doxygen/html/ae_8cpp_source.html +46 -47
  48. package/SVF-doxygen/html/classSVF_1_1AEAPI.html +432 -431
  49. package/SVF-doxygen/html/classSVF_1_1AbstractExecution.html +22 -22
  50. package/SVF-doxygen/html/classSVF_1_1AccessPath.html +136 -133
  51. package/SVF-doxygen/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  52. package/SVF-doxygen/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  53. package/SVF-doxygen/html/classSVF_1_1AddrStmt.html +1 -1
  54. package/SVF-doxygen/html/classSVF_1_1AliasDDAClient.html +1 -1
  55. package/SVF-doxygen/html/classSVF_1_1Andersen.html +1 -1
  56. package/SVF-doxygen/html/classSVF_1_1BinaryOPStmt.html +1 -1
  57. package/SVF-doxygen/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  58. package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +1 -1
  59. package/SVF-doxygen/html/classSVF_1_1BufOverflowCheckerAPI.html +82 -81
  60. package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +1 -1
  61. package/SVF-doxygen/html/classSVF_1_1CallCFGEdge.html +1 -1
  62. package/SVF-doxygen/html/classSVF_1_1CallPE.html +1 -1
  63. package/SVF-doxygen/html/classSVF_1_1CmpStmt.html +1 -1
  64. package/SVF-doxygen/html/classSVF_1_1CmpVFGNode.html +1 -1
  65. package/SVF-doxygen/html/classSVF_1_1CopyStmt.html +1 -1
  66. package/SVF-doxygen/html/classSVF_1_1CxtStmt.html +1 -1
  67. package/SVF-doxygen/html/classSVF_1_1CxtThread.html +1 -1
  68. package/SVF-doxygen/html/classSVF_1_1CxtThreadStmt.html +1 -1
  69. package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +1 -1
  70. package/SVF-doxygen/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  71. package/SVF-doxygen/html/classSVF_1_1FIObjVar.html +1 -1
  72. package/SVF-doxygen/html/classSVF_1_1ForkJoinAnalysis.html +1 -1
  73. package/SVF-doxygen/html/classSVF_1_1GepObjVar.html +1 -1
  74. package/SVF-doxygen/html/classSVF_1_1GepStmt.html +2 -2
  75. package/SVF-doxygen/html/classSVF_1_1GepValVar.html +1 -1
  76. package/SVF-doxygen/html/classSVF_1_1ICFG.html +1 -1
  77. package/SVF-doxygen/html/classSVF_1_1ICFGBuilder.html +1 -1
  78. package/SVF-doxygen/html/classSVF_1_1ICFGSimplification.html +43 -44
  79. package/SVF-doxygen/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  80. package/SVF-doxygen/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  81. package/SVF-doxygen/html/classSVF_1_1IntraCFGEdge.html +1 -1
  82. package/SVF-doxygen/html/classSVF_1_1IntraICFGNode.html +1 -1
  83. package/SVF-doxygen/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  84. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +538 -538
  85. package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +1 -1
  86. package/SVF-doxygen/html/classSVF_1_1LoadStmt.html +1 -1
  87. package/SVF-doxygen/html/classSVF_1_1LockResultValidator.html +1 -1
  88. package/SVF-doxygen/html/classSVF_1_1MHP.html +1 -1
  89. package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +1 -1
  90. package/SVF-doxygen/html/classSVF_1_1MTAResultValidator.html +1 -1
  91. package/SVF-doxygen/html/classSVF_1_1MemObj.html +1 -1
  92. package/SVF-doxygen/html/classSVF_1_1MemSSA.html +1 -1
  93. package/SVF-doxygen/html/classSVF_1_1ObjTypeInference.html +3 -3
  94. package/SVF-doxygen/html/classSVF_1_1ObjVar.html +1 -1
  95. package/SVF-doxygen/html/classSVF_1_1PHIVFGNode.html +1 -1
  96. package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +1 -1
  97. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +1 -1
  98. package/SVF-doxygen/html/classSVF_1_1RaceResultValidator.html +1 -1
  99. package/SVF-doxygen/html/classSVF_1_1RetCFGEdge.html +1 -1
  100. package/SVF-doxygen/html/classSVF_1_1RetPE.html +1 -1
  101. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +792 -791
  102. package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +8 -8
  103. package/SVF-doxygen/html/classSVF_1_1SVFValue.html +23 -23
  104. package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +1 -1
  105. package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +1 -1
  106. package/SVF-doxygen/html/classSVF_1_1StoreStmt.html +1 -1
  107. package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +8 -8
  108. package/SVF-doxygen/html/classSVF_1_1TCT.html +1 -1
  109. package/SVF-doxygen/html/classSVF_1_1TDForkPE.html +1 -1
  110. package/SVF-doxygen/html/classSVF_1_1TDJoinPE.html +1 -1
  111. package/SVF-doxygen/html/classSVF_1_1UnaryOPStmt.html +1 -1
  112. package/SVF-doxygen/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  113. package/SVF-doxygen/html/classSVF_1_1ValVar.html +1 -1
  114. package/SVF-doxygen/html/classSVF_1_1WTO.html +253 -253
  115. package/SVF-doxygen/html/classSVF_1_1WTOComponent.html +21 -21
  116. package/SVF-doxygen/html/classSVF_1_1WTOComponentVisitor.html +3 -3
  117. package/SVF-doxygen/html/classSVF_1_1WTOCycle.html +61 -61
  118. package/SVF-doxygen/html/classSVF_1_1WTOCycleDepth.html +115 -115
  119. package/SVF-doxygen/html/classSVF_1_1WTONode.html +31 -31
  120. package/SVF-doxygen/html/classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html +31 -31
  121. package/SVF-doxygen/html/globals_vars.html +3 -3
  122. package/SVF-doxygen/html/globals_z.html +3 -3
  123. package/SVF-doxygen/html/namespaceSVF_1_1LLVMUtil.html +529 -483
  124. package/SVF-doxygen/html/namespaceSVF_1_1cppUtil.html +2 -2
  125. package/SVF-doxygen/html/namespacemembers_func_r.html +3 -0
  126. package/SVF-doxygen/html/namespacemembers_r.html +3 -0
  127. package/SVF-doxygen/html/search/all_11.js +54 -53
  128. package/SVF-doxygen/html/search/all_12.js +570 -570
  129. package/SVF-doxygen/html/search/all_13.js +207 -207
  130. package/SVF-doxygen/html/search/all_14.js +70 -70
  131. package/SVF-doxygen/html/search/all_15.js +176 -176
  132. package/SVF-doxygen/html/search/all_16.js +77 -77
  133. package/SVF-doxygen/html/search/all_17.js +1 -1
  134. package/SVF-doxygen/html/search/all_18.js +1 -1
  135. package/SVF-doxygen/html/search/all_19.js +26 -26
  136. package/SVF-doxygen/html/search/all_1a.js +180 -180
  137. package/SVF-doxygen/html/search/classes_0.js +29 -29
  138. package/SVF-doxygen/html/search/classes_1.js +12 -12
  139. package/SVF-doxygen/html/search/classes_10.js +74 -74
  140. package/SVF-doxygen/html/search/classes_11.js +14 -14
  141. package/SVF-doxygen/html/search/classes_12.js +2 -2
  142. package/SVF-doxygen/html/search/classes_13.js +10 -10
  143. package/SVF-doxygen/html/search/classes_14.js +19 -19
  144. package/SVF-doxygen/html/search/classes_15.js +1 -1
  145. package/SVF-doxygen/html/search/classes_2.js +73 -73
  146. package/SVF-doxygen/html/search/classes_3.js +35 -35
  147. package/SVF-doxygen/html/search/classes_4.js +8 -8
  148. package/SVF-doxygen/html/search/classes_5.js +28 -28
  149. package/SVF-doxygen/html/search/classes_6.js +98 -98
  150. package/SVF-doxygen/html/search/classes_7.js +38 -38
  151. package/SVF-doxygen/html/search/classes_8.js +59 -59
  152. package/SVF-doxygen/html/search/classes_9.js +1 -1
  153. package/SVF-doxygen/html/search/classes_a.js +12 -12
  154. package/SVF-doxygen/html/search/classes_b.js +29 -29
  155. package/SVF-doxygen/html/search/classes_c.js +6 -6
  156. package/SVF-doxygen/html/search/classes_d.js +19 -19
  157. package/SVF-doxygen/html/search/classes_e.js +36 -36
  158. package/SVF-doxygen/html/search/classes_f.js +25 -25
  159. package/SVF-doxygen/html/search/defines_0.js +3 -3
  160. package/SVF-doxygen/html/search/defines_1.js +3 -3
  161. package/SVF-doxygen/html/search/defines_10.js +2 -2
  162. package/SVF-doxygen/html/search/defines_2.js +30 -30
  163. package/SVF-doxygen/html/search/defines_3.js +20 -20
  164. package/SVF-doxygen/html/search/defines_4.js +3 -3
  165. package/SVF-doxygen/html/search/defines_5.js +4 -4
  166. package/SVF-doxygen/html/search/defines_6.js +2 -2
  167. package/SVF-doxygen/html/search/defines_7.js +5 -5
  168. package/SVF-doxygen/html/search/defines_8.js +11 -11
  169. package/SVF-doxygen/html/search/defines_9.js +9 -9
  170. package/SVF-doxygen/html/search/defines_a.js +2 -2
  171. package/SVF-doxygen/html/search/defines_b.js +1 -1
  172. package/SVF-doxygen/html/search/defines_c.js +4 -4
  173. package/SVF-doxygen/html/search/defines_d.js +2 -2
  174. package/SVF-doxygen/html/search/defines_e.js +8 -8
  175. package/SVF-doxygen/html/search/defines_f.js +4 -4
  176. package/SVF-doxygen/html/search/enums_0.js +4 -4
  177. package/SVF-doxygen/html/search/enums_1.js +2 -2
  178. package/SVF-doxygen/html/search/enums_10.js +1 -1
  179. package/SVF-doxygen/html/search/enums_11.js +1 -1
  180. package/SVF-doxygen/html/search/enums_2.js +8 -8
  181. package/SVF-doxygen/html/search/enums_3.js +1 -1
  182. package/SVF-doxygen/html/search/enums_4.js +4 -4
  183. package/SVF-doxygen/html/search/enums_5.js +1 -1
  184. package/SVF-doxygen/html/search/enums_6.js +2 -2
  185. package/SVF-doxygen/html/search/enums_7.js +2 -2
  186. package/SVF-doxygen/html/search/enums_8.js +4 -4
  187. package/SVF-doxygen/html/search/enums_9.js +1 -1
  188. package/SVF-doxygen/html/search/enums_a.js +1 -1
  189. package/SVF-doxygen/html/search/enums_b.js +7 -7
  190. package/SVF-doxygen/html/search/enums_c.js +1 -1
  191. package/SVF-doxygen/html/search/enums_d.js +4 -4
  192. package/SVF-doxygen/html/search/enums_e.js +2 -2
  193. package/SVF-doxygen/html/search/enums_f.js +4 -4
  194. package/SVF-doxygen/html/search/enumvalues_0.js +15 -15
  195. package/SVF-doxygen/html/search/enumvalues_1.js +15 -15
  196. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  197. package/SVF-doxygen/html/search/enumvalues_11.js +4 -4
  198. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  199. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  200. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  201. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  202. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  203. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  204. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  205. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  206. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  207. package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
  208. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  209. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  210. package/SVF-doxygen/html/search/enumvalues_a.js +17 -17
  211. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  212. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  213. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  214. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  215. package/SVF-doxygen/html/search/enumvalues_f.js +47 -47
  216. package/SVF-doxygen/html/search/files_0.js +16 -16
  217. package/SVF-doxygen/html/search/files_1.js +9 -9
  218. package/SVF-doxygen/html/search/files_10.js +8 -8
  219. package/SVF-doxygen/html/search/files_11.js +8 -8
  220. package/SVF-doxygen/html/search/files_12.js +2 -2
  221. package/SVF-doxygen/html/search/files_2.js +53 -53
  222. package/SVF-doxygen/html/search/files_3.js +14 -14
  223. package/SVF-doxygen/html/search/files_4.js +5 -5
  224. package/SVF-doxygen/html/search/files_5.js +13 -13
  225. package/SVF-doxygen/html/search/files_6.js +10 -10
  226. package/SVF-doxygen/html/search/files_7.js +17 -17
  227. package/SVF-doxygen/html/search/files_8.js +13 -13
  228. package/SVF-doxygen/html/search/files_9.js +18 -18
  229. package/SVF-doxygen/html/search/files_a.js +3 -3
  230. package/SVF-doxygen/html/search/files_b.js +4 -4
  231. package/SVF-doxygen/html/search/files_c.js +20 -20
  232. package/SVF-doxygen/html/search/files_d.js +4 -4
  233. package/SVF-doxygen/html/search/files_e.js +62 -62
  234. package/SVF-doxygen/html/search/files_f.js +8 -8
  235. package/SVF-doxygen/html/search/functions_0.js +13 -13
  236. package/SVF-doxygen/html/search/functions_1.js +369 -369
  237. package/SVF-doxygen/html/search/functions_10.js +140 -140
  238. package/SVF-doxygen/html/search/functions_11.js +140 -139
  239. package/SVF-doxygen/html/search/functions_12.js +299 -299
  240. package/SVF-doxygen/html/search/functions_13.js +73 -73
  241. package/SVF-doxygen/html/search/functions_14.js +41 -41
  242. package/SVF-doxygen/html/search/functions_15.js +72 -72
  243. package/SVF-doxygen/html/search/functions_16.js +38 -38
  244. package/SVF-doxygen/html/search/functions_17.js +3 -3
  245. package/SVF-doxygen/html/search/functions_18.js +180 -180
  246. package/SVF-doxygen/html/search/functions_2.js +95 -95
  247. package/SVF-doxygen/html/search/functions_3.js +261 -261
  248. package/SVF-doxygen/html/search/functions_4.js +84 -84
  249. package/SVF-doxygen/html/search/functions_5.js +57 -57
  250. package/SVF-doxygen/html/search/functions_6.js +65 -65
  251. package/SVF-doxygen/html/search/functions_7.js +863 -863
  252. package/SVF-doxygen/html/search/functions_8.js +162 -162
  253. package/SVF-doxygen/html/search/functions_9.js +439 -439
  254. package/SVF-doxygen/html/search/functions_a.js +30 -30
  255. package/SVF-doxygen/html/search/functions_b.js +2 -2
  256. package/SVF-doxygen/html/search/functions_c.js +25 -25
  257. package/SVF-doxygen/html/search/functions_d.js +82 -82
  258. package/SVF-doxygen/html/search/functions_e.js +36 -36
  259. package/SVF-doxygen/html/search/functions_f.js +58 -58
  260. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  261. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  262. package/SVF-doxygen/html/search/related_0.js +4 -4
  263. package/SVF-doxygen/html/search/related_1.js +2 -2
  264. package/SVF-doxygen/html/search/related_2.js +2 -2
  265. package/SVF-doxygen/html/search/related_3.js +2 -2
  266. package/SVF-doxygen/html/search/related_4.js +2 -2
  267. package/SVF-doxygen/html/search/related_5.js +1 -1
  268. package/SVF-doxygen/html/search/related_6.js +2 -2
  269. package/SVF-doxygen/html/search/related_7.js +5 -5
  270. package/SVF-doxygen/html/search/related_8.js +2 -2
  271. package/SVF-doxygen/html/search/related_9.js +4 -4
  272. package/SVF-doxygen/html/search/related_a.js +19 -19
  273. package/SVF-doxygen/html/search/related_b.js +4 -4
  274. package/SVF-doxygen/html/search/related_c.js +2 -2
  275. package/SVF-doxygen/html/search/related_d.js +12 -12
  276. package/SVF-doxygen/html/search/related_e.js +2 -2
  277. package/SVF-doxygen/html/search/related_f.js +2 -2
  278. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  279. package/SVF-doxygen/html/search/typedefs_1.js +27 -27
  280. package/SVF-doxygen/html/search/typedefs_10.js +63 -63
  281. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  282. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  283. package/SVF-doxygen/html/search/typedefs_13.js +40 -40
  284. package/SVF-doxygen/html/search/typedefs_14.js +11 -11
  285. package/SVF-doxygen/html/search/typedefs_2.js +125 -125
  286. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  287. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  288. package/SVF-doxygen/html/search/typedefs_5.js +42 -42
  289. package/SVF-doxygen/html/search/typedefs_6.js +54 -54
  290. package/SVF-doxygen/html/search/typedefs_7.js +47 -47
  291. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  292. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  293. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  294. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  295. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  296. package/SVF-doxygen/html/search/typedefs_d.js +15 -15
  297. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  298. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  299. package/SVF-doxygen/html/search/variables_0.js +177 -177
  300. package/SVF-doxygen/html/search/variables_1.js +76 -76
  301. package/SVF-doxygen/html/search/variables_10.js +98 -98
  302. package/SVF-doxygen/html/search/variables_11.js +46 -46
  303. package/SVF-doxygen/html/search/variables_12.js +93 -93
  304. package/SVF-doxygen/html/search/variables_13.js +76 -76
  305. package/SVF-doxygen/html/search/variables_14.js +14 -14
  306. package/SVF-doxygen/html/search/variables_15.js +49 -49
  307. package/SVF-doxygen/html/search/variables_16.js +11 -11
  308. package/SVF-doxygen/html/search/variables_17.js +1 -1
  309. package/SVF-doxygen/html/search/variables_18.js +17 -17
  310. package/SVF-doxygen/html/search/variables_2.js +41 -41
  311. package/SVF-doxygen/html/search/variables_3.js +142 -142
  312. package/SVF-doxygen/html/search/variables_4.js +51 -51
  313. package/SVF-doxygen/html/search/variables_5.js +39 -39
  314. package/SVF-doxygen/html/search/variables_6.js +66 -66
  315. package/SVF-doxygen/html/search/variables_7.js +34 -34
  316. package/SVF-doxygen/html/search/variables_8.js +8 -8
  317. package/SVF-doxygen/html/search/variables_9.js +79 -79
  318. package/SVF-doxygen/html/search/variables_a.js +4 -4
  319. package/SVF-doxygen/html/search/variables_b.js +10 -10
  320. package/SVF-doxygen/html/search/variables_c.js +45 -45
  321. package/SVF-doxygen/html/search/variables_d.js +57 -57
  322. package/SVF-doxygen/html/search/variables_e.js +123 -123
  323. package/SVF-doxygen/html/search/variables_f.js +31 -31
  324. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  325. package/SVF-doxygen/html/structSVF_1_1has__edgetype.html +1 -1
  326. package/SVF-doxygen/html/structSVF_1_1has__edgetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1EdgeType_01_4_01_4.html +1 -1
  327. package/SVF-doxygen/html/structSVF_1_1has__nodetype.html +1 -1
  328. package/SVF-doxygen/html/structSVF_1_1has__nodetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1NodeType_01_4_01_4.html +1 -1
  329. package/SVF-doxygen/html/svf-ex_8cpp.html +12 -12
  330. package/SVF-doxygen/html/svf-ex_8cpp_source.html +12 -12
  331. package/SVF-doxygen/html/svf_2include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  332. package/package.json +1 -1
  333. package/svf/include/Graphs/WTO.h +1 -0
  334. package/svf/lib/AE/Svfexe/AbstractExecution.cpp +1 -0
  335. package/svf/lib/AE/Svfexe/BufOverflowChecker.cpp +1 -0
  336. package/svf/lib/AE/Svfexe/ICFGSimplification.cpp +1 -2
  337. package/svf/lib/AE/Svfexe/SVFIR2ItvExeState.cpp +1 -0
  338. package/svf/lib/MemoryModel/AccessPath.cpp +4 -1
  339. package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +2 -0
  340. package/svf-llvm/lib/LLVMModule.cpp +3 -4
  341. package/svf-llvm/lib/LLVMUtil.cpp +29 -2
  342. package/svf-llvm/lib/SVFIRBuilder.cpp +1 -1
  343. package/svf-llvm/tools/AE/ae.cpp +1 -2
@@ -107,836 +107,837 @@ $(function() {
107
107
  <div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
108
108
  <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFType_8h.html">SVFIR/SVFType.h</a>&quot;</span></div>
109
109
  <div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFValue_8h.html">SVFIR/SVFValue.h</a>&quot;</span></div>
110
- <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
111
- <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div>
112
- <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div>
113
- <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; </div>
114
- <div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html"> 43</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span><a class="code" href="classSVF_1_1WTO.html">WTO</a>;</div>
115
- <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
116
- <div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html"> 45</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span><a class="code" href="classSVF_1_1WTONode.html">WTONode</a>;</div>
117
- <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
118
- <div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html"> 47</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span><a class="code" href="classSVF_1_1WTOCycle.html">WTOCycle</a>;</div>
119
- <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
120
- <div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponentVisitor.html"> 49</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span><a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>;</div>
121
- <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
122
- <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// Helper to test for the existence of a sub type</span></div>
123
- <div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structSVF_1_1has__nodetype.html"> 52</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keywordtype">void</span>&gt; <span class="keyword">struct </span><a class="code" href="structSVF_1_1has__nodetype.html">has_nodetype</a> : std::false_type</div>
124
- <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
125
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div>
126
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
127
- <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
128
- <div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="structSVF_1_1has__nodetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1NodeType_01_4_01_4.html"> 57</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structSVF_1_1has__nodetype.html">has_nodetype</a>&lt;T, std::<a class="code" href="namespaceSVF_1_1SVFUtil.html#ad37880353cffc950d5b9417bc41c0b06">void_t</a>&lt;typename T::NodeType&gt;&gt; : std::true_type</div>
129
- <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div>
130
- <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div>
131
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; </div>
132
- <div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="structSVF_1_1has__edgetype.html"> 61</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keywordtype">void</span>&gt; <span class="keyword">struct </span><a class="code" href="structSVF_1_1has__edgetype.html">has_edgetype</a> : std::false_type</div>
133
- <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div>
134
- <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;};</div>
135
- <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
136
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
137
- <div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="structSVF_1_1has__edgetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1EdgeType_01_4_01_4.html"> 66</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structSVF_1_1has__edgetype.html">has_edgetype</a>&lt;T, std::<a class="code" href="namespaceSVF_1_1SVFUtil.html#ad37880353cffc950d5b9417bc41c0b06">void_t</a>&lt;typename T::EdgeType&gt;&gt; : std::true_type</div>
138
- <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div>
139
- <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;};</div>
140
- <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
141
- <div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html"> 100</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span><a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a></div>
142
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div>
143
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword">public</span>:</div>
144
- <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; static_assert(<a class="code" href="structSVF_1_1has__nodetype.html">has_nodetype&lt;GraphT&gt;::value</a>,</div>
145
- <div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#ac1a815006184b8a54a1390832f929630"> 104</a></span>&#160; <span class="stringliteral">&quot;GraphT must have a nested type named &#39;NodeType&#39;&quot;</span>);</div>
146
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> GraphT::NodeType <a class="code" href="classSVF_1_1WTOCycleDepth.html#ac1a815006184b8a54a1390832f929630">NodeT</a>;</div>
147
- <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
148
- <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword">private</span>:</div>
149
- <div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#af4c6d0f992a1844aa21a6d26be66b34c"> 108</a></span>&#160; <span class="keyword">typedef</span> std::vector&lt;const NodeT*&gt; <a class="code" href="classSVF_1_1WTOCycleDepth.html#af4c6d0f992a1844aa21a6d26be66b34c">NodeRefList</a>;</div>
150
- <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
151
- <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="keyword">public</span>:</div>
152
- <div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a375803014eebb65532a843eee6d9a690"> 111</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> NodeRefList::const_iterator <a class="code" href="classSVF_1_1WTOCycleDepth.html#a375803014eebb65532a843eee6d9a690">Iterator</a>;</div>
153
- <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; </div>
154
- <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword">private</span>:</div>
155
- <div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8"> 114</a></span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html#af4c6d0f992a1844aa21a6d26be66b34c">NodeRefList</a> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8">_heads</a>;</div>
156
- <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
157
- <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword">public</span>:</div>
158
- <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html#a949e2ee782c346339a1ddaa868c8abaf">WTOCycleDepth</a>() = <span class="keywordflow">default</span>;</div>
159
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
160
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html#a949e2ee782c346339a1ddaa868c8abaf">WTOCycleDepth</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp;) = <span class="keywordflow">default</span>;</div>
161
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
162
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html#a949e2ee782c346339a1ddaa868c8abaf">WTOCycleDepth</a>(<a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp;&amp;) = <span class="keywordflow">default</span>;</div>
163
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; </div>
164
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; <a class="code" href="classSVF_1_1WTOCycleDepth.html#aeca7ef6c7cca3533d72fc8d6a5d9337c">operator=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp;) = <span class="keywordflow">default</span>;</div>
165
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
166
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; <a class="code" href="classSVF_1_1WTOCycleDepth.html#aeca7ef6c7cca3533d72fc8d6a5d9337c">operator=</a>(<a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp;&amp;) = <span class="keywordflow">default</span>;</div>
167
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
168
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html#a1208cd4c5a880905df4031bf610bd0bb">~WTOCycleDepth</a>() = <span class="keywordflow">default</span>;</div>
169
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
170
- <div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a8df436e4ff4cc9df4900c1262cc89b1c"> 136</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a8df436e4ff4cc9df4900c1262cc89b1c">add</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#ac1a815006184b8a54a1390832f929630">NodeT</a>* head)</div>
171
- <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div>
172
- <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8">_heads</a>.push_back(head);</div>
173
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div>
174
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div>
175
- <div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a"> 142</a></span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html#a375803014eebb65532a843eee6d9a690">Iterator</a> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>()<span class="keyword"> const</span></div>
176
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="keyword"> </span>{</div>
177
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8">_heads</a>.cbegin();</div>
178
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div>
179
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
180
- <div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade"> 148</a></span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html#a375803014eebb65532a843eee6d9a690">Iterator</a> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>()<span class="keyword"> const</span></div>
181
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="keyword"> </span>{</div>
182
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8">_heads</a>.cend();</div>
183
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div>
184
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; </div>
185
- <div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#ad4171d23b56c5402687bac3febb4b233"> 154</a></span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a> <a class="code" href="classSVF_1_1WTOCycleDepth.html#ad4171d23b56c5402687bac3febb4b233">operator^</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; other)<span class="keyword"> const</span></div>
186
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="keyword"> </span>{</div>
187
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a> res;</div>
188
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> this_it = <a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>(), other_it = other.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>();</div>
189
- <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; this_it != <a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>() &amp;&amp; other_it != other.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>(); ++this_it, ++other_it)</div>
190
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div>
191
- <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">if</span> (*this_it == *other_it)</div>
192
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div>
193
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; res.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a8df436e4ff4cc9df4900c1262cc89b1c">add</a>(*this_it);</div>
194
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div>
195
- <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">else</span></div>
196
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div>
197
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">break</span>;</div>
198
- <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div>
199
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div>
200
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">return</span> res;</div>
201
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div>
202
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
203
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="keyword">private</span>:</div>
204
- <div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d"> 174</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">compare</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; other)<span class="keyword"> const</span></div>
205
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="keyword"> </span>{</div>
206
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">this</span> == &amp;other)</div>
207
- <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; {</div>
208
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// equals</span></div>
209
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div>
210
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
211
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">auto</span> this_it = <a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>();</div>
212
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">auto</span> other_it = other.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>();</div>
213
- <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">while</span> (this_it != <a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>())</div>
214
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div>
215
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">if</span> (other_it == other.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>())</div>
216
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; {</div>
217
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> 1; <span class="comment">// `this` is nested within `other`</span></div>
218
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div>
219
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*this_it == *other_it)</div>
220
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div>
221
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; ++this_it;</div>
222
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; ++other_it;</div>
223
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div>
224
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">else</span></div>
225
- <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; {</div>
226
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> 2; <span class="comment">// not comparable</span></div>
227
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div>
228
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div>
229
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span> (other_it == other.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>())</div>
230
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div>
231
- <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// equals</span></div>
232
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div>
233
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">else</span></div>
234
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div>
235
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> -1; <span class="comment">// `other` is nested within `this`</span></div>
236
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div>
237
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div>
238
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; </div>
239
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="keyword">public</span>:</div>
240
- <div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a44cce3ef52a02cfe8d650e9ce079c210"> 210</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a44cce3ef52a02cfe8d650e9ce079c210">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; other)<span class="keyword"> const</span></div>
241
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="keyword"> </span>{</div>
242
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">compare</a>(other) == -1;</div>
243
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div>
244
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; </div>
245
- <div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a2e3c5007c3348083b51b0a4fa3e843b9"> 215</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a2e3c5007c3348083b51b0a4fa3e843b9">operator&lt;=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; other)<span class="keyword"> const</span></div>
246
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="keyword"> </span>{</div>
247
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">compare</a>(other) &lt;= 0;</div>
248
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div>
249
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; </div>
250
- <div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a4779ba4cfc8a0ae23d27ef9d2f3987d0"> 220</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a4779ba4cfc8a0ae23d27ef9d2f3987d0">operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; other)<span class="keyword"> const</span></div>
251
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="keyword"> </span>{</div>
252
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">compare</a>(other) == 0;</div>
253
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div>
254
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div>
255
- <div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a0aa519ff93cdab15f9324c6b05df8e47"> 225</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a0aa519ff93cdab15f9324c6b05df8e47">operator&gt;=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; other)<span class="keyword"> const</span></div>
256
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="keyword"> </span>{</div>
257
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a2e3c5007c3348083b51b0a4fa3e843b9">operator&lt;=</a>(other, *<span class="keyword">this</span>);</div>
258
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; }</div>
259
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; </div>
260
- <div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a8ca19a3f2f7e79c20c4a4f98897470c7"> 230</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a8ca19a3f2f7e79c20c4a4f98897470c7">operator&gt;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; other)<span class="keyword"> const</span></div>
261
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="keyword"> </span>{</div>
262
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">compare</a>(other) == 1;</div>
263
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div>
264
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; </div>
265
- <div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a275559cdb0fea5d06b1516c4c49da0ae"> 236</a></span>&#160; [[nodiscard]] <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a275559cdb0fea5d06b1516c4c49da0ae">toString</a>()<span class="keyword"> const</span></div>
266
- <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="keyword"> </span>{</div>
267
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
268
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; std::stringstream rawstr(str);</div>
269
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;[&quot;</span>;</div>
270
- <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>(), et = <a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>(); it != et;)</div>
271
- <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; {</div>
272
- <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; rawstr &lt;&lt; (*it)-&gt;toString();</div>
273
- <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; ++it;</div>
274
- <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span> (it != et)</div>
275
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; {</div>
276
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;, &quot;</span>;</div>
277
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div>
278
- <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div>
279
- <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;]&quot;</span>;</div>
280
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
281
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div>
282
- <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; </div>
283
- <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; </div>
284
- <div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a6053b66d1350ef6ea9a0c8095869f606"> 256</a></span>&#160; <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="classSVF_1_1WTOCycleDepth.html#a6053b66d1350ef6ea9a0c8095869f606">operator&lt;&lt;</a>(std::ostream&amp; o,</div>
285
- <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth&lt;GraphT&gt;</a>&amp; wto)</div>
286
- <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; {</div>
287
- <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; o &lt;&lt; wto.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a275559cdb0fea5d06b1516c4c49da0ae">toString</a>();</div>
288
- <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> o;</div>
289
- <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div>
290
- <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; </div>
291
- <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;}; <span class="comment">// end class WTOCycleDepth</span></div>
292
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; </div>
293
- <div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html"> 271</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span><a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a></div>
294
- <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;{</div>
295
- <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="keyword">public</span>:</div>
296
- <div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7"> 274</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7">WTOCT</a></div>
297
- <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; {</div>
298
- <div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7ae6153e626f0cd77b3560511ef845c14d"> 276</a></span>&#160; <a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7ae6153e626f0cd77b3560511ef845c14d">Node</a>,</div>
299
- <div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7a8a904539134bae644c387a317981c110"> 277</a></span>&#160; <a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7a8a904539134bae644c387a317981c110">Cycle</a></div>
300
- <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; };</div>
301
- <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; </div>
302
- <div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#a5ef3384996e29f5f38490b4266b19f01"> 281</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1WTOComponent.html#a5ef3384996e29f5f38490b4266b19f01">WTOComponent</a>(<a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7">WTOCT</a> k) : <a class="code" href="classSVF_1_1WTOComponent.html#a1da81c85c89d975b6df9dafdb32dc788">_type</a>(k) {};</div>
303
- <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; </div>
304
- <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="classSVF_1_1WTOComponent.html#a5ef3384996e29f5f38490b4266b19f01">WTOComponent</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&amp;) noexcept = <span class="keywordflow">default</span>;</div>
305
- <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; </div>
306
- <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="classSVF_1_1WTOComponent.html#a5ef3384996e29f5f38490b4266b19f01">WTOComponent</a>(<a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&amp;&amp;) noexcept = default;</div>
307
- <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; </div>
308
- <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&amp; operator=(const <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&amp;) noexcept = default;</div>
309
- <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; </div>
310
- <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&amp; operator=(<a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&amp;&amp;) noexcept = default;</div>
311
- <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; </div>
312
- <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; virtual <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTOComponent.html#a2b92d79dd17e8d89f2441c5655157b80">accept</a>(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&lt;GraphT&gt;&amp;) const = 0;</div>
313
- <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; </div>
314
- <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; virtual ~<a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>() = default;</div>
315
- <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; </div>
316
- <div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#acb129a6e7dc72b347f21325fbfe970b1"> 301</a></span>&#160; inline <a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7">WTOCT</a> <a class="code" href="classSVF_1_1WTOComponent.html#acb129a6e7dc72b347f21325fbfe970b1">getKind</a>()<span class="keyword"> const</span></div>
317
- <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="keyword"> </span>{</div>
318
- <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOComponent.html#a1da81c85c89d975b6df9dafdb32dc788">_type</a>;</div>
319
- <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div>
320
- <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; </div>
321
- <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; [[nodiscard]] <span class="keyword">virtual</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1WTOComponent.html#a149bad69eb00f216887a42ae0fb518fc">toString</a>() <span class="keyword">const</span> = 0;</div>
322
- <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; </div>
323
- <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; </div>
324
- <div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#aa14277ce617c9a01800db64cc62ef2f3"> 310</a></span>&#160; <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="classSVF_1_1WTOComponent.html#aa14277ce617c9a01800db64cc62ef2f3">operator&lt;&lt;</a>(std::ostream&amp; o,</div>
325
- <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent&lt;GraphT&gt;</a>&amp; wto)</div>
326
- <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; {</div>
327
- <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; o &lt;&lt; wto.<a class="code" href="classSVF_1_1WTOComponent.html#a149bad69eb00f216887a42ae0fb518fc">toString</a>();</div>
328
- <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">return</span> o;</div>
329
- <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div>
330
- <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; </div>
331
- <div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#a1da81c85c89d975b6df9dafdb32dc788"> 318</a></span>&#160; <a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7">WTOCT</a> <a class="code" href="classSVF_1_1WTOComponent.html#a1da81c85c89d975b6df9dafdb32dc788">_type</a>;</div>
332
- <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; </div>
333
- <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;}; <span class="comment">// end class WTOComponent</span></div>
334
- <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; </div>
335
- <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span><a class="code" href="classSVF_1_1WTONode.html">WTONode</a> final : <span class="keyword">public</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&lt;GraphT&gt;</div>
336
- <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;{</div>
337
- <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="keyword">public</span>:</div>
338
- <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; static_assert(<a class="code" href="structSVF_1_1has__nodetype.html">has_nodetype&lt;GraphT&gt;::value</a>,</div>
339
- <div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8"> 329</a></span>&#160; <span class="stringliteral">&quot;GraphT must have a nested type named &#39;NodeType&#39;&quot;</span>);</div>
340
- <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> GraphT::NodeType <a class="code" href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8">NodeT</a>;</div>
341
- <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; </div>
342
- <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="keyword">private</span>:</div>
343
- <div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9"> 333</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8">NodeT</a>* <a class="code" href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9">_node</a>;</div>
344
- <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; </div>
345
- <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="keyword">public</span>:</div>
346
- <div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#acb1c9f5fa393500a8efe9f885b1748ce"> 337</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1WTONode.html#acb1c9f5fa393500a8efe9f885b1748ce">WTONode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8">NodeT</a>* <a class="code" href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd">node</a>)</div>
347
- <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; : <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&lt;GraphT&gt;(<a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&lt;GraphT&gt;::Node), <a class="code" href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9">_node</a>(<a class="code" href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd">node</a>)</div>
348
- <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; {</div>
349
- <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div>
350
- <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; </div>
351
- <div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd"> 343</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8">NodeT</a>* <a class="code" href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd">node</a>()<span class="keyword"> const</span></div>
352
- <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="keyword"> </span>{</div>
353
- <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9">_node</a>;</div>
354
- <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div>
355
- <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; </div>
356
- <div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#a26f8f157a0661fff8d9f4f38d21a6445"> 349</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTONode.html#a26f8f157a0661fff8d9f4f38d21a6445">accept</a>(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor&lt;GraphT&gt;</a>&amp; v)<span class="keyword"> const override</span></div>
357
- <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="keyword"> </span>{</div>
358
- <div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; v.<a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(*<span class="keyword">this</span>);</div>
359
- <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; }</div>
360
- <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; </div>
361
- <div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#a9afd271657066e8f3e3ed79397780e91"> 355</a></span>&#160; [[nodiscard]] <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1WTONode.html#a9afd271657066e8f3e3ed79397780e91">toString</a>()<span class="keyword"> const override</span></div>
362
- <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="keyword"> </span>{</div>
363
- <div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="comment">// return _node-&gt;toString();</span></div>
364
- <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">return</span> std::to_string(<a class="code" href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9">_node</a>-&gt;getId());</div>
365
- <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; }</div>
366
- <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; </div>
367
- <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; </div>
368
- <div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#a3c57d30540d9cb64f1373236281e8bcd"> 363</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTONode.html#a3c57d30540d9cb64f1373236281e8bcd">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html">WTONode&lt;GraphT&gt;</a>*)</div>
369
- <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; {</div>
370
- <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
371
- <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; }</div>
372
- <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; </div>
373
- <div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#ad9eb797028c0f30b8b8899edc3fb1b2b"> 368</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTONode.html#ad9eb797028c0f30b8b8899edc3fb1b2b">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent&lt;GraphT&gt;</a>* c)</div>
374
- <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; {</div>
375
- <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">return</span> c-&gt;<a class="code" href="classSVF_1_1WTOComponent.html#acb129a6e7dc72b347f21325fbfe970b1">getKind</a>() == <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent&lt;GraphT&gt;::Node</a>;</div>
376
- <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; }</div>
377
- <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; </div>
378
- <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;}; <span class="comment">// end class WTONode</span></div>
379
- <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; </div>
380
- <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span>WTOCycle final : <span class="keyword">public</span> WTOComponent&lt;GraphT&gt;</div>
381
- <div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;{</div>
382
- <div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="keyword">public</span>:</div>
383
- <div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; static_assert(has_nodetype&lt;GraphT&gt;::value,</div>
384
- <div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55"> 383</a></span>&#160; <span class="stringliteral">&quot;GraphT must have a nested type named &#39;NodeType&#39;&quot;</span>);</div>
385
- <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> GraphT::NodeType <a class="code" href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55">NodeT</a>;</div>
386
- <div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#adaa4b0f063eaf6f1bd02da38fd3b29de"> 385</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent&lt;GraphT&gt;</a> <a class="code" href="classSVF_1_1WTOCycle.html#adaa4b0f063eaf6f1bd02da38fd3b29de">WTOComponentT</a>;</div>
387
- <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; </div>
388
- <div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="keyword">private</span>:</div>
389
- <div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#acc26c1e8e39691416b590d1a29f57c38"> 388</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponentT</a>* <a class="code" href="classSVF_1_1WTOCycle.html#acc26c1e8e39691416b590d1a29f57c38">WTOComponentPtr</a>;</div>
390
- <div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a04d7ad708faad0b6cb360e6010c21600"> 389</a></span>&#160; <span class="keyword">typedef</span> std::list&lt;WTOComponentPtr&gt; <a class="code" href="classSVF_1_1WTOCycle.html#a04d7ad708faad0b6cb360e6010c21600">WTOComponentRefList</a>;</div>
391
- <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; </div>
392
- <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="keyword">public</span>:</div>
393
- <div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#ad0a2a2bb4c2d6eafaedbf04ced31243d"> 393</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> WTOComponentRefList::const_iterator <a class="code" href="classSVF_1_1WTOCycle.html#ad0a2a2bb4c2d6eafaedbf04ced31243d">Iterator</a>;</div>
394
- <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; </div>
395
- <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="keyword">private</span>:</div>
396
- <div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66"> 397</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55">NodeT</a>* <a class="code" href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66">_head</a>;</div>
397
- <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; </div>
398
- <div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53"> 400</a></span>&#160; <a class="code" href="classSVF_1_1WTOCycle.html#a04d7ad708faad0b6cb360e6010c21600">WTOComponentRefList</a> <a class="code" href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53">_components</a>;</div>
399
- <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; </div>
400
- <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="keyword">public</span>:</div>
401
- <div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a19ad36eef78d46348ca75c5d2e12519b"> 404</a></span>&#160; <a class="code" href="classSVF_1_1WTOCycle.html#a19ad36eef78d46348ca75c5d2e12519b">WTOCycle</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55">NodeT</a>* <a class="code" href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079">head</a>, <a class="code" href="classSVF_1_1WTOCycle.html#a04d7ad708faad0b6cb360e6010c21600">WTOComponentRefList</a> components)</div>
402
- <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; : <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&lt;GraphT&gt;(<a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&lt;GraphT&gt;::Cycle), <a class="code" href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66">_head</a>(<a class="code" href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079">head</a>),</div>
403
- <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <a class="code" href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53">_components</a>(std::<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">move</a>(components))</div>
404
- <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; {</div>
405
- <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; }</div>
406
- <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; </div>
407
- <div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079"> 411</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55">NodeT</a>* <a class="code" href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079">head</a>()<span class="keyword"> const</span></div>
408
- <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="keyword"> </span>{</div>
409
- <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66">_head</a>;</div>
410
- <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; }</div>
411
- <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; </div>
412
- <div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a807c883d1cfe98c791c903125742f95b"> 417</a></span>&#160; <a class="code" href="classSVF_1_1WTOCycle.html#ad0a2a2bb4c2d6eafaedbf04ced31243d">Iterator</a> <a class="code" href="classSVF_1_1WTOCycle.html#a807c883d1cfe98c791c903125742f95b">begin</a>()<span class="keyword"> const</span></div>
413
- <div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="keyword"> </span>{</div>
414
- <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53">_components</a>.cbegin();</div>
415
- <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div>
416
- <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; </div>
417
- <div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a03fd55dd34c48d22cefcaf6dc93f734a"> 423</a></span>&#160; <a class="code" href="classSVF_1_1WTOCycle.html#ad0a2a2bb4c2d6eafaedbf04ced31243d">Iterator</a> <a class="code" href="classSVF_1_1WTOCycle.html#a03fd55dd34c48d22cefcaf6dc93f734a">end</a>()<span class="keyword"> const</span></div>
418
- <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="keyword"> </span>{</div>
419
- <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53">_components</a>.cend();</div>
420
- <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; }</div>
421
- <div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; </div>
422
- <div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#acb7a52e66c5ef16f01cf6b7637578fcd"> 429</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTOCycle.html#acb7a52e66c5ef16f01cf6b7637578fcd">accept</a>(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor&lt;GraphT&gt;</a>&amp; v)<span class="keyword"> const override</span></div>
423
- <div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="keyword"> </span>{</div>
424
- <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; v.<a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(*<span class="keyword">this</span>);</div>
425
- <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; }</div>
426
- <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; </div>
427
- <div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; </div>
428
- <div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#adf52b9a57bcfb16d0e538f15677ed9fa"> 436</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycle.html#adf52b9a57bcfb16d0e538f15677ed9fa">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycle&lt;GraphT&gt;</a>*)</div>
429
- <div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; {</div>
430
- <div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
431
- <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div>
432
- <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; </div>
433
- <div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a0033d1b904ba3a6f77648174166c9250"> 441</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycle.html#a0033d1b904ba3a6f77648174166c9250">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent&lt;GraphT&gt;</a>* c)</div>
434
- <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; {</div>
435
- <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">return</span> c-&gt;<a class="code" href="classSVF_1_1WTOComponent.html#acb129a6e7dc72b347f21325fbfe970b1">getKind</a>() == <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent&lt;GraphT&gt;::Cycle</a>;</div>
436
- <div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; }</div>
437
- <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; </div>
438
- <div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a5ecefd827cf83b86839fb3ac300f86b7"> 448</a></span>&#160; [[nodiscard]] <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1WTOCycle.html#a5ecefd827cf83b86839fb3ac300f86b7">toString</a>()<span class="keyword"> const override</span></div>
439
- <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="keyword"> </span>{</div>
440
- <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
441
- <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; std::stringstream rawstr(str);</div>
442
- <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;(&quot;</span>;</div>
443
- <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66">_head</a>-&gt;getId() &lt;&lt; <span class="stringliteral">&quot;, &quot;</span>;</div>
444
- <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1WTOCycle.html#a807c883d1cfe98c791c903125742f95b">begin</a>(), et = <a class="code" href="classSVF_1_1WTOCycle.html#a03fd55dd34c48d22cefcaf6dc93f734a">end</a>(); it != et;)</div>
445
- <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; {</div>
446
- <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; rawstr &lt;&lt; (*it)-&gt;toString();</div>
447
- <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; ++it;</div>
448
- <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">if</span> (it != et)</div>
449
- <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; {</div>
450
- <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;, &quot;</span>;</div>
451
- <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; }</div>
452
- <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; }</div>
453
- <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div>
454
- <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
455
- <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; }</div>
456
- <div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; </div>
457
- <div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;}; <span class="comment">// end class WTOCycle</span></div>
458
- <div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; </div>
459
- <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span>WTOComponentVisitor</div>
460
- <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;{</div>
461
- <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="keyword">public</span>:</div>
462
- <div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponentVisitor.html#a873b7e2a4166cb6a5b48a63dbafa295d"> 475</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTONode.html">WTONode&lt;GraphT&gt;</a> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a873b7e2a4166cb6a5b48a63dbafa295d">WTONodeT</a>;</div>
463
- <div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponentVisitor.html#a978324f9b276a9d086b9e7a12feac997"> 476</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycle&lt;GraphT&gt;</a> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a978324f9b276a9d086b9e7a12feac997">WTOCycleT</a>;</div>
464
- <div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; </div>
465
- <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="keyword">public</span>:</div>
466
- <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a829bc3b32dcb5740da40c5cff75680d9">WTOComponentVisitor</a>() = <span class="keywordflow">default</span>;</div>
467
- <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; </div>
468
- <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a829bc3b32dcb5740da40c5cff75680d9">WTOComponentVisitor</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&amp;) noexcept = <span class="keywordflow">default</span>;</div>
469
- <div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; </div>
470
- <div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a829bc3b32dcb5740da40c5cff75680d9">WTOComponentVisitor</a>(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&amp;&amp;) noexcept = default;</div>
471
- <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; </div>
472
- <div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&amp; operator=(const <a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&amp;) noexcept =</div>
473
- <div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; default;</div>
474
- <div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; </div>
475
- <div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&amp; operator=(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&amp;&amp;) noexcept = default;</div>
476
- <div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; </div>
477
- <div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; virtual <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(const <a class="code" href="classSVF_1_1WTONode.html">WTONodeT</a>&amp;) = 0;</div>
478
- <div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; </div>
479
- <div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; virtual <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(const <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>&amp;) = 0;</div>
480
- <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; </div>
481
- <div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; virtual ~<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>() = default;</div>
482
- <div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; </div>
483
- <div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;}; <span class="comment">// end class WTOComponentVisitor</span></div>
484
- <div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; </div>
485
- <div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;template &lt;typename GraphT&gt; class <a class="code" href="classSVF_1_1WTO.html">WTO</a></div>
486
- <div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;{</div>
487
- <div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; </div>
488
- <div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="keyword">public</span>:</div>
489
- <div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; static_assert(<a class="code" href="structSVF_1_1has__nodetype.html">has_nodetype&lt;GraphT&gt;::value</a>,</div>
490
- <div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a78e43eb435fb7f5ee47670f10c6e67f2"> 514</a></span>&#160; <span class="stringliteral">&quot;GraphT must have a nested type named &#39;NodeType&#39;&quot;</span>);</div>
491
- <div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; static_assert(<a class="code" href="structSVF_1_1has__edgetype.html">has_edgetype&lt;GraphT&gt;::value</a>,</div>
492
- <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="stringliteral">&quot;GraphT must have a nested type named &#39;EdgeType&#39;&quot;</span>);</div>
493
- <div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> GraphT::NodeType <a class="code" href="classSVF_1_1WTO.html#a78e43eb435fb7f5ee47670f10c6e67f2">NodeT</a>;</div>
494
- <div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a620d528ac72c17913b462acedb8e88c3"> 518</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> GraphT::EdgeType <a class="code" href="classSVF_1_1WTO.html#a620d528ac72c17913b462acedb8e88c3">EdgeT</a>;</div>
495
- <div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ae2cde12ccd4206b7ace44bc2146c792e"> 519</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth&lt;GraphT&gt;</a> <a class="code" href="classSVF_1_1WTO.html#ae2cde12ccd4206b7ace44bc2146c792e">GraphTWTOCycleDepth</a>;</div>
496
- <div class="line"><a name="l00520"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a43bd515dd7ea9ae1f56b79d29cfdc00c"> 520</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent&lt;GraphT&gt;</a> <a class="code" href="classSVF_1_1WTO.html#a43bd515dd7ea9ae1f56b79d29cfdc00c">WTOComponentT</a>;</div>
497
- <div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a96f37d843d4bd7c2b30cfc5bc59cf90d"> 521</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTONode.html">WTONode&lt;GraphT&gt;</a> <a class="code" href="classSVF_1_1WTO.html#a96f37d843d4bd7c2b30cfc5bc59cf90d">WTONodeT</a>;</div>
498
- <div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a71a0d4afca77f59db4829c7b39419429"> 522</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycle&lt;GraphT&gt;</a> <a class="code" href="classSVF_1_1WTO.html#a71a0d4afca77f59db4829c7b39419429">WTOCycleT</a>;</div>
499
- <div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a7be430782b325bbb92d9fd014e9c68c0"> 523</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const NodeT*&gt;</a> <a class="code" href="classSVF_1_1WTO.html#a7be430782b325bbb92d9fd014e9c68c0">NodeRefList</a>;</div>
500
- <div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; </div>
501
- <div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="keyword">protected</span>:</div>
502
- <div class="line"><a name="l00526"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a15ecb3d149a88c93318133314d010954"> 526</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponentT</a>* <a class="code" href="classSVF_1_1WTO.html#a15ecb3d149a88c93318133314d010954">WTOComponentPtr</a>;</div>
503
- <div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9"> 527</a></span>&#160; <span class="keyword">typedef</span> std::list&lt;WTOComponentPtr&gt; <a class="code" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">WTOComponentRefList</a>;</div>
504
- <div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a928688b5f1e2111311262ccd936b1ca9"> 528</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;WTOComponentPtr&gt;</a> <a class="code" href="classSVF_1_1WTO.html#a928688b5f1e2111311262ccd936b1ca9">WTOComponentRefSet</a>;</div>
505
- <div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a9103af81d0c21787dcc96188ea243d0a"> 529</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const NodeT*, const WTOCycleT*&gt;</a> <a class="code" href="classSVF_1_1WTO.html#a9103af81d0c21787dcc96188ea243d0a">NodeRefToWTOCycleMap</a>;</div>
506
- <div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ae652de9cb9fca45b8cb6c08606d7971a"> 530</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const NodeT*, NodeRefList&gt;</a> <a class="code" href="classSVF_1_1WTO.html#ae652de9cb9fca45b8cb6c08606d7971a">NodeRefTONodeRefListMap</a>;</div>
507
- <div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; </div>
508
- <div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7"> 532</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a>;</div>
509
- <div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a93a5b48c93dc4f01f50040e71c5aeada"> 533</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const NodeT*, CycleDepthNumber&gt;</a> <a class="code" href="classSVF_1_1WTO.html#a93a5b48c93dc4f01f50040e71c5aeada">NodeRefToCycleDepthNumber</a>;</div>
510
- <div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ab35eabe45c6b944b26532fbe630cd019"> 534</a></span>&#160; <span class="keyword">typedef</span> std::vector&lt;const NodeT*&gt; <a class="code" href="classSVF_1_1WTO.html#ab35eabe45c6b944b26532fbe630cd019">Stack</a>;</div>
511
- <div class="line"><a name="l00535"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a8022c9a6ebc62ed292698f07ab93bafe"> 535</a></span>&#160; <span class="keyword">typedef</span> std::shared_ptr&lt;GraphTWTOCycleDepth&gt; <a class="code" href="classSVF_1_1WTO.html#a8022c9a6ebc62ed292698f07ab93bafe">WTOCycleDepthPtr</a>;</div>
512
- <div class="line"><a name="l00536"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b"> 536</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const NodeT*, WTOCycleDepthPtr&gt;</a> <a class="code" href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b">NodeRefToWTOCycleDepthPtr</a>;</div>
513
- <div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; </div>
514
- <div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="keyword">public</span>:</div>
515
- <div class="line"><a name="l00540"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a49ea9544fc55c3de1b3aebde1ba69470"> 540</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> WTOComponentRefList::const_iterator <a class="code" href="classSVF_1_1WTO.html#a49ea9544fc55c3de1b3aebde1ba69470">Iterator</a>;</div>
516
- <div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; </div>
517
- <div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="keyword">protected</span>:</div>
518
- <div class="line"><a name="l00543"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#acbc503aa22e6d9bf2f6406fc45ebbab1"> 543</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">WTOComponentRefList</a> <a class="code" href="classSVF_1_1WTO.html#acbc503aa22e6d9bf2f6406fc45ebbab1">_components</a>;</div>
519
- <div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a649f1a93b6fd51553f6e144f2fe99542"> 544</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a928688b5f1e2111311262ccd936b1ca9">WTOComponentRefSet</a> <a class="code" href="classSVF_1_1WTO.html#a649f1a93b6fd51553f6e144f2fe99542">_allComponents</a>;</div>
520
- <div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a5752288fb686b9ef5d6c8edc0cee6348"> 545</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a9103af81d0c21787dcc96188ea243d0a">NodeRefToWTOCycleMap</a> <a class="code" href="classSVF_1_1WTO.html#a5752288fb686b9ef5d6c8edc0cee6348">headRefToCycle</a>;</div>
521
- <div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ab6eebbf5ab6f6c3ee157e22da10620e9"> 546</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b">NodeRefToWTOCycleDepthPtr</a> <a class="code" href="classSVF_1_1WTO.html#ab6eebbf5ab6f6c3ee157e22da10620e9">_nodeToDepth</a>;</div>
522
- <div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a54d8c25df36b0c44d52369c4294a1ed8"> 547</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a93a5b48c93dc4f01f50040e71c5aeada">NodeRefToCycleDepthNumber</a> <a class="code" href="classSVF_1_1WTO.html#a54d8c25df36b0c44d52369c4294a1ed8">_nodeToCDN</a>;</div>
523
- <div class="line"><a name="l00548"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#af3e699fe03e5072f057cf162aefe8c12"> 548</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> <a class="code" href="classSVF_1_1WTO.html#af3e699fe03e5072f057cf162aefe8c12">_num</a>;</div>
524
- <div class="line"><a name="l00549"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a333df66435d9c4444ff7f729ca9d0050"> 549</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#ab35eabe45c6b944b26532fbe630cd019">Stack</a> <a class="code" href="classSVF_1_1WTO.html#a333df66435d9c4444ff7f729ca9d0050">_stack</a>;</div>
525
- <div class="line"><a name="l00550"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ae8e57cc333199bc8b5aaff0a825eed47"> 550</a></span>&#160; GraphT* <a class="code" href="classSVF_1_1WTO.html#ae8e57cc333199bc8b5aaff0a825eed47">_graph</a>;</div>
526
- <div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a5853e7a33044635877b8f07de05ff047"> 551</a></span>&#160; <span class="keyword">const</span> NodeT* <a class="code" href="classSVF_1_1WTO.html#a5853e7a33044635877b8f07de05ff047">_entry</a>;</div>
527
- <div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; </div>
528
- <div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="keyword">public</span>:</div>
529
- <div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; </div>
530
- <div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a7757a14d821963ad5ee03da0b542f8fb"> 556</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1WTO.html#a7757a14d821963ad5ee03da0b542f8fb">WTO</a>(GraphT* graph, <span class="keyword">const</span> NodeT* entry) : _num(0), _graph(graph), _entry(entry)</div>
531
- <div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; {</div>
532
- <div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; }</div>
533
- <div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; </div>
534
- <div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <a class="code" href="classSVF_1_1WTO.html">WTO</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html">WTO</a>&amp; other) = <span class="keywordflow">default</span>;</div>
535
- <div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; </div>
536
- <div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <a class="code" href="classSVF_1_1WTO.html">WTO</a>(<a class="code" href="classSVF_1_1WTO.html">WTO</a>&amp;&amp; other) = <span class="keywordflow">default</span>;</div>
537
- <div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; </div>
538
- <div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <a class="code" href="classSVF_1_1WTO.html">WTO</a>&amp; <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a2f5ba04581b5771dd083aa799329e43b">operator=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html">WTO</a>&amp; other) = <span class="keywordflow">default</span>;</div>
539
- <div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; </div>
540
- <div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <a class="code" href="classSVF_1_1WTO.html">WTO</a>&amp; <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a2f5ba04581b5771dd083aa799329e43b">operator=</a>(<a class="code" href="classSVF_1_1WTO.html">WTO</a>&amp;&amp; other) = <span class="keywordflow">default</span>;</div>
541
- <div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; </div>
542
- <div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a78828eb753f5a27848256d383cf57b5e"> 573</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a78828eb753f5a27848256d383cf57b5e">~WTO</a>()</div>
543
- <div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; {</div>
544
- <div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; component : _allComponents)</div>
545
- <div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; {</div>
546
- <div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keyword">delete</span> component;</div>
547
- <div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; }</div>
548
- <div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; }</div>
549
- <div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; </div>
550
- <div class="line"><a name="l00583"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a13e9082913aa4a14065687ccdd47642d"> 583</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a49ea9544fc55c3de1b3aebde1ba69470">Iterator</a> <a class="code" href="classSVF_1_1WTO.html#a13e9082913aa4a14065687ccdd47642d">begin</a>()<span class="keyword"> const</span></div>
551
- <div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="keyword"> </span>{</div>
552
- <div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">return</span> _components.cbegin();</div>
553
- <div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; }</div>
554
- <div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; </div>
555
- <div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a22b67a51964cb1d7882aab7e74b026f2"> 589</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a49ea9544fc55c3de1b3aebde1ba69470">Iterator</a> <a class="code" href="classSVF_1_1WTO.html#a22b67a51964cb1d7882aab7e74b026f2">end</a>()<span class="keyword"> const</span></div>
556
- <div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="keyword"> </span>{</div>
557
- <div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">return</span> _components.cend();</div>
558
- <div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; }</div>
559
- <div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; </div>
560
- <div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a605c2cb15b3c3ff2581d5f2d0a4719a7"> 594</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTO.html#a605c2cb15b3c3ff2581d5f2d0a4719a7">isHead</a>(<span class="keyword">const</span> NodeT* node)<span class="keyword"> const</span></div>
561
- <div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="keyword"> </span>{</div>
562
- <div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">return</span> headRefToCycle.find(node) != headRefToCycle.end();</div>
563
- <div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; }</div>
564
- <div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; </div>
565
- <div class="line"><a name="l00599"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a62a6ee6d3894861a0fb74309d2951e16"> 599</a></span>&#160; <span class="keyword">typename</span> NodeRefToWTOCycleMap::const_iterator <a class="code" href="classSVF_1_1WTO.html#a62a6ee6d3894861a0fb74309d2951e16">headBegin</a>()<span class="keyword"> const</span></div>
566
- <div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;<span class="keyword"> </span>{</div>
567
- <div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordflow">return</span> headRefToCycle.cbegin();</div>
568
- <div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; }</div>
569
- <div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; </div>
570
- <div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ace35f97608d342cae7cda7936816f624"> 605</a></span>&#160; <span class="keyword">typename</span> NodeRefToWTOCycleMap::const_iterator <a class="code" href="classSVF_1_1WTO.html#ace35f97608d342cae7cda7936816f624">headEnd</a>()<span class="keyword"> const</span></div>
571
- <div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="keyword"> </span>{</div>
572
- <div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">return</span> headRefToCycle.cend();</div>
573
- <div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; }</div>
574
- <div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; </div>
575
- <div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#aa50fbcbff0e3aa30bce2ba1b810e8ca8"> 611</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">GraphTWTOCycleDepth</a>&amp; <a class="code" href="classSVF_1_1WTO.html#aa50fbcbff0e3aa30bce2ba1b810e8ca8">cycleDepth</a>(<span class="keyword">const</span> NodeT* <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div>
576
- <div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="keyword"> </span>{</div>
577
- <div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="keyword">auto</span> it = _nodeToDepth.find(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
578
- <div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; assert(it != _nodeToDepth.end() &amp;&amp; <span class="stringliteral">&quot;node not found&quot;</span>);</div>
579
- <div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keywordflow">return</span> *(it-&gt;second);</div>
580
- <div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; }</div>
581
- <div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; </div>
582
- <div class="line"><a name="l00619"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a1e331c472a19616ccef9f8230a8724fb"> 619</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTO.html#a1e331c472a19616ccef9f8230a8724fb">in_cycleDepth_table</a>(<span class="keyword">const</span> NodeT* <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div>
583
- <div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="keyword"> </span>{</div>
584
- <div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keyword">auto</span> it = _nodeToDepth.find(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
585
- <div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordflow">return</span> it != _nodeToDepth.end();</div>
586
- <div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; }</div>
587
- <div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; </div>
588
- <div class="line"><a name="l00626"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#af2ac6543be66a6ca5911f49f16c341c4"> 626</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#af2ac6543be66a6ca5911f49f16c341c4">accept</a>(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor&lt;GraphT&gt;</a>&amp; v)</div>
589
- <div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; {</div>
590
- <div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; c : _components)</div>
591
- <div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; {</div>
592
- <div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; c-&gt;accept(v);</div>
593
- <div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; }</div>
594
- <div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; }</div>
595
- <div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; </div>
596
- <div class="line"><a name="l00635"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a2245875350c4a72f826d998f02f5e796"> 635</a></span>&#160; [[nodiscard]] <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1WTO.html#a2245875350c4a72f826d998f02f5e796">toString</a>()<span class="keyword"> const</span></div>
597
- <div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;<span class="keyword"> </span>{</div>
598
- <div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
599
- <div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; std::stringstream rawstr(str);</div>
600
- <div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;[&quot;</span>;</div>
601
- <div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = begin(), et = end(); it != et;)</div>
602
- <div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; {</div>
603
- <div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; rawstr &lt;&lt; (*it)-&gt;toString();</div>
604
- <div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; ++it;</div>
605
- <div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">if</span> (it != et)</div>
606
- <div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; {</div>
607
- <div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;, &quot;</span>;</div>
608
- <div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; }</div>
609
- <div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; }</div>
610
- <div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;]&quot;</span>;</div>
611
- <div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
612
- <div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; }</div>
613
- <div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; </div>
614
- <div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; </div>
615
- <div class="line"><a name="l00655"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a9342328c10f51f56290b61e06851f30d"> 655</a></span>&#160; <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="classSVF_1_1WTO.html#a9342328c10f51f56290b61e06851f30d">operator&lt;&lt;</a>(std::ostream&amp; o, <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html">WTO&lt;GraphT&gt;</a>&amp; wto)</div>
616
- <div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; {</div>
617
- <div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; o &lt;&lt; wto.<a class="code" href="classSVF_1_1WTO.html#a2245875350c4a72f826d998f02f5e796">toString</a>();</div>
618
- <div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keywordflow">return</span> o;</div>
619
- <div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; }</div>
620
- <div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; </div>
621
- <div class="line"><a name="l00662"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a12d50323eaa2d40925699232beb37747"> 662</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#a12d50323eaa2d40925699232beb37747">init</a>()</div>
622
- <div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; {</div>
623
- <div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(_entry, _components);</div>
624
- <div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; _nodeToCDN.clear();</div>
625
- <div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; _stack.clear();</div>
626
- <div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; buildNodeToDepth();</div>
627
- <div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; }</div>
628
- <div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; </div>
629
- <div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="keyword">protected</span>:</div>
630
- <div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; </div>
631
- <div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html"> 673</a></span>&#160; <span class="keyword">class </span><a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html">WTOCycleDepthBuilder</a> final : <span class="keyword">public</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&lt;GraphT&gt;</div>
632
- <div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; {</div>
633
- <div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keyword">private</span>:</div>
634
- <div class="line"><a name="l00676"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#ad40b8e78a27207b8cf113517aed6dca3"> 676</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a8022c9a6ebc62ed292698f07ab93bafe">WTOCycleDepthPtr</a> <a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#ad40b8e78a27207b8cf113517aed6dca3">_wtoCycleDepth</a>;</div>
635
- <div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a853dc3f6646858f76de023925d9d6bce"> 677</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b">NodeRefToWTOCycleDepthPtr</a>&amp; <a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a853dc3f6646858f76de023925d9d6bce">_nodeToWTOCycleDepth</a>;</div>
636
- <div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; </div>
637
- <div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keyword">public</span>:</div>
638
- <div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a6cf986992bb78e6e3aa2e75b883c01c9"> 680</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a6cf986992bb78e6e3aa2e75b883c01c9">WTOCycleDepthBuilder</a>(</div>
639
- <div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <a class="code" href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b">NodeRefToWTOCycleDepthPtr</a>&amp; nodeToWTOCycleDepth)</div>
640
- <div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; : _wtoCycleDepth(std::make_shared&lt;<a class="code" href="classSVF_1_1WTOCycleDepth.html">GraphTWTOCycleDepth</a>&gt;()),</div>
641
- <div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; _nodeToWTOCycleDepth(nodeToWTOCycleDepth)</div>
642
- <div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; {</div>
643
- <div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; }</div>
644
- <div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; </div>
645
- <div class="line"><a name="l00687"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#aad99b0e8004bb36b9a4ba81ea16c5d90"> 687</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#aad99b0e8004bb36b9a4ba81ea16c5d90">visit</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>&amp; cycle)<span class="keyword"> override</span></div>
646
- <div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="keyword"> </span>{</div>
647
- <div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html#a78e43eb435fb7f5ee47670f10c6e67f2">NodeT</a>* head = cycle.<a class="code" href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079">head</a>();</div>
648
- <div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <a class="code" href="classSVF_1_1WTO.html#a8022c9a6ebc62ed292698f07ab93bafe">WTOCycleDepthPtr</a> previous_cycleDepth = _wtoCycleDepth;</div>
649
- <div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; _nodeToWTOCycleDepth.insert(std::make_pair(head, _wtoCycleDepth));</div>
650
- <div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; _wtoCycleDepth =</div>
651
- <div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; std::make_shared&lt;GraphTWTOCycleDepth&gt;(*_wtoCycleDepth);</div>
652
- <div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; _wtoCycleDepth-&gt;add(head);</div>
653
- <div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = cycle.<a class="code" href="classSVF_1_1WTOCycle.html#a807c883d1cfe98c791c903125742f95b">begin</a>(), et = cycle.<a class="code" href="classSVF_1_1WTOCycle.html#a03fd55dd34c48d22cefcaf6dc93f734a">end</a>(); it != et; ++it)</div>
654
- <div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; {</div>
655
- <div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; (*it)-&gt;accept(*<span class="keyword">this</span>);</div>
656
- <div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; }</div>
657
- <div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; _wtoCycleDepth = previous_cycleDepth;</div>
658
- <div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; }</div>
659
- <div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; </div>
660
- <div class="line"><a name="l00702"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a51be6e437a0d715e2571242c4dde1794"> 702</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a51be6e437a0d715e2571242c4dde1794">visit</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html">WTONodeT</a>&amp; node)<span class="keyword"> override</span></div>
661
- <div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="keyword"> </span>{</div>
662
- <div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; _nodeToWTOCycleDepth.insert(</div>
663
- <div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; std::make_pair(node.<a class="code" href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd">node</a>(), _wtoCycleDepth));</div>
664
- <div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; }</div>
665
- <div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; </div>
666
- <div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; }; <span class="comment">// end class WTOCycleDepthBuilder</span></div>
667
- <div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; </div>
668
- <div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;<span class="keyword">protected</span>:</div>
669
- <div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; </div>
670
- <div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a65d2ed9e7306392ce0b82ac018f0cdea"> 712</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#a65d2ed9e7306392ce0b82ac018f0cdea">forEachSuccessor</a>(<span class="keyword">const</span> NodeT* node, std::function&lt;<span class="keywordtype">void</span>(<span class="keyword">const</span> NodeT*)&gt; func)<span class="keyword"> const</span></div>
671
- <div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;<span class="keyword"> </span>{</div>
672
- <div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; e : node-&gt;getOutEdges())</div>
673
- <div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; {</div>
674
- <div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; func(e-&gt;getDstNode());</div>
675
- <div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; }</div>
676
- <div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; }</div>
677
- <div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; </div>
678
- <div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;<span class="keyword">protected</span>:</div>
679
- <div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a92034688db3f67feb6e997d4c03f769f"> 722</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> <a class="code" href="classSVF_1_1WTO.html#a92034688db3f67feb6e997d4c03f769f">getCDN</a>(<span class="keyword">const</span> NodeT* <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div>
680
- <div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;<span class="keyword"> </span>{</div>
681
- <div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keyword">auto</span> it = _nodeToCDN.find(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
682
- <div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keywordflow">if</span> (it != _nodeToCDN.end())</div>
683
- <div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; {</div>
684
- <div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
685
- <div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; }</div>
686
- <div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">else</span></div>
687
- <div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; {</div>
688
- <div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordflow">return</span> 0;</div>
689
- <div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; }</div>
690
- <div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; }</div>
691
- <div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; </div>
692
- <div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a7fc78de450f2cb6cbed8aa6856638ad1"> 736</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#a7fc78de450f2cb6cbed8aa6856638ad1">setCDN</a>(<span class="keyword">const</span> NodeT* <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>, <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a>&amp; dfn)</div>
693
- <div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; {</div>
694
- <div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keyword">auto</span> res = _nodeToCDN.insert(std::make_pair(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>, dfn));</div>
695
- <div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordflow">if</span> (!res.second)</div>
696
- <div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; {</div>
697
- <div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; (res.first)-&gt;second = dfn;</div>
698
- <div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; }</div>
699
- <div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; }</div>
700
- <div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; </div>
701
- <div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ae6655b82c9137b960eac07631897de82"> 746</a></span>&#160; <span class="keyword">const</span> NodeT* <a class="code" href="classSVF_1_1WTO.html#ae6655b82c9137b960eac07631897de82">pop</a>()</div>
702
- <div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; {</div>
703
- <div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; assert(!_stack.empty() &amp;&amp; <span class="stringliteral">&quot;empty stack&quot;</span>);</div>
704
- <div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keyword">const</span> NodeT* top = _stack.back();</div>
705
- <div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; _stack.pop_back();</div>
706
- <div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">return</span> top;</div>
707
- <div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; }</div>
708
- <div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; </div>
709
- <div class="line"><a name="l00755"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a9a67c7812a890ee4ff9cd470f947bf86"> 755</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#a9a67c7812a890ee4ff9cd470f947bf86">push</a>(<span class="keyword">const</span> NodeT* <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div>
710
- <div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; {</div>
711
- <div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; _stack.push_back(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
712
- <div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; }</div>
713
- <div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; </div>
714
- <div class="line"><a name="l00760"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a2ce51d9a57e8a353aa23d14dce933c9a"> 760</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html">WTONodeT</a>* <a class="code" href="classSVF_1_1WTO.html#a2ce51d9a57e8a353aa23d14dce933c9a">newNode</a>(<span class="keyword">const</span> NodeT* node)</div>
715
- <div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; {</div>
716
- <div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html">WTONodeT</a>* ptr = <span class="keyword">new</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a873b7e2a4166cb6a5b48a63dbafa295d">WTONodeT</a>(node);</div>
717
- <div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; _allComponents.insert(ptr);</div>
718
- <div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keywordflow">return</span> ptr;</div>
719
- <div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; }</div>
720
- <div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; </div>
721
- <div class="line"><a name="l00767"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#aee55e23a1994d4daa29f21a608a1ca69"> 767</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>* <a class="code" href="classSVF_1_1WTO.html#aee55e23a1994d4daa29f21a608a1ca69">newCycle</a>(<span class="keyword">const</span> NodeT* node,</div>
722
- <div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">WTOComponentRefList</a>&amp; partition)</div>
723
- <div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; {</div>
724
- <div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>* ptr = <span class="keyword">new</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a978324f9b276a9d086b9e7a12feac997">WTOCycleT</a>(node, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(partition));</div>
725
- <div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; _allComponents.insert(ptr);</div>
726
- <div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keywordflow">return</span> ptr;</div>
727
- <div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; }</div>
728
- <div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; </div>
729
- <div class="line"><a name="l00776"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a8dc175362f4dbbf158e1fe03745f1ce7"> 776</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>* <a class="code" href="classSVF_1_1WTO.html#a8dc175362f4dbbf158e1fe03745f1ce7">component</a>(<span class="keyword">const</span> NodeT* node)</div>
730
- <div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; {</div>
731
- <div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <a class="code" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">WTOComponentRefList</a> partition;</div>
732
- <div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; forEachSuccessor(node, [&amp;](<span class="keyword">const</span> NodeT* succ)</div>
733
- <div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; {</div>
734
- <div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keywordflow">if</span> (getCDN(succ) == 0)</div>
735
- <div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; {</div>
736
- <div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(succ, partition);</div>
737
- <div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; }</div>
738
- <div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; });</div>
739
- <div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>* ptr = newCycle(node, partition);</div>
740
- <div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; headRefToCycle.emplace(node, ptr);</div>
741
- <div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="keywordflow">return</span> ptr;</div>
742
- <div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; }</div>
743
- <div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; </div>
744
- <div class="line"><a name="l00794"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a56259113c30312e5052d0d8c0d4d6b77"> 794</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> <a class="code" href="classSVF_1_1WTO.html#a56259113c30312e5052d0d8c0d4d6b77">visit</a>(<span class="keyword">const</span> NodeT* node,</div>
745
- <div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <a class="code" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">WTOComponentRefList</a>&amp; partition)</div>
746
- <div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; {</div>
747
- <div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> head(0);</div>
748
- <div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> min(0);</div>
749
- <div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordtype">bool</span> loop;</div>
750
- <div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; </div>
751
- <div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; push(node);</div>
752
- <div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; _num += <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a>(1);</div>
753
- <div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; head = _num;</div>
754
- <div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; setCDN(node, head);</div>
755
- <div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; loop = <span class="keyword">false</span>;</div>
756
- <div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; forEachSuccessor(node, [&amp;](<span class="keyword">const</span> NodeT* succ)</div>
757
- <div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; {</div>
758
- <div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> succ_dfn = getCDN(succ);</div>
759
- <div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">if</span> (succ_dfn == <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a>(0))</div>
760
- <div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; {</div>
761
- <div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; min = <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(succ, partition);</div>
762
- <div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; }</div>
763
- <div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="keywordflow">else</span></div>
764
- <div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; {</div>
765
- <div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; min = succ_dfn;</div>
766
- <div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; }</div>
767
- <div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keywordflow">if</span> (min &lt;= head)</div>
768
- <div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; {</div>
769
- <div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; head = min;</div>
770
- <div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; loop = <span class="keyword">true</span>;</div>
771
- <div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; }</div>
772
- <div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; });</div>
773
- <div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; </div>
774
- <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keywordflow">if</span> (head == getCDN(node))</div>
775
- <div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; {</div>
776
- <div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; setCDN(node, UINT_MAX);</div>
777
- <div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keyword">const</span> NodeT* element = pop();</div>
778
- <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keywordflow">if</span> (loop)</div>
779
- <div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; {</div>
780
- <div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="keywordflow">while</span> (element != node)</div>
781
- <div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; {</div>
782
- <div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; setCDN(element, 0);</div>
783
- <div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; element = pop();</div>
784
- <div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; }</div>
785
- <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; partition.push_front(component(node));</div>
786
- <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; }</div>
787
- <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <span class="keywordflow">else</span></div>
788
- <div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; {</div>
789
- <div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; partition.push_front(newNode(node));</div>
790
- <div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; }</div>
791
- <div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; }</div>
792
- <div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <span class="keywordflow">return</span> head;</div>
793
- <div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; }</div>
794
- <div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; </div>
795
- <div class="line"><a name="l00846"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#abf8ab42831098184ce972aa6664fcb8a"> 846</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#abf8ab42831098184ce972aa6664fcb8a">buildNodeToDepth</a>()</div>
796
- <div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; {</div>
797
- <div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; WTOCycleDepthBuilder builder(_nodeToDepth);</div>
798
- <div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = begin(), et = end(); it != et; ++it)</div>
799
- <div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; {</div>
800
- <div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; (*it)-&gt;accept(builder);</div>
801
- <div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; }</div>
802
- <div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; }</div>
803
- <div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; </div>
804
- <div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;}; <span class="comment">// end class WTO</span></div>
805
- <div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; </div>
806
- <div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;} <span class="comment">// namespace SVF</span></div>
807
- <div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; </div>
808
- <div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* WTO_H_ */</span><span class="preprocessor"></span></div>
110
+ <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div>
111
+ <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
112
+ <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div>
113
+ <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div>
114
+ <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
115
+ <div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html"> 44</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span><a class="code" href="classSVF_1_1WTO.html">WTO</a>;</div>
116
+ <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
117
+ <div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html"> 46</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span><a class="code" href="classSVF_1_1WTONode.html">WTONode</a>;</div>
118
+ <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
119
+ <div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html"> 48</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span><a class="code" href="classSVF_1_1WTOCycle.html">WTOCycle</a>;</div>
120
+ <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
121
+ <div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponentVisitor.html"> 50</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span><a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>;</div>
122
+ <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
123
+ <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// Helper to test for the existence of a sub type</span></div>
124
+ <div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structSVF_1_1has__nodetype.html"> 53</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keywordtype">void</span>&gt; <span class="keyword">struct </span><a class="code" href="structSVF_1_1has__nodetype.html">has_nodetype</a> : std::false_type</div>
125
+ <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div>
126
+ <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;};</div>
127
+ <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
128
+ <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
129
+ <div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="structSVF_1_1has__nodetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1NodeType_01_4_01_4.html"> 58</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structSVF_1_1has__nodetype.html">has_nodetype</a>&lt;T, std::<a class="code" href="namespaceSVF_1_1SVFUtil.html#ad37880353cffc950d5b9417bc41c0b06">void_t</a>&lt;typename T::NodeType&gt;&gt; : std::true_type</div>
130
+ <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div>
131
+ <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;};</div>
132
+ <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
133
+ <div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structSVF_1_1has__edgetype.html"> 62</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keywordtype">void</span>&gt; <span class="keyword">struct </span><a class="code" href="structSVF_1_1has__edgetype.html">has_edgetype</a> : std::false_type</div>
134
+ <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div>
135
+ <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;};</div>
136
+ <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
137
+ <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
138
+ <div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structSVF_1_1has__edgetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1EdgeType_01_4_01_4.html"> 67</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structSVF_1_1has__edgetype.html">has_edgetype</a>&lt;T, std::<a class="code" href="namespaceSVF_1_1SVFUtil.html#ad37880353cffc950d5b9417bc41c0b06">void_t</a>&lt;typename T::EdgeType&gt;&gt; : std::true_type</div>
139
+ <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div>
140
+ <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div>
141
+ <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
142
+ <div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html"> 101</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span><a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a></div>
143
+ <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;{</div>
144
+ <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keyword">public</span>:</div>
145
+ <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; static_assert(<a class="code" href="structSVF_1_1has__nodetype.html">has_nodetype&lt;GraphT&gt;::value</a>,</div>
146
+ <div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#ac1a815006184b8a54a1390832f929630"> 105</a></span>&#160; <span class="stringliteral">&quot;GraphT must have a nested type named &#39;NodeType&#39;&quot;</span>);</div>
147
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> GraphT::NodeType <a class="code" href="classSVF_1_1WTOCycleDepth.html#ac1a815006184b8a54a1390832f929630">NodeT</a>;</div>
148
+ <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
149
+ <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword">private</span>:</div>
150
+ <div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#af4c6d0f992a1844aa21a6d26be66b34c"> 109</a></span>&#160; <span class="keyword">typedef</span> std::vector&lt;const NodeT*&gt; <a class="code" href="classSVF_1_1WTOCycleDepth.html#af4c6d0f992a1844aa21a6d26be66b34c">NodeRefList</a>;</div>
151
+ <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
152
+ <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keyword">public</span>:</div>
153
+ <div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a375803014eebb65532a843eee6d9a690"> 112</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> NodeRefList::const_iterator <a class="code" href="classSVF_1_1WTOCycleDepth.html#a375803014eebb65532a843eee6d9a690">Iterator</a>;</div>
154
+ <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
155
+ <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword">private</span>:</div>
156
+ <div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8"> 115</a></span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html#af4c6d0f992a1844aa21a6d26be66b34c">NodeRefList</a> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8">_heads</a>;</div>
157
+ <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
158
+ <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="keyword">public</span>:</div>
159
+ <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html#a949e2ee782c346339a1ddaa868c8abaf">WTOCycleDepth</a>() = <span class="keywordflow">default</span>;</div>
160
+ <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
161
+ <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html#a949e2ee782c346339a1ddaa868c8abaf">WTOCycleDepth</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp;) = <span class="keywordflow">default</span>;</div>
162
+ <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
163
+ <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html#a949e2ee782c346339a1ddaa868c8abaf">WTOCycleDepth</a>(<a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp;&amp;) = <span class="keywordflow">default</span>;</div>
164
+ <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
165
+ <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; <a class="code" href="classSVF_1_1WTOCycleDepth.html#aeca7ef6c7cca3533d72fc8d6a5d9337c">operator=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp;) = <span class="keywordflow">default</span>;</div>
166
+ <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
167
+ <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; <a class="code" href="classSVF_1_1WTOCycleDepth.html#aeca7ef6c7cca3533d72fc8d6a5d9337c">operator=</a>(<a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp;&amp;) = <span class="keywordflow">default</span>;</div>
168
+ <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
169
+ <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html#a1208cd4c5a880905df4031bf610bd0bb">~WTOCycleDepth</a>() = <span class="keywordflow">default</span>;</div>
170
+ <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
171
+ <div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a8df436e4ff4cc9df4900c1262cc89b1c"> 137</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a8df436e4ff4cc9df4900c1262cc89b1c">add</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#ac1a815006184b8a54a1390832f929630">NodeT</a>* head)</div>
172
+ <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; {</div>
173
+ <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8">_heads</a>.push_back(head);</div>
174
+ <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
175
+ <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; </div>
176
+ <div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a"> 143</a></span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html#a375803014eebb65532a843eee6d9a690">Iterator</a> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>()<span class="keyword"> const</span></div>
177
+ <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="keyword"> </span>{</div>
178
+ <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8">_heads</a>.cbegin();</div>
179
+ <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div>
180
+ <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; </div>
181
+ <div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade"> 149</a></span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html#a375803014eebb65532a843eee6d9a690">Iterator</a> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>()<span class="keyword"> const</span></div>
182
+ <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="keyword"> </span>{</div>
183
+ <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8">_heads</a>.cend();</div>
184
+ <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div>
185
+ <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
186
+ <div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#ad4171d23b56c5402687bac3febb4b233"> 155</a></span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a> <a class="code" href="classSVF_1_1WTOCycleDepth.html#ad4171d23b56c5402687bac3febb4b233">operator^</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; other)<span class="keyword"> const</span></div>
187
+ <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keyword"> </span>{</div>
188
+ <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a> res;</div>
189
+ <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> this_it = <a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>(), other_it = other.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>();</div>
190
+ <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; this_it != <a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>() &amp;&amp; other_it != other.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>(); ++this_it, ++other_it)</div>
191
+ <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; {</div>
192
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span> (*this_it == *other_it)</div>
193
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div>
194
+ <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; res.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a8df436e4ff4cc9df4900c1262cc89b1c">add</a>(*this_it);</div>
195
+ <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div>
196
+ <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">else</span></div>
197
+ <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; {</div>
198
+ <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">break</span>;</div>
199
+ <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div>
200
+ <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div>
201
+ <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">return</span> res;</div>
202
+ <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div>
203
+ <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; </div>
204
+ <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="keyword">private</span>:</div>
205
+ <div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d"> 175</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">compare</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; other)<span class="keyword"> const</span></div>
206
+ <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="keyword"> </span>{</div>
207
+ <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">this</span> == &amp;other)</div>
208
+ <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; {</div>
209
+ <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// equals</span></div>
210
+ <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div>
211
+ <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; </div>
212
+ <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">auto</span> this_it = <a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>();</div>
213
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">auto</span> other_it = other.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>();</div>
214
+ <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">while</span> (this_it != <a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>())</div>
215
+ <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; {</div>
216
+ <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span> (other_it == other.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>())</div>
217
+ <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div>
218
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> 1; <span class="comment">// `this` is nested within `other`</span></div>
219
+ <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div>
220
+ <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*this_it == *other_it)</div>
221
+ <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; {</div>
222
+ <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; ++this_it;</div>
223
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; ++other_it;</div>
224
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div>
225
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">else</span></div>
226
+ <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div>
227
+ <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">return</span> 2; <span class="comment">// not comparable</span></div>
228
+ <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div>
229
+ <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div>
230
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">if</span> (other_it == other.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>())</div>
231
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div>
232
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// equals</span></div>
233
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div>
234
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">else</span></div>
235
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div>
236
+ <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> -1; <span class="comment">// `other` is nested within `this`</span></div>
237
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div>
238
+ <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div>
239
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; </div>
240
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="keyword">public</span>:</div>
241
+ <div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a44cce3ef52a02cfe8d650e9ce079c210"> 211</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a44cce3ef52a02cfe8d650e9ce079c210">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; other)<span class="keyword"> const</span></div>
242
+ <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="keyword"> </span>{</div>
243
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">compare</a>(other) == -1;</div>
244
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div>
245
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; </div>
246
+ <div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a2e3c5007c3348083b51b0a4fa3e843b9"> 216</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a2e3c5007c3348083b51b0a4fa3e843b9">operator&lt;=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; other)<span class="keyword"> const</span></div>
247
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="keyword"> </span>{</div>
248
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">compare</a>(other) &lt;= 0;</div>
249
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div>
250
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; </div>
251
+ <div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a4779ba4cfc8a0ae23d27ef9d2f3987d0"> 221</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a4779ba4cfc8a0ae23d27ef9d2f3987d0">operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; other)<span class="keyword"> const</span></div>
252
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="keyword"> </span>{</div>
253
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">compare</a>(other) == 0;</div>
254
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div>
255
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; </div>
256
+ <div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a0aa519ff93cdab15f9324c6b05df8e47"> 226</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a0aa519ff93cdab15f9324c6b05df8e47">operator&gt;=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; other)<span class="keyword"> const</span></div>
257
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="keyword"> </span>{</div>
258
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a2e3c5007c3348083b51b0a4fa3e843b9">operator&lt;=</a>(other, *<span class="keyword">this</span>);</div>
259
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div>
260
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
261
+ <div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a8ca19a3f2f7e79c20c4a4f98897470c7"> 231</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a8ca19a3f2f7e79c20c4a4f98897470c7">operator&gt;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&amp; other)<span class="keyword"> const</span></div>
262
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="keyword"> </span>{</div>
263
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">compare</a>(other) == 1;</div>
264
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div>
265
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; </div>
266
+ <div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a275559cdb0fea5d06b1516c4c49da0ae"> 237</a></span>&#160; [[nodiscard]] <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a275559cdb0fea5d06b1516c4c49da0ae">toString</a>()<span class="keyword"> const</span></div>
267
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="keyword"> </span>{</div>
268
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
269
+ <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; std::stringstream rawstr(str);</div>
270
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;[&quot;</span>;</div>
271
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>(), et = <a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>(); it != et;)</div>
272
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; {</div>
273
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; rawstr &lt;&lt; (*it)-&gt;toString();</div>
274
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; ++it;</div>
275
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">if</span> (it != et)</div>
276
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div>
277
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;, &quot;</span>;</div>
278
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div>
279
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div>
280
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;]&quot;</span>;</div>
281
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
282
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div>
283
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; </div>
284
+ <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; </div>
285
+ <div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a6053b66d1350ef6ea9a0c8095869f606"> 257</a></span>&#160; <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="classSVF_1_1WTOCycleDepth.html#a6053b66d1350ef6ea9a0c8095869f606">operator&lt;&lt;</a>(std::ostream&amp; o,</div>
286
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth&lt;GraphT&gt;</a>&amp; wto)</div>
287
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; {</div>
288
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; o &lt;&lt; wto.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a275559cdb0fea5d06b1516c4c49da0ae">toString</a>();</div>
289
+ <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">return</span> o;</div>
290
+ <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</div>
291
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; </div>
292
+ <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;}; <span class="comment">// end class WTOCycleDepth</span></div>
293
+ <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; </div>
294
+ <div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html"> 272</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span><a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a></div>
295
+ <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;{</div>
296
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="keyword">public</span>:</div>
297
+ <div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7"> 275</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7">WTOCT</a></div>
298
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; {</div>
299
+ <div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7ae6153e626f0cd77b3560511ef845c14d"> 277</a></span>&#160; <a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7ae6153e626f0cd77b3560511ef845c14d">Node</a>,</div>
300
+ <div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7a8a904539134bae644c387a317981c110"> 278</a></span>&#160; <a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7a8a904539134bae644c387a317981c110">Cycle</a></div>
301
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; };</div>
302
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; </div>
303
+ <div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#a5ef3384996e29f5f38490b4266b19f01"> 282</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1WTOComponent.html#a5ef3384996e29f5f38490b4266b19f01">WTOComponent</a>(<a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7">WTOCT</a> k) : <a class="code" href="classSVF_1_1WTOComponent.html#a1da81c85c89d975b6df9dafdb32dc788">_type</a>(k) {};</div>
304
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; </div>
305
+ <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="classSVF_1_1WTOComponent.html#a5ef3384996e29f5f38490b4266b19f01">WTOComponent</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&amp;) noexcept = <span class="keywordflow">default</span>;</div>
306
+ <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; </div>
307
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="classSVF_1_1WTOComponent.html#a5ef3384996e29f5f38490b4266b19f01">WTOComponent</a>(<a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&amp;&amp;) noexcept = default;</div>
308
+ <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; </div>
309
+ <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&amp; operator=(const <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&amp;) noexcept = default;</div>
310
+ <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; </div>
311
+ <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&amp; operator=(<a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&amp;&amp;) noexcept = default;</div>
312
+ <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; </div>
313
+ <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; virtual <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTOComponent.html#a2b92d79dd17e8d89f2441c5655157b80">accept</a>(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&lt;GraphT&gt;&amp;) const = 0;</div>
314
+ <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; </div>
315
+ <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; virtual ~<a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>() = default;</div>
316
+ <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; </div>
317
+ <div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#acb129a6e7dc72b347f21325fbfe970b1"> 302</a></span>&#160; inline <a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7">WTOCT</a> <a class="code" href="classSVF_1_1WTOComponent.html#acb129a6e7dc72b347f21325fbfe970b1">getKind</a>()<span class="keyword"> const</span></div>
318
+ <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="keyword"> </span>{</div>
319
+ <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOComponent.html#a1da81c85c89d975b6df9dafdb32dc788">_type</a>;</div>
320
+ <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div>
321
+ <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; </div>
322
+ <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; [[nodiscard]] <span class="keyword">virtual</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1WTOComponent.html#a149bad69eb00f216887a42ae0fb518fc">toString</a>() <span class="keyword">const</span> = 0;</div>
323
+ <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; </div>
324
+ <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; </div>
325
+ <div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#aa14277ce617c9a01800db64cc62ef2f3"> 311</a></span>&#160; <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="classSVF_1_1WTOComponent.html#aa14277ce617c9a01800db64cc62ef2f3">operator&lt;&lt;</a>(std::ostream&amp; o,</div>
326
+ <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent&lt;GraphT&gt;</a>&amp; wto)</div>
327
+ <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div>
328
+ <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; o &lt;&lt; wto.<a class="code" href="classSVF_1_1WTOComponent.html#a149bad69eb00f216887a42ae0fb518fc">toString</a>();</div>
329
+ <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">return</span> o;</div>
330
+ <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div>
331
+ <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; </div>
332
+ <div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#a1da81c85c89d975b6df9dafdb32dc788"> 319</a></span>&#160; <a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7">WTOCT</a> <a class="code" href="classSVF_1_1WTOComponent.html#a1da81c85c89d975b6df9dafdb32dc788">_type</a>;</div>
333
+ <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; </div>
334
+ <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;}; <span class="comment">// end class WTOComponent</span></div>
335
+ <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; </div>
336
+ <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span><a class="code" href="classSVF_1_1WTONode.html">WTONode</a> final : <span class="keyword">public</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&lt;GraphT&gt;</div>
337
+ <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;{</div>
338
+ <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="keyword">public</span>:</div>
339
+ <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; static_assert(<a class="code" href="structSVF_1_1has__nodetype.html">has_nodetype&lt;GraphT&gt;::value</a>,</div>
340
+ <div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8"> 330</a></span>&#160; <span class="stringliteral">&quot;GraphT must have a nested type named &#39;NodeType&#39;&quot;</span>);</div>
341
+ <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> GraphT::NodeType <a class="code" href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8">NodeT</a>;</div>
342
+ <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; </div>
343
+ <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="keyword">private</span>:</div>
344
+ <div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9"> 334</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8">NodeT</a>* <a class="code" href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9">_node</a>;</div>
345
+ <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; </div>
346
+ <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="keyword">public</span>:</div>
347
+ <div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#acb1c9f5fa393500a8efe9f885b1748ce"> 338</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1WTONode.html#acb1c9f5fa393500a8efe9f885b1748ce">WTONode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8">NodeT</a>* <a class="code" href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd">node</a>)</div>
348
+ <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; : <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&lt;GraphT&gt;(<a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&lt;GraphT&gt;::Node), <a class="code" href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9">_node</a>(<a class="code" href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd">node</a>)</div>
349
+ <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; {</div>
350
+ <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div>
351
+ <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; </div>
352
+ <div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd"> 344</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8">NodeT</a>* <a class="code" href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd">node</a>()<span class="keyword"> const</span></div>
353
+ <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="keyword"> </span>{</div>
354
+ <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9">_node</a>;</div>
355
+ <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div>
356
+ <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; </div>
357
+ <div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#a26f8f157a0661fff8d9f4f38d21a6445"> 350</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTONode.html#a26f8f157a0661fff8d9f4f38d21a6445">accept</a>(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor&lt;GraphT&gt;</a>&amp; v)<span class="keyword"> const override</span></div>
358
+ <div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="keyword"> </span>{</div>
359
+ <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; v.<a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(*<span class="keyword">this</span>);</div>
360
+ <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div>
361
+ <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; </div>
362
+ <div class="line"><a name="l00356"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#a9afd271657066e8f3e3ed79397780e91"> 356</a></span>&#160; [[nodiscard]] <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1WTONode.html#a9afd271657066e8f3e3ed79397780e91">toString</a>()<span class="keyword"> const override</span></div>
363
+ <div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="keyword"> </span>{</div>
364
+ <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="comment">// return _node-&gt;toString();</span></div>
365
+ <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">return</span> std::to_string(<a class="code" href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9">_node</a>-&gt;getId());</div>
366
+ <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div>
367
+ <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; </div>
368
+ <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; </div>
369
+ <div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#a3c57d30540d9cb64f1373236281e8bcd"> 364</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTONode.html#a3c57d30540d9cb64f1373236281e8bcd">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html">WTONode&lt;GraphT&gt;</a>*)</div>
370
+ <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; {</div>
371
+ <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
372
+ <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div>
373
+ <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; </div>
374
+ <div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#ad9eb797028c0f30b8b8899edc3fb1b2b"> 369</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTONode.html#ad9eb797028c0f30b8b8899edc3fb1b2b">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent&lt;GraphT&gt;</a>* c)</div>
375
+ <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div>
376
+ <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">return</span> c-&gt;<a class="code" href="classSVF_1_1WTOComponent.html#acb129a6e7dc72b347f21325fbfe970b1">getKind</a>() == <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent&lt;GraphT&gt;::Node</a>;</div>
377
+ <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; }</div>
378
+ <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; </div>
379
+ <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;}; <span class="comment">// end class WTONode</span></div>
380
+ <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; </div>
381
+ <div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span>WTOCycle final : <span class="keyword">public</span> WTOComponent&lt;GraphT&gt;</div>
382
+ <div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;{</div>
383
+ <div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="keyword">public</span>:</div>
384
+ <div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; static_assert(has_nodetype&lt;GraphT&gt;::value,</div>
385
+ <div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55"> 384</a></span>&#160; <span class="stringliteral">&quot;GraphT must have a nested type named &#39;NodeType&#39;&quot;</span>);</div>
386
+ <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> GraphT::NodeType <a class="code" href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55">NodeT</a>;</div>
387
+ <div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#adaa4b0f063eaf6f1bd02da38fd3b29de"> 386</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent&lt;GraphT&gt;</a> <a class="code" href="classSVF_1_1WTOCycle.html#adaa4b0f063eaf6f1bd02da38fd3b29de">WTOComponentT</a>;</div>
388
+ <div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; </div>
389
+ <div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="keyword">private</span>:</div>
390
+ <div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#acc26c1e8e39691416b590d1a29f57c38"> 389</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponentT</a>* <a class="code" href="classSVF_1_1WTOCycle.html#acc26c1e8e39691416b590d1a29f57c38">WTOComponentPtr</a>;</div>
391
+ <div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a04d7ad708faad0b6cb360e6010c21600"> 390</a></span>&#160; <span class="keyword">typedef</span> std::list&lt;WTOComponentPtr&gt; <a class="code" href="classSVF_1_1WTOCycle.html#a04d7ad708faad0b6cb360e6010c21600">WTOComponentRefList</a>;</div>
392
+ <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; </div>
393
+ <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="keyword">public</span>:</div>
394
+ <div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#ad0a2a2bb4c2d6eafaedbf04ced31243d"> 394</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> WTOComponentRefList::const_iterator <a class="code" href="classSVF_1_1WTOCycle.html#ad0a2a2bb4c2d6eafaedbf04ced31243d">Iterator</a>;</div>
395
+ <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; </div>
396
+ <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="keyword">private</span>:</div>
397
+ <div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66"> 398</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55">NodeT</a>* <a class="code" href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66">_head</a>;</div>
398
+ <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; </div>
399
+ <div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53"> 401</a></span>&#160; <a class="code" href="classSVF_1_1WTOCycle.html#a04d7ad708faad0b6cb360e6010c21600">WTOComponentRefList</a> <a class="code" href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53">_components</a>;</div>
400
+ <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; </div>
401
+ <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="keyword">public</span>:</div>
402
+ <div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a19ad36eef78d46348ca75c5d2e12519b"> 405</a></span>&#160; <a class="code" href="classSVF_1_1WTOCycle.html#a19ad36eef78d46348ca75c5d2e12519b">WTOCycle</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55">NodeT</a>* <a class="code" href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079">head</a>, <a class="code" href="classSVF_1_1WTOCycle.html#a04d7ad708faad0b6cb360e6010c21600">WTOComponentRefList</a> components)</div>
403
+ <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; : <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&lt;GraphT&gt;(<a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&lt;GraphT&gt;::Cycle), <a class="code" href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66">_head</a>(<a class="code" href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079">head</a>),</div>
404
+ <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53">_components</a>(std::<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">move</a>(components))</div>
405
+ <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; {</div>
406
+ <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; }</div>
407
+ <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; </div>
408
+ <div class="line"><a name="l00412"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079"> 412</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55">NodeT</a>* <a class="code" href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079">head</a>()<span class="keyword"> const</span></div>
409
+ <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="keyword"> </span>{</div>
410
+ <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66">_head</a>;</div>
411
+ <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; }</div>
412
+ <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; </div>
413
+ <div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a807c883d1cfe98c791c903125742f95b"> 418</a></span>&#160; <a class="code" href="classSVF_1_1WTOCycle.html#ad0a2a2bb4c2d6eafaedbf04ced31243d">Iterator</a> <a class="code" href="classSVF_1_1WTOCycle.html#a807c883d1cfe98c791c903125742f95b">begin</a>()<span class="keyword"> const</span></div>
414
+ <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="keyword"> </span>{</div>
415
+ <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53">_components</a>.cbegin();</div>
416
+ <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div>
417
+ <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; </div>
418
+ <div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a03fd55dd34c48d22cefcaf6dc93f734a"> 424</a></span>&#160; <a class="code" href="classSVF_1_1WTOCycle.html#ad0a2a2bb4c2d6eafaedbf04ced31243d">Iterator</a> <a class="code" href="classSVF_1_1WTOCycle.html#a03fd55dd34c48d22cefcaf6dc93f734a">end</a>()<span class="keyword"> const</span></div>
419
+ <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="keyword"> </span>{</div>
420
+ <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53">_components</a>.cend();</div>
421
+ <div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; }</div>
422
+ <div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; </div>
423
+ <div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#acb7a52e66c5ef16f01cf6b7637578fcd"> 430</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTOCycle.html#acb7a52e66c5ef16f01cf6b7637578fcd">accept</a>(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor&lt;GraphT&gt;</a>&amp; v)<span class="keyword"> const override</span></div>
424
+ <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="keyword"> </span>{</div>
425
+ <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; v.<a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(*<span class="keyword">this</span>);</div>
426
+ <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div>
427
+ <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; </div>
428
+ <div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; </div>
429
+ <div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#adf52b9a57bcfb16d0e538f15677ed9fa"> 437</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycle.html#adf52b9a57bcfb16d0e538f15677ed9fa">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycle&lt;GraphT&gt;</a>*)</div>
430
+ <div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; {</div>
431
+ <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
432
+ <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; }</div>
433
+ <div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; </div>
434
+ <div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a0033d1b904ba3a6f77648174166c9250"> 442</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycle.html#a0033d1b904ba3a6f77648174166c9250">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent&lt;GraphT&gt;</a>* c)</div>
435
+ <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; {</div>
436
+ <div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">return</span> c-&gt;<a class="code" href="classSVF_1_1WTOComponent.html#acb129a6e7dc72b347f21325fbfe970b1">getKind</a>() == <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent&lt;GraphT&gt;::Cycle</a>;</div>
437
+ <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div>
438
+ <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; </div>
439
+ <div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a5ecefd827cf83b86839fb3ac300f86b7"> 449</a></span>&#160; [[nodiscard]] <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1WTOCycle.html#a5ecefd827cf83b86839fb3ac300f86b7">toString</a>()<span class="keyword"> const override</span></div>
440
+ <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="keyword"> </span>{</div>
441
+ <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
442
+ <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; std::stringstream rawstr(str);</div>
443
+ <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;(&quot;</span>;</div>
444
+ <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66">_head</a>-&gt;getId() &lt;&lt; <span class="stringliteral">&quot;, &quot;</span>;</div>
445
+ <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1WTOCycle.html#a807c883d1cfe98c791c903125742f95b">begin</a>(), et = <a class="code" href="classSVF_1_1WTOCycle.html#a03fd55dd34c48d22cefcaf6dc93f734a">end</a>(); it != et;)</div>
446
+ <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; {</div>
447
+ <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; rawstr &lt;&lt; (*it)-&gt;toString();</div>
448
+ <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; ++it;</div>
449
+ <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">if</span> (it != et)</div>
450
+ <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; {</div>
451
+ <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;, &quot;</span>;</div>
452
+ <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; }</div>
453
+ <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div>
454
+ <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div>
455
+ <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
456
+ <div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; }</div>
457
+ <div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; </div>
458
+ <div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;}; <span class="comment">// end class WTOCycle</span></div>
459
+ <div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; </div>
460
+ <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> GraphT&gt; <span class="keyword">class </span>WTOComponentVisitor</div>
461
+ <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;{</div>
462
+ <div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="keyword">public</span>:</div>
463
+ <div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponentVisitor.html#a873b7e2a4166cb6a5b48a63dbafa295d"> 476</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTONode.html">WTONode&lt;GraphT&gt;</a> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a873b7e2a4166cb6a5b48a63dbafa295d">WTONodeT</a>;</div>
464
+ <div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponentVisitor.html#a978324f9b276a9d086b9e7a12feac997"> 477</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycle&lt;GraphT&gt;</a> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a978324f9b276a9d086b9e7a12feac997">WTOCycleT</a>;</div>
465
+ <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; </div>
466
+ <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="keyword">public</span>:</div>
467
+ <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a829bc3b32dcb5740da40c5cff75680d9">WTOComponentVisitor</a>() = <span class="keywordflow">default</span>;</div>
468
+ <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; </div>
469
+ <div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a829bc3b32dcb5740da40c5cff75680d9">WTOComponentVisitor</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&amp;) noexcept = <span class="keywordflow">default</span>;</div>
470
+ <div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; </div>
471
+ <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a829bc3b32dcb5740da40c5cff75680d9">WTOComponentVisitor</a>(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&amp;&amp;) noexcept = default;</div>
472
+ <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; </div>
473
+ <div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&amp; operator=(const <a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&amp;) noexcept =</div>
474
+ <div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; default;</div>
475
+ <div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; </div>
476
+ <div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&amp; operator=(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&amp;&amp;) noexcept = default;</div>
477
+ <div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; </div>
478
+ <div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; virtual <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(const <a class="code" href="classSVF_1_1WTONode.html">WTONodeT</a>&amp;) = 0;</div>
479
+ <div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; </div>
480
+ <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; virtual <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(const <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>&amp;) = 0;</div>
481
+ <div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; </div>
482
+ <div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; virtual ~<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>() = default;</div>
483
+ <div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; </div>
484
+ <div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;}; <span class="comment">// end class WTOComponentVisitor</span></div>
485
+ <div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; </div>
486
+ <div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;template &lt;typename GraphT&gt; class <a class="code" href="classSVF_1_1WTO.html">WTO</a></div>
487
+ <div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;{</div>
488
+ <div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; </div>
489
+ <div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="keyword">public</span>:</div>
490
+ <div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; static_assert(<a class="code" href="structSVF_1_1has__nodetype.html">has_nodetype&lt;GraphT&gt;::value</a>,</div>
491
+ <div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a78e43eb435fb7f5ee47670f10c6e67f2"> 515</a></span>&#160; <span class="stringliteral">&quot;GraphT must have a nested type named &#39;NodeType&#39;&quot;</span>);</div>
492
+ <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; static_assert(<a class="code" href="structSVF_1_1has__edgetype.html">has_edgetype&lt;GraphT&gt;::value</a>,</div>
493
+ <div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="stringliteral">&quot;GraphT must have a nested type named &#39;EdgeType&#39;&quot;</span>);</div>
494
+ <div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> GraphT::NodeType <a class="code" href="classSVF_1_1WTO.html#a78e43eb435fb7f5ee47670f10c6e67f2">NodeT</a>;</div>
495
+ <div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a620d528ac72c17913b462acedb8e88c3"> 519</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> GraphT::EdgeType <a class="code" href="classSVF_1_1WTO.html#a620d528ac72c17913b462acedb8e88c3">EdgeT</a>;</div>
496
+ <div class="line"><a name="l00520"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ae2cde12ccd4206b7ace44bc2146c792e"> 520</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth&lt;GraphT&gt;</a> <a class="code" href="classSVF_1_1WTO.html#ae2cde12ccd4206b7ace44bc2146c792e">GraphTWTOCycleDepth</a>;</div>
497
+ <div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a43bd515dd7ea9ae1f56b79d29cfdc00c"> 521</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent&lt;GraphT&gt;</a> <a class="code" href="classSVF_1_1WTO.html#a43bd515dd7ea9ae1f56b79d29cfdc00c">WTOComponentT</a>;</div>
498
+ <div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a96f37d843d4bd7c2b30cfc5bc59cf90d"> 522</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTONode.html">WTONode&lt;GraphT&gt;</a> <a class="code" href="classSVF_1_1WTO.html#a96f37d843d4bd7c2b30cfc5bc59cf90d">WTONodeT</a>;</div>
499
+ <div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a71a0d4afca77f59db4829c7b39419429"> 523</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycle&lt;GraphT&gt;</a> <a class="code" href="classSVF_1_1WTO.html#a71a0d4afca77f59db4829c7b39419429">WTOCycleT</a>;</div>
500
+ <div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a7be430782b325bbb92d9fd014e9c68c0"> 524</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const NodeT*&gt;</a> <a class="code" href="classSVF_1_1WTO.html#a7be430782b325bbb92d9fd014e9c68c0">NodeRefList</a>;</div>
501
+ <div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; </div>
502
+ <div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="keyword">protected</span>:</div>
503
+ <div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a15ecb3d149a88c93318133314d010954"> 527</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponentT</a>* <a class="code" href="classSVF_1_1WTO.html#a15ecb3d149a88c93318133314d010954">WTOComponentPtr</a>;</div>
504
+ <div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9"> 528</a></span>&#160; <span class="keyword">typedef</span> std::list&lt;WTOComponentPtr&gt; <a class="code" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">WTOComponentRefList</a>;</div>
505
+ <div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a928688b5f1e2111311262ccd936b1ca9"> 529</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;WTOComponentPtr&gt;</a> <a class="code" href="classSVF_1_1WTO.html#a928688b5f1e2111311262ccd936b1ca9">WTOComponentRefSet</a>;</div>
506
+ <div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a9103af81d0c21787dcc96188ea243d0a"> 530</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const NodeT*, const WTOCycleT*&gt;</a> <a class="code" href="classSVF_1_1WTO.html#a9103af81d0c21787dcc96188ea243d0a">NodeRefToWTOCycleMap</a>;</div>
507
+ <div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ae652de9cb9fca45b8cb6c08606d7971a"> 531</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const NodeT*, NodeRefList&gt;</a> <a class="code" href="classSVF_1_1WTO.html#ae652de9cb9fca45b8cb6c08606d7971a">NodeRefTONodeRefListMap</a>;</div>
508
+ <div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; </div>
509
+ <div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7"> 533</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a>;</div>
510
+ <div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a93a5b48c93dc4f01f50040e71c5aeada"> 534</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const NodeT*, CycleDepthNumber&gt;</a> <a class="code" href="classSVF_1_1WTO.html#a93a5b48c93dc4f01f50040e71c5aeada">NodeRefToCycleDepthNumber</a>;</div>
511
+ <div class="line"><a name="l00535"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ab35eabe45c6b944b26532fbe630cd019"> 535</a></span>&#160; <span class="keyword">typedef</span> std::vector&lt;const NodeT*&gt; <a class="code" href="classSVF_1_1WTO.html#ab35eabe45c6b944b26532fbe630cd019">Stack</a>;</div>
512
+ <div class="line"><a name="l00536"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a8022c9a6ebc62ed292698f07ab93bafe"> 536</a></span>&#160; <span class="keyword">typedef</span> std::shared_ptr&lt;GraphTWTOCycleDepth&gt; <a class="code" href="classSVF_1_1WTO.html#a8022c9a6ebc62ed292698f07ab93bafe">WTOCycleDepthPtr</a>;</div>
513
+ <div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b"> 537</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const NodeT*, WTOCycleDepthPtr&gt;</a> <a class="code" href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b">NodeRefToWTOCycleDepthPtr</a>;</div>
514
+ <div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; </div>
515
+ <div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;<span class="keyword">public</span>:</div>
516
+ <div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a49ea9544fc55c3de1b3aebde1ba69470"> 541</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> WTOComponentRefList::const_iterator <a class="code" href="classSVF_1_1WTO.html#a49ea9544fc55c3de1b3aebde1ba69470">Iterator</a>;</div>
517
+ <div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; </div>
518
+ <div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="keyword">protected</span>:</div>
519
+ <div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#acbc503aa22e6d9bf2f6406fc45ebbab1"> 544</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">WTOComponentRefList</a> <a class="code" href="classSVF_1_1WTO.html#acbc503aa22e6d9bf2f6406fc45ebbab1">_components</a>;</div>
520
+ <div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a649f1a93b6fd51553f6e144f2fe99542"> 545</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a928688b5f1e2111311262ccd936b1ca9">WTOComponentRefSet</a> <a class="code" href="classSVF_1_1WTO.html#a649f1a93b6fd51553f6e144f2fe99542">_allComponents</a>;</div>
521
+ <div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a5752288fb686b9ef5d6c8edc0cee6348"> 546</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a9103af81d0c21787dcc96188ea243d0a">NodeRefToWTOCycleMap</a> <a class="code" href="classSVF_1_1WTO.html#a5752288fb686b9ef5d6c8edc0cee6348">headRefToCycle</a>;</div>
522
+ <div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ab6eebbf5ab6f6c3ee157e22da10620e9"> 547</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b">NodeRefToWTOCycleDepthPtr</a> <a class="code" href="classSVF_1_1WTO.html#ab6eebbf5ab6f6c3ee157e22da10620e9">_nodeToDepth</a>;</div>
523
+ <div class="line"><a name="l00548"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a54d8c25df36b0c44d52369c4294a1ed8"> 548</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a93a5b48c93dc4f01f50040e71c5aeada">NodeRefToCycleDepthNumber</a> <a class="code" href="classSVF_1_1WTO.html#a54d8c25df36b0c44d52369c4294a1ed8">_nodeToCDN</a>;</div>
524
+ <div class="line"><a name="l00549"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#af3e699fe03e5072f057cf162aefe8c12"> 549</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> <a class="code" href="classSVF_1_1WTO.html#af3e699fe03e5072f057cf162aefe8c12">_num</a>;</div>
525
+ <div class="line"><a name="l00550"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a333df66435d9c4444ff7f729ca9d0050"> 550</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#ab35eabe45c6b944b26532fbe630cd019">Stack</a> <a class="code" href="classSVF_1_1WTO.html#a333df66435d9c4444ff7f729ca9d0050">_stack</a>;</div>
526
+ <div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ae8e57cc333199bc8b5aaff0a825eed47"> 551</a></span>&#160; GraphT* <a class="code" href="classSVF_1_1WTO.html#ae8e57cc333199bc8b5aaff0a825eed47">_graph</a>;</div>
527
+ <div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a5853e7a33044635877b8f07de05ff047"> 552</a></span>&#160; <span class="keyword">const</span> NodeT* <a class="code" href="classSVF_1_1WTO.html#a5853e7a33044635877b8f07de05ff047">_entry</a>;</div>
528
+ <div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; </div>
529
+ <div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="keyword">public</span>:</div>
530
+ <div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; </div>
531
+ <div class="line"><a name="l00557"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a7757a14d821963ad5ee03da0b542f8fb"> 557</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1WTO.html#a7757a14d821963ad5ee03da0b542f8fb">WTO</a>(GraphT* graph, <span class="keyword">const</span> NodeT* entry) : _num(0), _graph(graph), _entry(entry)</div>
532
+ <div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; {</div>
533
+ <div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; }</div>
534
+ <div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; </div>
535
+ <div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <a class="code" href="classSVF_1_1WTO.html">WTO</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html">WTO</a>&amp; other) = <span class="keywordflow">default</span>;</div>
536
+ <div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; </div>
537
+ <div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <a class="code" href="classSVF_1_1WTO.html">WTO</a>(<a class="code" href="classSVF_1_1WTO.html">WTO</a>&amp;&amp; other) = <span class="keywordflow">default</span>;</div>
538
+ <div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; </div>
539
+ <div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <a class="code" href="classSVF_1_1WTO.html">WTO</a>&amp; <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a2f5ba04581b5771dd083aa799329e43b">operator=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html">WTO</a>&amp; other) = <span class="keywordflow">default</span>;</div>
540
+ <div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; </div>
541
+ <div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <a class="code" href="classSVF_1_1WTO.html">WTO</a>&amp; <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a2f5ba04581b5771dd083aa799329e43b">operator=</a>(<a class="code" href="classSVF_1_1WTO.html">WTO</a>&amp;&amp; other) = <span class="keywordflow">default</span>;</div>
542
+ <div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; </div>
543
+ <div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a78828eb753f5a27848256d383cf57b5e"> 574</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a78828eb753f5a27848256d383cf57b5e">~WTO</a>()</div>
544
+ <div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; {</div>
545
+ <div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; component : _allComponents)</div>
546
+ <div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; {</div>
547
+ <div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keyword">delete</span> component;</div>
548
+ <div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; }</div>
549
+ <div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; }</div>
550
+ <div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; </div>
551
+ <div class="line"><a name="l00584"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a13e9082913aa4a14065687ccdd47642d"> 584</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a49ea9544fc55c3de1b3aebde1ba69470">Iterator</a> <a class="code" href="classSVF_1_1WTO.html#a13e9082913aa4a14065687ccdd47642d">begin</a>()<span class="keyword"> const</span></div>
552
+ <div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="keyword"> </span>{</div>
553
+ <div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">return</span> _components.cbegin();</div>
554
+ <div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; }</div>
555
+ <div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; </div>
556
+ <div class="line"><a name="l00590"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a22b67a51964cb1d7882aab7e74b026f2"> 590</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a49ea9544fc55c3de1b3aebde1ba69470">Iterator</a> <a class="code" href="classSVF_1_1WTO.html#a22b67a51964cb1d7882aab7e74b026f2">end</a>()<span class="keyword"> const</span></div>
557
+ <div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="keyword"> </span>{</div>
558
+ <div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordflow">return</span> _components.cend();</div>
559
+ <div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; }</div>
560
+ <div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; </div>
561
+ <div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a605c2cb15b3c3ff2581d5f2d0a4719a7"> 595</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTO.html#a605c2cb15b3c3ff2581d5f2d0a4719a7">isHead</a>(<span class="keyword">const</span> NodeT* node)<span class="keyword"> const</span></div>
562
+ <div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="keyword"> </span>{</div>
563
+ <div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">return</span> headRefToCycle.find(node) != headRefToCycle.end();</div>
564
+ <div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; }</div>
565
+ <div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; </div>
566
+ <div class="line"><a name="l00600"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a62a6ee6d3894861a0fb74309d2951e16"> 600</a></span>&#160; <span class="keyword">typename</span> NodeRefToWTOCycleMap::const_iterator <a class="code" href="classSVF_1_1WTO.html#a62a6ee6d3894861a0fb74309d2951e16">headBegin</a>()<span class="keyword"> const</span></div>
567
+ <div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="keyword"> </span>{</div>
568
+ <div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">return</span> headRefToCycle.cbegin();</div>
569
+ <div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; }</div>
570
+ <div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; </div>
571
+ <div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ace35f97608d342cae7cda7936816f624"> 606</a></span>&#160; <span class="keyword">typename</span> NodeRefToWTOCycleMap::const_iterator <a class="code" href="classSVF_1_1WTO.html#ace35f97608d342cae7cda7936816f624">headEnd</a>()<span class="keyword"> const</span></div>
572
+ <div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="keyword"> </span>{</div>
573
+ <div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keywordflow">return</span> headRefToCycle.cend();</div>
574
+ <div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; }</div>
575
+ <div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; </div>
576
+ <div class="line"><a name="l00612"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#aa50fbcbff0e3aa30bce2ba1b810e8ca8"> 612</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">GraphTWTOCycleDepth</a>&amp; <a class="code" href="classSVF_1_1WTO.html#aa50fbcbff0e3aa30bce2ba1b810e8ca8">cycleDepth</a>(<span class="keyword">const</span> NodeT* <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div>
577
+ <div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="keyword"> </span>{</div>
578
+ <div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keyword">auto</span> it = _nodeToDepth.find(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
579
+ <div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; assert(it != _nodeToDepth.end() &amp;&amp; <span class="stringliteral">&quot;node not found&quot;</span>);</div>
580
+ <div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keywordflow">return</span> *(it-&gt;second);</div>
581
+ <div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; }</div>
582
+ <div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; </div>
583
+ <div class="line"><a name="l00620"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a1e331c472a19616ccef9f8230a8724fb"> 620</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTO.html#a1e331c472a19616ccef9f8230a8724fb">in_cycleDepth_table</a>(<span class="keyword">const</span> NodeT* <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div>
584
+ <div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="keyword"> </span>{</div>
585
+ <div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keyword">auto</span> it = _nodeToDepth.find(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
586
+ <div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">return</span> it != _nodeToDepth.end();</div>
587
+ <div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; }</div>
588
+ <div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; </div>
589
+ <div class="line"><a name="l00627"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#af2ac6543be66a6ca5911f49f16c341c4"> 627</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#af2ac6543be66a6ca5911f49f16c341c4">accept</a>(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor&lt;GraphT&gt;</a>&amp; v)</div>
590
+ <div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; {</div>
591
+ <div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; c : _components)</div>
592
+ <div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; {</div>
593
+ <div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; c-&gt;accept(v);</div>
594
+ <div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; }</div>
595
+ <div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; }</div>
596
+ <div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; </div>
597
+ <div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a2245875350c4a72f826d998f02f5e796"> 636</a></span>&#160; [[nodiscard]] <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1WTO.html#a2245875350c4a72f826d998f02f5e796">toString</a>()<span class="keyword"> const</span></div>
598
+ <div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="keyword"> </span>{</div>
599
+ <div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
600
+ <div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; std::stringstream rawstr(str);</div>
601
+ <div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;[&quot;</span>;</div>
602
+ <div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = begin(), et = end(); it != et;)</div>
603
+ <div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; {</div>
604
+ <div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; rawstr &lt;&lt; (*it)-&gt;toString();</div>
605
+ <div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; ++it;</div>
606
+ <div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">if</span> (it != et)</div>
607
+ <div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; {</div>
608
+ <div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;, &quot;</span>;</div>
609
+ <div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; }</div>
610
+ <div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; }</div>
611
+ <div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;]&quot;</span>;</div>
612
+ <div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
613
+ <div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; }</div>
614
+ <div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; </div>
615
+ <div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; </div>
616
+ <div class="line"><a name="l00656"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a9342328c10f51f56290b61e06851f30d"> 656</a></span>&#160; <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="classSVF_1_1WTO.html#a9342328c10f51f56290b61e06851f30d">operator&lt;&lt;</a>(std::ostream&amp; o, <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html">WTO&lt;GraphT&gt;</a>&amp; wto)</div>
617
+ <div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; {</div>
618
+ <div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; o &lt;&lt; wto.<a class="code" href="classSVF_1_1WTO.html#a2245875350c4a72f826d998f02f5e796">toString</a>();</div>
619
+ <div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordflow">return</span> o;</div>
620
+ <div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; }</div>
621
+ <div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; </div>
622
+ <div class="line"><a name="l00663"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a12d50323eaa2d40925699232beb37747"> 663</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#a12d50323eaa2d40925699232beb37747">init</a>()</div>
623
+ <div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; {</div>
624
+ <div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(_entry, _components);</div>
625
+ <div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; _nodeToCDN.clear();</div>
626
+ <div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; _stack.clear();</div>
627
+ <div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; buildNodeToDepth();</div>
628
+ <div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; }</div>
629
+ <div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; </div>
630
+ <div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="keyword">protected</span>:</div>
631
+ <div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; </div>
632
+ <div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html"> 674</a></span>&#160; <span class="keyword">class </span><a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html">WTOCycleDepthBuilder</a> final : <span class="keyword">public</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&lt;GraphT&gt;</div>
633
+ <div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; {</div>
634
+ <div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <span class="keyword">private</span>:</div>
635
+ <div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#ad40b8e78a27207b8cf113517aed6dca3"> 677</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a8022c9a6ebc62ed292698f07ab93bafe">WTOCycleDepthPtr</a> <a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#ad40b8e78a27207b8cf113517aed6dca3">_wtoCycleDepth</a>;</div>
636
+ <div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a853dc3f6646858f76de023925d9d6bce"> 678</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b">NodeRefToWTOCycleDepthPtr</a>&amp; <a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a853dc3f6646858f76de023925d9d6bce">_nodeToWTOCycleDepth</a>;</div>
637
+ <div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; </div>
638
+ <div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="keyword">public</span>:</div>
639
+ <div class="line"><a name="l00681"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a6cf986992bb78e6e3aa2e75b883c01c9"> 681</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a6cf986992bb78e6e3aa2e75b883c01c9">WTOCycleDepthBuilder</a>(</div>
640
+ <div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <a class="code" href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b">NodeRefToWTOCycleDepthPtr</a>&amp; nodeToWTOCycleDepth)</div>
641
+ <div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; : _wtoCycleDepth(std::make_shared&lt;<a class="code" href="classSVF_1_1WTOCycleDepth.html">GraphTWTOCycleDepth</a>&gt;()),</div>
642
+ <div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; _nodeToWTOCycleDepth(nodeToWTOCycleDepth)</div>
643
+ <div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; {</div>
644
+ <div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; }</div>
645
+ <div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; </div>
646
+ <div class="line"><a name="l00688"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#aad99b0e8004bb36b9a4ba81ea16c5d90"> 688</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#aad99b0e8004bb36b9a4ba81ea16c5d90">visit</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>&amp; cycle)<span class="keyword"> override</span></div>
647
+ <div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="keyword"> </span>{</div>
648
+ <div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html#a78e43eb435fb7f5ee47670f10c6e67f2">NodeT</a>* head = cycle.<a class="code" href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079">head</a>();</div>
649
+ <div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <a class="code" href="classSVF_1_1WTO.html#a8022c9a6ebc62ed292698f07ab93bafe">WTOCycleDepthPtr</a> previous_cycleDepth = _wtoCycleDepth;</div>
650
+ <div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; _nodeToWTOCycleDepth.insert(std::make_pair(head, _wtoCycleDepth));</div>
651
+ <div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; _wtoCycleDepth =</div>
652
+ <div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; std::make_shared&lt;GraphTWTOCycleDepth&gt;(*_wtoCycleDepth);</div>
653
+ <div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; _wtoCycleDepth-&gt;add(head);</div>
654
+ <div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = cycle.<a class="code" href="classSVF_1_1WTOCycle.html#a807c883d1cfe98c791c903125742f95b">begin</a>(), et = cycle.<a class="code" href="classSVF_1_1WTOCycle.html#a03fd55dd34c48d22cefcaf6dc93f734a">end</a>(); it != et; ++it)</div>
655
+ <div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; {</div>
656
+ <div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; (*it)-&gt;accept(*<span class="keyword">this</span>);</div>
657
+ <div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; }</div>
658
+ <div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; _wtoCycleDepth = previous_cycleDepth;</div>
659
+ <div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; }</div>
660
+ <div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; </div>
661
+ <div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a51be6e437a0d715e2571242c4dde1794"> 703</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a51be6e437a0d715e2571242c4dde1794">visit</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html">WTONodeT</a>&amp; node)<span class="keyword"> override</span></div>
662
+ <div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="keyword"> </span>{</div>
663
+ <div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; _nodeToWTOCycleDepth.insert(</div>
664
+ <div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; std::make_pair(node.<a class="code" href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd">node</a>(), _wtoCycleDepth));</div>
665
+ <div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; }</div>
666
+ <div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; </div>
667
+ <div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; }; <span class="comment">// end class WTOCycleDepthBuilder</span></div>
668
+ <div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; </div>
669
+ <div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="keyword">protected</span>:</div>
670
+ <div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; </div>
671
+ <div class="line"><a name="l00713"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a65d2ed9e7306392ce0b82ac018f0cdea"> 713</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#a65d2ed9e7306392ce0b82ac018f0cdea">forEachSuccessor</a>(<span class="keyword">const</span> NodeT* node, std::function&lt;<span class="keywordtype">void</span>(<span class="keyword">const</span> NodeT*)&gt; func)<span class="keyword"> const</span></div>
672
+ <div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="keyword"> </span>{</div>
673
+ <div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; e : node-&gt;getOutEdges())</div>
674
+ <div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; {</div>
675
+ <div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; func(e-&gt;getDstNode());</div>
676
+ <div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; }</div>
677
+ <div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; }</div>
678
+ <div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; </div>
679
+ <div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;<span class="keyword">protected</span>:</div>
680
+ <div class="line"><a name="l00723"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a92034688db3f67feb6e997d4c03f769f"> 723</a></span>&#160; <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> <a class="code" href="classSVF_1_1WTO.html#a92034688db3f67feb6e997d4c03f769f">getCDN</a>(<span class="keyword">const</span> NodeT* <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div>
681
+ <div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;<span class="keyword"> </span>{</div>
682
+ <div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keyword">auto</span> it = _nodeToCDN.find(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
683
+ <div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">if</span> (it != _nodeToCDN.end())</div>
684
+ <div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; {</div>
685
+ <div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
686
+ <div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; }</div>
687
+ <div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <span class="keywordflow">else</span></div>
688
+ <div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; {</div>
689
+ <div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordflow">return</span> 0;</div>
690
+ <div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; }</div>
691
+ <div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; }</div>
692
+ <div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; </div>
693
+ <div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a7fc78de450f2cb6cbed8aa6856638ad1"> 737</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#a7fc78de450f2cb6cbed8aa6856638ad1">setCDN</a>(<span class="keyword">const</span> NodeT* <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>, <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a>&amp; dfn)</div>
694
+ <div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; {</div>
695
+ <div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keyword">auto</span> res = _nodeToCDN.insert(std::make_pair(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>, dfn));</div>
696
+ <div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">if</span> (!res.second)</div>
697
+ <div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; {</div>
698
+ <div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; (res.first)-&gt;second = dfn;</div>
699
+ <div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; }</div>
700
+ <div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; }</div>
701
+ <div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; </div>
702
+ <div class="line"><a name="l00747"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ae6655b82c9137b960eac07631897de82"> 747</a></span>&#160; <span class="keyword">const</span> NodeT* <a class="code" href="classSVF_1_1WTO.html#ae6655b82c9137b960eac07631897de82">pop</a>()</div>
703
+ <div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; {</div>
704
+ <div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; assert(!_stack.empty() &amp;&amp; <span class="stringliteral">&quot;empty stack&quot;</span>);</div>
705
+ <div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keyword">const</span> NodeT* top = _stack.back();</div>
706
+ <div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; _stack.pop_back();</div>
707
+ <div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keywordflow">return</span> top;</div>
708
+ <div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; }</div>
709
+ <div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; </div>
710
+ <div class="line"><a name="l00756"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a9a67c7812a890ee4ff9cd470f947bf86"> 756</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#a9a67c7812a890ee4ff9cd470f947bf86">push</a>(<span class="keyword">const</span> NodeT* <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div>
711
+ <div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; {</div>
712
+ <div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; _stack.push_back(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
713
+ <div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; }</div>
714
+ <div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; </div>
715
+ <div class="line"><a name="l00761"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a2ce51d9a57e8a353aa23d14dce933c9a"> 761</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html">WTONodeT</a>* <a class="code" href="classSVF_1_1WTO.html#a2ce51d9a57e8a353aa23d14dce933c9a">newNode</a>(<span class="keyword">const</span> NodeT* node)</div>
716
+ <div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; {</div>
717
+ <div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html">WTONodeT</a>* ptr = <span class="keyword">new</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a873b7e2a4166cb6a5b48a63dbafa295d">WTONodeT</a>(node);</div>
718
+ <div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; _allComponents.insert(ptr);</div>
719
+ <div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">return</span> ptr;</div>
720
+ <div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; }</div>
721
+ <div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; </div>
722
+ <div class="line"><a name="l00768"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#aee55e23a1994d4daa29f21a608a1ca69"> 768</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>* <a class="code" href="classSVF_1_1WTO.html#aee55e23a1994d4daa29f21a608a1ca69">newCycle</a>(<span class="keyword">const</span> NodeT* node,</div>
723
+ <div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">WTOComponentRefList</a>&amp; partition)</div>
724
+ <div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; {</div>
725
+ <div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>* ptr = <span class="keyword">new</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a978324f9b276a9d086b9e7a12feac997">WTOCycleT</a>(node, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(partition));</div>
726
+ <div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; _allComponents.insert(ptr);</div>
727
+ <div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keywordflow">return</span> ptr;</div>
728
+ <div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; }</div>
729
+ <div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; </div>
730
+ <div class="line"><a name="l00777"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a8dc175362f4dbbf158e1fe03745f1ce7"> 777</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>* <a class="code" href="classSVF_1_1WTO.html#a8dc175362f4dbbf158e1fe03745f1ce7">component</a>(<span class="keyword">const</span> NodeT* node)</div>
731
+ <div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; {</div>
732
+ <div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <a class="code" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">WTOComponentRefList</a> partition;</div>
733
+ <div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; forEachSuccessor(node, [&amp;](<span class="keyword">const</span> NodeT* succ)</div>
734
+ <div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; {</div>
735
+ <div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <span class="keywordflow">if</span> (getCDN(succ) == 0)</div>
736
+ <div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; {</div>
737
+ <div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(succ, partition);</div>
738
+ <div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; }</div>
739
+ <div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; });</div>
740
+ <div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>* ptr = newCycle(node, partition);</div>
741
+ <div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; headRefToCycle.emplace(node, ptr);</div>
742
+ <div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="keywordflow">return</span> ptr;</div>
743
+ <div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; }</div>
744
+ <div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; </div>
745
+ <div class="line"><a name="l00795"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a56259113c30312e5052d0d8c0d4d6b77"> 795</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> <a class="code" href="classSVF_1_1WTO.html#a56259113c30312e5052d0d8c0d4d6b77">visit</a>(<span class="keyword">const</span> NodeT* node,</div>
746
+ <div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <a class="code" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">WTOComponentRefList</a>&amp; partition)</div>
747
+ <div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; {</div>
748
+ <div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> head(0);</div>
749
+ <div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> min(0);</div>
750
+ <div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keywordtype">bool</span> loop;</div>
751
+ <div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; </div>
752
+ <div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; push(node);</div>
753
+ <div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; _num += <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a>(1);</div>
754
+ <div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; head = _num;</div>
755
+ <div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; setCDN(node, head);</div>
756
+ <div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; loop = <span class="keyword">false</span>;</div>
757
+ <div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; forEachSuccessor(node, [&amp;](<span class="keyword">const</span> NodeT* succ)</div>
758
+ <div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; {</div>
759
+ <div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> succ_dfn = getCDN(succ);</div>
760
+ <div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordflow">if</span> (succ_dfn == <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a>(0))</div>
761
+ <div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; {</div>
762
+ <div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; min = <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(succ, partition);</div>
763
+ <div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; }</div>
764
+ <div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordflow">else</span></div>
765
+ <div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; {</div>
766
+ <div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; min = succ_dfn;</div>
767
+ <div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; }</div>
768
+ <div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <span class="keywordflow">if</span> (min &lt;= head)</div>
769
+ <div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; {</div>
770
+ <div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; head = min;</div>
771
+ <div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; loop = <span class="keyword">true</span>;</div>
772
+ <div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; }</div>
773
+ <div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; });</div>
774
+ <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; </div>
775
+ <div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <span class="keywordflow">if</span> (head == getCDN(node))</div>
776
+ <div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; {</div>
777
+ <div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; setCDN(node, UINT_MAX);</div>
778
+ <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keyword">const</span> NodeT* element = pop();</div>
779
+ <div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <span class="keywordflow">if</span> (loop)</div>
780
+ <div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; {</div>
781
+ <div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keywordflow">while</span> (element != node)</div>
782
+ <div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; {</div>
783
+ <div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; setCDN(element, 0);</div>
784
+ <div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; element = pop();</div>
785
+ <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; }</div>
786
+ <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; partition.push_front(component(node));</div>
787
+ <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; }</div>
788
+ <div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keywordflow">else</span></div>
789
+ <div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; {</div>
790
+ <div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; partition.push_front(newNode(node));</div>
791
+ <div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; }</div>
792
+ <div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; }</div>
793
+ <div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="keywordflow">return</span> head;</div>
794
+ <div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; }</div>
795
+ <div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; </div>
796
+ <div class="line"><a name="l00847"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#abf8ab42831098184ce972aa6664fcb8a"> 847</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#abf8ab42831098184ce972aa6664fcb8a">buildNodeToDepth</a>()</div>
797
+ <div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; {</div>
798
+ <div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; WTOCycleDepthBuilder builder(_nodeToDepth);</div>
799
+ <div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = begin(), et = end(); it != et; ++it)</div>
800
+ <div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; {</div>
801
+ <div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; (*it)-&gt;accept(builder);</div>
802
+ <div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; }</div>
803
+ <div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; }</div>
804
+ <div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; </div>
805
+ <div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;}; <span class="comment">// end class WTO</span></div>
806
+ <div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; </div>
807
+ <div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;} <span class="comment">// namespace SVF</span></div>
808
+ <div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; </div>
809
+ <div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* WTO_H_ */</span><span class="preprocessor"></span></div>
809
810
  </div><!-- fragment --></div><!-- contents -->
810
- <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a275559cdb0fea5d06b1516c4c49da0ae"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a275559cdb0fea5d06b1516c4c49da0ae">SVF::WTOCycleDepth::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Dump the cycleDepth, for debugging purpose.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00236">WTO.h:236</a></div></div>
811
+ <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a275559cdb0fea5d06b1516c4c49da0ae"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a275559cdb0fea5d06b1516c4c49da0ae">SVF::WTOCycleDepth::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Dump the cycleDepth, for debugging purpose.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00237">WTO.h:237</a></div></div>
811
812
  <div class="ttc" id="aclassSVF_1_1WTOComponent_html_a149bad69eb00f216887a42ae0fb518fc"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a149bad69eb00f216887a42ae0fb518fc">SVF::WTOComponent::toString</a></div><div class="ttdeci">virtual std::string toString() const =0</div></div>
812
- <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a2e3c5007c3348083b51b0a4fa3e843b9"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a2e3c5007c3348083b51b0a4fa3e843b9">SVF::WTOCycleDepth::operator&lt;=</a></div><div class="ttdeci">bool operator&lt;=(const WTOCycleDepth &amp;other) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00215">WTO.h:215</a></div></div>
813
- <div class="ttc" id="aclassSVF_1_1WTOCycle_html_adf52b9a57bcfb16d0e538f15677ed9fa"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#adf52b9a57bcfb16d0e538f15677ed9fa">SVF::WTOCycle::classof</a></div><div class="ttdeci">static bool classof(const WTOCycle&lt; GraphT &gt; *)</div><div class="ttdoc">ClassOf.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00436">WTO.h:436</a></div></div>
814
- <div class="ttc" id="aclassSVF_1_1WTO_html_a15ecb3d149a88c93318133314d010954"><div class="ttname"><a href="classSVF_1_1WTO.html#a15ecb3d149a88c93318133314d010954">SVF::WTO::WTOComponentPtr</a></div><div class="ttdeci">const typedef WTOComponentT * WTOComponentPtr</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00526">WTO.h:526</a></div></div>
815
- <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a16a1c72a181571a0f131975caa929ade"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">SVF::WTOCycleDepth::end</a></div><div class="ttdeci">Iterator end() const</div><div class="ttdoc">End iterator over the head of cycles.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00148">WTO.h:148</a></div></div>
816
- <div class="ttc" id="aclassSVF_1_1WTO_html_af3e699fe03e5072f057cf162aefe8c12"><div class="ttname"><a href="classSVF_1_1WTO.html#af3e699fe03e5072f057cf162aefe8c12">SVF::WTO::_num</a></div><div class="ttdeci">CycleDepthNumber _num</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00548">WTO.h:548</a></div></div>
817
- <div class="ttc" id="aclassSVF_1_1WTONode_html_a9afd271657066e8f3e3ed79397780e91"><div class="ttname"><a href="classSVF_1_1WTONode.html#a9afd271657066e8f3e3ed79397780e91">SVF::WTONode::toString</a></div><div class="ttdeci">std::string toString() const override</div><div class="ttdoc">Dump the node, for debugging purpose.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00355">WTO.h:355</a></div></div>
818
- <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a8e781898712dae7399ded6ccdce6aa53"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53">SVF::WTOCycle::_components</a></div><div class="ttdeci">WTOComponentRefList _components</div><div class="ttdoc">List of components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00400">WTO.h:400</a></div></div>
813
+ <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a2e3c5007c3348083b51b0a4fa3e843b9"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a2e3c5007c3348083b51b0a4fa3e843b9">SVF::WTOCycleDepth::operator&lt;=</a></div><div class="ttdeci">bool operator&lt;=(const WTOCycleDepth &amp;other) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00216">WTO.h:216</a></div></div>
814
+ <div class="ttc" id="aclassSVF_1_1WTOCycle_html_adf52b9a57bcfb16d0e538f15677ed9fa"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#adf52b9a57bcfb16d0e538f15677ed9fa">SVF::WTOCycle::classof</a></div><div class="ttdeci">static bool classof(const WTOCycle&lt; GraphT &gt; *)</div><div class="ttdoc">ClassOf.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00437">WTO.h:437</a></div></div>
815
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a15ecb3d149a88c93318133314d010954"><div class="ttname"><a href="classSVF_1_1WTO.html#a15ecb3d149a88c93318133314d010954">SVF::WTO::WTOComponentPtr</a></div><div class="ttdeci">const typedef WTOComponentT * WTOComponentPtr</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00527">WTO.h:527</a></div></div>
816
+ <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a16a1c72a181571a0f131975caa929ade"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">SVF::WTOCycleDepth::end</a></div><div class="ttdeci">Iterator end() const</div><div class="ttdoc">End iterator over the head of cycles.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00149">WTO.h:149</a></div></div>
817
+ <div class="ttc" id="aclassSVF_1_1WTO_html_af3e699fe03e5072f057cf162aefe8c12"><div class="ttname"><a href="classSVF_1_1WTO.html#af3e699fe03e5072f057cf162aefe8c12">SVF::WTO::_num</a></div><div class="ttdeci">CycleDepthNumber _num</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00549">WTO.h:549</a></div></div>
818
+ <div class="ttc" id="aclassSVF_1_1WTONode_html_a9afd271657066e8f3e3ed79397780e91"><div class="ttname"><a href="classSVF_1_1WTONode.html#a9afd271657066e8f3e3ed79397780e91">SVF::WTONode::toString</a></div><div class="ttdeci">std::string toString() const override</div><div class="ttdoc">Dump the node, for debugging purpose.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00356">WTO.h:356</a></div></div>
819
+ <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a8e781898712dae7399ded6ccdce6aa53"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53">SVF::WTOCycle::_components</a></div><div class="ttdeci">WTOComponentRefList _components</div><div class="ttdoc">List of components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00401">WTO.h:401</a></div></div>
819
820
  <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a1208cd4c5a880905df4031bf610bd0bb"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a1208cd4c5a880905df4031bf610bd0bb">SVF::WTOCycleDepth::~WTOCycleDepth</a></div><div class="ttdeci">~WTOCycleDepth()=default</div><div class="ttdoc">Destructor.</div></div>
820
- <div class="ttc" id="aclassSVF_1_1WTONode_html_ad9eb797028c0f30b8b8899edc3fb1b2b"><div class="ttname"><a href="classSVF_1_1WTONode.html#ad9eb797028c0f30b8b8899edc3fb1b2b">SVF::WTONode::classof</a></div><div class="ttdeci">static bool classof(const WTOComponent&lt; GraphT &gt; *c)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00368">WTO.h:368</a></div></div>
821
- <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a4779ba4cfc8a0ae23d27ef9d2f3987d0"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a4779ba4cfc8a0ae23d27ef9d2f3987d0">SVF::WTOCycleDepth::operator==</a></div><div class="ttdeci">bool operator==(const WTOCycleDepth &amp;other) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00220">WTO.h:220</a></div></div>
822
- <div class="ttc" id="aclassSVF_1_1WTOComponent_html_a3c2b9ef6ae6a3d47b0bba929f12560f7a8a904539134bae644c387a317981c110"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7a8a904539134bae644c387a317981c110">SVF::WTOComponent::Cycle</a></div><div class="ttdeci">@ Cycle</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00277">WTO.h:277</a></div></div>
823
- <div class="ttc" id="aclassSVF_1_1WTO_html_a78828eb753f5a27848256d383cf57b5e"><div class="ttname"><a href="classSVF_1_1WTO.html#a78828eb753f5a27848256d383cf57b5e">SVF::WTO::~WTO</a></div><div class="ttdeci">~WTO()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00573">WTO.h:573</a></div></div>
821
+ <div class="ttc" id="aclassSVF_1_1WTONode_html_ad9eb797028c0f30b8b8899edc3fb1b2b"><div class="ttname"><a href="classSVF_1_1WTONode.html#ad9eb797028c0f30b8b8899edc3fb1b2b">SVF::WTONode::classof</a></div><div class="ttdeci">static bool classof(const WTOComponent&lt; GraphT &gt; *c)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00369">WTO.h:369</a></div></div>
822
+ <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a4779ba4cfc8a0ae23d27ef9d2f3987d0"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a4779ba4cfc8a0ae23d27ef9d2f3987d0">SVF::WTOCycleDepth::operator==</a></div><div class="ttdeci">bool operator==(const WTOCycleDepth &amp;other) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00221">WTO.h:221</a></div></div>
823
+ <div class="ttc" id="aclassSVF_1_1WTOComponent_html_a3c2b9ef6ae6a3d47b0bba929f12560f7a8a904539134bae644c387a317981c110"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7a8a904539134bae644c387a317981c110">SVF::WTOComponent::Cycle</a></div><div class="ttdeci">@ Cycle</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00278">WTO.h:278</a></div></div>
824
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a78828eb753f5a27848256d383cf57b5e"><div class="ttname"><a href="classSVF_1_1WTO.html#a78828eb753f5a27848256d383cf57b5e">SVF::WTO::~WTO</a></div><div class="ttdeci">~WTO()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00574">WTO.h:574</a></div></div>
824
825
  <div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00092">GeneralType.h:92</a></div></div>
825
- <div class="ttc" id="aclassSVF_1_1WTO_html_a7757a14d821963ad5ee03da0b542f8fb"><div class="ttname"><a href="classSVF_1_1WTO.html#a7757a14d821963ad5ee03da0b542f8fb">SVF::WTO::WTO</a></div><div class="ttdeci">WTO(GraphT *graph, const NodeT *entry)</div><div class="ttdoc">Compute the weak topological order of the given graph.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00556">WTO.h:556</a></div></div>
826
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a7757a14d821963ad5ee03da0b542f8fb"><div class="ttname"><a href="classSVF_1_1WTO.html#a7757a14d821963ad5ee03da0b542f8fb">SVF::WTO::WTO</a></div><div class="ttdeci">WTO(GraphT *graph, const NodeT *entry)</div><div class="ttdoc">Compute the weak topological order of the given graph.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00557">WTO.h:557</a></div></div>
826
827
  <div class="ttc" id="aclassSVF_1_1WTOComponentVisitor_html_a2f5ba04581b5771dd083aa799329e43b"><div class="ttname"><a href="classSVF_1_1WTOComponentVisitor.html#a2f5ba04581b5771dd083aa799329e43b">SVF::WTOComponentVisitor::operator=</a></div><div class="ttdeci">WTOComponentVisitor &amp; operator=(const WTOComponentVisitor &amp;) noexcept=default</div><div class="ttdoc">Copy assignment operator.</div></div>
827
- <div class="ttc" id="aclassSVF_1_1WTO_html_ae652de9cb9fca45b8cb6c08606d7971a"><div class="ttname"><a href="classSVF_1_1WTO.html#ae652de9cb9fca45b8cb6c08606d7971a">SVF::WTO::NodeRefTONodeRefListMap</a></div><div class="ttdeci">Map&lt; const NodeT *, NodeRefList &gt; NodeRefTONodeRefListMap</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00530">WTO.h:530</a></div></div>
828
- <div class="ttc" id="aclassSVF_1_1WTOComponentVisitor_html_a873b7e2a4166cb6a5b48a63dbafa295d"><div class="ttname"><a href="classSVF_1_1WTOComponentVisitor.html#a873b7e2a4166cb6a5b48a63dbafa295d">SVF::WTOComponentVisitor::WTONodeT</a></div><div class="ttdeci">WTONode&lt; GraphT &gt; WTONodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00475">WTO.h:475</a></div></div>
828
+ <div class="ttc" id="aclassSVF_1_1WTO_html_ae652de9cb9fca45b8cb6c08606d7971a"><div class="ttname"><a href="classSVF_1_1WTO.html#ae652de9cb9fca45b8cb6c08606d7971a">SVF::WTO::NodeRefTONodeRefListMap</a></div><div class="ttdeci">Map&lt; const NodeT *, NodeRefList &gt; NodeRefTONodeRefListMap</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00531">WTO.h:531</a></div></div>
829
+ <div class="ttc" id="aclassSVF_1_1WTOComponentVisitor_html_a873b7e2a4166cb6a5b48a63dbafa295d"><div class="ttname"><a href="classSVF_1_1WTOComponentVisitor.html#a873b7e2a4166cb6a5b48a63dbafa295d">SVF::WTOComponentVisitor::WTONodeT</a></div><div class="ttdeci">WTONode&lt; GraphT &gt; WTONodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00476">WTO.h:476</a></div></div>
829
830
  <div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
830
- <div class="ttc" id="aclassSVF_1_1WTO_html_a56259113c30312e5052d0d8c0d4d6b77"><div class="ttname"><a href="classSVF_1_1WTO.html#a56259113c30312e5052d0d8c0d4d6b77">SVF::WTO::visit</a></div><div class="ttdeci">virtual CycleDepthNumber visit(const NodeT *node, WTOComponentRefList &amp;partition)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00794">WTO.h:794</a></div></div>
831
- <div class="ttc" id="aclassSVF_1_1WTO_html"><div class="ttname"><a href="classSVF_1_1WTO.html">SVF::WTO</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00043">WTO.h:43</a></div></div>
832
- <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a05e5c2f26d21fea5197205e23fea7d3a"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">SVF::WTOCycleDepth::begin</a></div><div class="ttdeci">Iterator begin() const</div><div class="ttdoc">Begin iterator over the head of cycles.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00142">WTO.h:142</a></div></div>
833
- <div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html_aad99b0e8004bb36b9a4ba81ea16c5d90"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#aad99b0e8004bb36b9a4ba81ea16c5d90">SVF::WTO::WTOCycleDepthBuilder::visit</a></div><div class="ttdeci">void visit(const WTOCycleT &amp;cycle) override</div><div class="ttdoc">Visit the given cycle.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00687">WTO.h:687</a></div></div>
834
- <div class="ttc" id="aclassSVF_1_1WTO_html_ae6655b82c9137b960eac07631897de82"><div class="ttname"><a href="classSVF_1_1WTO.html#ae6655b82c9137b960eac07631897de82">SVF::WTO::pop</a></div><div class="ttdeci">const NodeT * pop()</div><div class="ttdoc">Pop a node from the stack.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00746">WTO.h:746</a></div></div>
831
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a56259113c30312e5052d0d8c0d4d6b77"><div class="ttname"><a href="classSVF_1_1WTO.html#a56259113c30312e5052d0d8c0d4d6b77">SVF::WTO::visit</a></div><div class="ttdeci">virtual CycleDepthNumber visit(const NodeT *node, WTOComponentRefList &amp;partition)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00795">WTO.h:795</a></div></div>
832
+ <div class="ttc" id="aclassSVF_1_1WTO_html"><div class="ttname"><a href="classSVF_1_1WTO.html">SVF::WTO</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00044">WTO.h:44</a></div></div>
833
+ <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a05e5c2f26d21fea5197205e23fea7d3a"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">SVF::WTOCycleDepth::begin</a></div><div class="ttdeci">Iterator begin() const</div><div class="ttdoc">Begin iterator over the head of cycles.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00143">WTO.h:143</a></div></div>
834
+ <div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html_aad99b0e8004bb36b9a4ba81ea16c5d90"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#aad99b0e8004bb36b9a4ba81ea16c5d90">SVF::WTO::WTOCycleDepthBuilder::visit</a></div><div class="ttdeci">void visit(const WTOCycleT &amp;cycle) override</div><div class="ttdoc">Visit the given cycle.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00688">WTO.h:688</a></div></div>
835
+ <div class="ttc" id="aclassSVF_1_1WTO_html_ae6655b82c9137b960eac07631897de82"><div class="ttname"><a href="classSVF_1_1WTO.html#ae6655b82c9137b960eac07631897de82">SVF::WTO::pop</a></div><div class="ttdeci">const NodeT * pop()</div><div class="ttdoc">Pop a node from the stack.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00747">WTO.h:747</a></div></div>
835
836
  <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_aeca7ef6c7cca3533d72fc8d6a5d9337c"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#aeca7ef6c7cca3533d72fc8d6a5d9337c">SVF::WTOCycleDepth::operator=</a></div><div class="ttdeci">WTOCycleDepth &amp; operator=(const WTOCycleDepth &amp;)=default</div><div class="ttdoc">Copy assignment operator.</div></div>
836
- <div class="ttc" id="aclassSVF_1_1WTO_html_a54890e9212acbff3ccd28d674f86e9e7"><div class="ttname"><a href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">SVF::WTO::CycleDepthNumber</a></div><div class="ttdeci">u32_t CycleDepthNumber</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00532">WTO.h:532</a></div></div>
837
- <div class="ttc" id="aclassSVF_1_1WTO_html_a2245875350c4a72f826d998f02f5e796"><div class="ttname"><a href="classSVF_1_1WTO.html#a2245875350c4a72f826d998f02f5e796">SVF::WTO::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Dump the order, for debugging purpose.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00635">WTO.h:635</a></div></div>
838
- <div class="ttc" id="aclassSVF_1_1WTONode_html_a26f8f157a0661fff8d9f4f38d21a6445"><div class="ttname"><a href="classSVF_1_1WTONode.html#a26f8f157a0661fff8d9f4f38d21a6445">SVF::WTONode::accept</a></div><div class="ttdeci">void accept(WTOComponentVisitor&lt; GraphT &gt; &amp;v) const override</div><div class="ttdoc">Accept the given visitor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00349">WTO.h:349</a></div></div>
839
- <div class="ttc" id="aclassSVF_1_1WTONode_html_aa673666e3776f7b75b341dc1695841e9"><div class="ttname"><a href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9">SVF::WTONode::_node</a></div><div class="ttdeci">const NodeT * _node</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00333">WTO.h:333</a></div></div>
840
- <div class="ttc" id="aclassSVF_1_1WTO_html_a7fc78de450f2cb6cbed8aa6856638ad1"><div class="ttname"><a href="classSVF_1_1WTO.html#a7fc78de450f2cb6cbed8aa6856638ad1">SVF::WTO::setCDN</a></div><div class="ttdeci">void setCDN(const NodeT *n, const CycleDepthNumber &amp;dfn)</div><div class="ttdoc">Set the depth-first number of the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00736">WTO.h:736</a></div></div>
841
- <div class="ttc" id="aclassSVF_1_1WTO_html_ace35f97608d342cae7cda7936816f624"><div class="ttname"><a href="classSVF_1_1WTO.html#ace35f97608d342cae7cda7936816f624">SVF::WTO::headEnd</a></div><div class="ttdeci">NodeRefToWTOCycleMap::const_iterator headEnd() const</div><div class="ttdoc">End iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00605">WTO.h:605</a></div></div>
837
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a54890e9212acbff3ccd28d674f86e9e7"><div class="ttname"><a href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">SVF::WTO::CycleDepthNumber</a></div><div class="ttdeci">u32_t CycleDepthNumber</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00533">WTO.h:533</a></div></div>
838
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a2245875350c4a72f826d998f02f5e796"><div class="ttname"><a href="classSVF_1_1WTO.html#a2245875350c4a72f826d998f02f5e796">SVF::WTO::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Dump the order, for debugging purpose.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00636">WTO.h:636</a></div></div>
839
+ <div class="ttc" id="aclassSVF_1_1WTONode_html_a26f8f157a0661fff8d9f4f38d21a6445"><div class="ttname"><a href="classSVF_1_1WTONode.html#a26f8f157a0661fff8d9f4f38d21a6445">SVF::WTONode::accept</a></div><div class="ttdeci">void accept(WTOComponentVisitor&lt; GraphT &gt; &amp;v) const override</div><div class="ttdoc">Accept the given visitor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00350">WTO.h:350</a></div></div>
840
+ <div class="ttc" id="aclassSVF_1_1WTONode_html_aa673666e3776f7b75b341dc1695841e9"><div class="ttname"><a href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9">SVF::WTONode::_node</a></div><div class="ttdeci">const NodeT * _node</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00334">WTO.h:334</a></div></div>
841
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a7fc78de450f2cb6cbed8aa6856638ad1"><div class="ttname"><a href="classSVF_1_1WTO.html#a7fc78de450f2cb6cbed8aa6856638ad1">SVF::WTO::setCDN</a></div><div class="ttdeci">void setCDN(const NodeT *n, const CycleDepthNumber &amp;dfn)</div><div class="ttdoc">Set the depth-first number of the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00737">WTO.h:737</a></div></div>
842
+ <div class="ttc" id="aclassSVF_1_1WTO_html_ace35f97608d342cae7cda7936816f624"><div class="ttname"><a href="classSVF_1_1WTO.html#ace35f97608d342cae7cda7936816f624">SVF::WTO::headEnd</a></div><div class="ttdeci">NodeRefToWTOCycleMap::const_iterator headEnd() const</div><div class="ttdoc">End iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00606">WTO.h:606</a></div></div>
842
843
  <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a949e2ee782c346339a1ddaa868c8abaf"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a949e2ee782c346339a1ddaa868c8abaf">SVF::WTOCycleDepth::WTOCycleDepth</a></div><div class="ttdeci">WTOCycleDepth()=default</div><div class="ttdoc">Constructor.</div></div>
843
- <div class="ttc" id="aclassSVF_1_1WTO_html_ab6eebbf5ab6f6c3ee157e22da10620e9"><div class="ttname"><a href="classSVF_1_1WTO.html#ab6eebbf5ab6f6c3ee157e22da10620e9">SVF::WTO::_nodeToDepth</a></div><div class="ttdeci">NodeRefToWTOCycleDepthPtr _nodeToDepth</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00546">WTO.h:546</a></div></div>
844
- <div class="ttc" id="aclassSVF_1_1WTONode_html_a3c57d30540d9cb64f1373236281e8bcd"><div class="ttname"><a href="classSVF_1_1WTONode.html#a3c57d30540d9cb64f1373236281e8bcd">SVF::WTONode::classof</a></div><div class="ttdeci">static bool classof(const WTONode&lt; GraphT &gt; *)</div><div class="ttdoc">ClassOf.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00363">WTO.h:363</a></div></div>
845
- <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a1f54ed975152670e16280f8b12aebc66"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66">SVF::WTOCycle::_head</a></div><div class="ttdeci">const NodeT * _head</div><div class="ttdoc">Head of the cycle.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00397">WTO.h:397</a></div></div>
846
- <div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html">SVF::WTO::WTOCycleDepthBuilder</a></div><div class="ttdoc">Visitor to build the cycle depths of each node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00673">WTO.h:673</a></div></div>
844
+ <div class="ttc" id="aclassSVF_1_1WTO_html_ab6eebbf5ab6f6c3ee157e22da10620e9"><div class="ttname"><a href="classSVF_1_1WTO.html#ab6eebbf5ab6f6c3ee157e22da10620e9">SVF::WTO::_nodeToDepth</a></div><div class="ttdeci">NodeRefToWTOCycleDepthPtr _nodeToDepth</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00547">WTO.h:547</a></div></div>
845
+ <div class="ttc" id="aclassSVF_1_1WTONode_html_a3c57d30540d9cb64f1373236281e8bcd"><div class="ttname"><a href="classSVF_1_1WTONode.html#a3c57d30540d9cb64f1373236281e8bcd">SVF::WTONode::classof</a></div><div class="ttdeci">static bool classof(const WTONode&lt; GraphT &gt; *)</div><div class="ttdoc">ClassOf.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00364">WTO.h:364</a></div></div>
846
+ <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a1f54ed975152670e16280f8b12aebc66"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66">SVF::WTOCycle::_head</a></div><div class="ttdeci">const NodeT * _head</div><div class="ttdoc">Head of the cycle.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00398">WTO.h:398</a></div></div>
847
+ <div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html">SVF::WTO::WTOCycleDepthBuilder</a></div><div class="ttdoc">Visitor to build the cycle depths of each node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00674">WTO.h:674</a></div></div>
847
848
  <div class="ttc" id="acJSON_8cpp_html_ab6e2ea6dc7bd57d1483413449998230a"><div class="ttname"><a href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a></div><div class="ttdeci">cJSON * n</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02558">cJSON.cpp:2558</a></div></div>
848
- <div class="ttc" id="aclassSVF_1_1WTOComponent_html"><div class="ttname"><a href="classSVF_1_1WTOComponent.html">SVF::WTOComponent</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00271">WTO.h:271</a></div></div>
849
- <div class="ttc" id="aclassSVF_1_1WTO_html_a13e9082913aa4a14065687ccdd47642d"><div class="ttname"><a href="classSVF_1_1WTO.html#a13e9082913aa4a14065687ccdd47642d">SVF::WTO::begin</a></div><div class="ttdeci">Iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00583">WTO.h:583</a></div></div>
850
- <div class="ttc" id="aclassSVF_1_1WTOComponent_html_a3c2b9ef6ae6a3d47b0bba929f12560f7ae6153e626f0cd77b3560511ef845c14d"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7ae6153e626f0cd77b3560511ef845c14d">SVF::WTOComponent::Node</a></div><div class="ttdeci">@ Node</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00276">WTO.h:276</a></div></div>
851
- <div class="ttc" id="astructSVF_1_1has__nodetype_html"><div class="ttname"><a href="structSVF_1_1has__nodetype.html">SVF::has_nodetype</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00052">WTO.h:52</a></div></div>
852
- <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a19ad36eef78d46348ca75c5d2e12519b"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a19ad36eef78d46348ca75c5d2e12519b">SVF::WTOCycle::WTOCycle</a></div><div class="ttdeci">WTOCycle(const NodeT *head, WTOComponentRefList components)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00404">WTO.h:404</a></div></div>
853
- <div class="ttc" id="aclassSVF_1_1WTO_html_a1e331c472a19616ccef9f8230a8724fb"><div class="ttname"><a href="classSVF_1_1WTO.html#a1e331c472a19616ccef9f8230a8724fb">SVF::WTO::in_cycleDepth_table</a></div><div class="ttdeci">bool in_cycleDepth_table(const NodeT *n) const</div><div class="ttdoc">Return the cycleDepth of the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00619">WTO.h:619</a></div></div>
849
+ <div class="ttc" id="aclassSVF_1_1WTOComponent_html"><div class="ttname"><a href="classSVF_1_1WTOComponent.html">SVF::WTOComponent</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00272">WTO.h:272</a></div></div>
850
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a13e9082913aa4a14065687ccdd47642d"><div class="ttname"><a href="classSVF_1_1WTO.html#a13e9082913aa4a14065687ccdd47642d">SVF::WTO::begin</a></div><div class="ttdeci">Iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00584">WTO.h:584</a></div></div>
851
+ <div class="ttc" id="aclassSVF_1_1WTOComponent_html_a3c2b9ef6ae6a3d47b0bba929f12560f7ae6153e626f0cd77b3560511ef845c14d"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7ae6153e626f0cd77b3560511ef845c14d">SVF::WTOComponent::Node</a></div><div class="ttdeci">@ Node</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00277">WTO.h:277</a></div></div>
852
+ <div class="ttc" id="astructSVF_1_1has__nodetype_html"><div class="ttname"><a href="structSVF_1_1has__nodetype.html">SVF::has_nodetype</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00053">WTO.h:53</a></div></div>
853
+ <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a19ad36eef78d46348ca75c5d2e12519b"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a19ad36eef78d46348ca75c5d2e12519b">SVF::WTOCycle::WTOCycle</a></div><div class="ttdeci">WTOCycle(const NodeT *head, WTOComponentRefList components)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00405">WTO.h:405</a></div></div>
854
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a1e331c472a19616ccef9f8230a8724fb"><div class="ttname"><a href="classSVF_1_1WTO.html#a1e331c472a19616ccef9f8230a8724fb">SVF::WTO::in_cycleDepth_table</a></div><div class="ttdeci">bool in_cycleDepth_table(const NodeT *n) const</div><div class="ttdoc">Return the cycleDepth of the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00620">WTO.h:620</a></div></div>
854
855
  <div class="ttc" id="aSVFType_8h_html"><div class="ttname"><a href="SVFType_8h.html">SVFType.h</a></div></div>
855
- <div class="ttc" id="aclassSVF_1_1WTO_html_ac1a8ef3c15d484dc4f593b7d737e7de9"><div class="ttname"><a href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">SVF::WTO::WTOComponentRefList</a></div><div class="ttdeci">std::list&lt; WTOComponentPtr &gt; WTOComponentRefList</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00527">WTO.h:527</a></div></div>
856
- <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_ac1a815006184b8a54a1390832f929630"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#ac1a815006184b8a54a1390832f929630">SVF::WTOCycleDepth::NodeT</a></div><div class="ttdeci">GraphT::NodeType NodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00104">WTO.h:104</a></div></div>
857
- <div class="ttc" id="aclassSVF_1_1WTOCycle_html_acc26c1e8e39691416b590d1a29f57c38"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#acc26c1e8e39691416b590d1a29f57c38">SVF::WTOCycle::WTOComponentPtr</a></div><div class="ttdeci">const typedef WTOComponentT * WTOComponentPtr</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00388">WTO.h:388</a></div></div>
858
- <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html">SVF::WTOCycleDepth</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00100">WTO.h:100</a></div></div>
859
- <div class="ttc" id="aclassSVF_1_1WTOComponent_html_aa14277ce617c9a01800db64cc62ef2f3"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#aa14277ce617c9a01800db64cc62ef2f3">SVF::WTOComponent::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;o, const WTOComponent&lt; GraphT &gt; &amp;wto)</div><div class="ttdoc">Overloading operator &lt;&lt; for dumping ICFG node ID.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00310">WTO.h:310</a></div></div>
860
- <div class="ttc" id="aclassSVF_1_1WTO_html_a22b67a51964cb1d7882aab7e74b026f2"><div class="ttname"><a href="classSVF_1_1WTO.html#a22b67a51964cb1d7882aab7e74b026f2">SVF::WTO::end</a></div><div class="ttdeci">Iterator end() const</div><div class="ttdoc">End iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00589">WTO.h:589</a></div></div>
861
- <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a1c4a4a2387abd60e1fa1d4cee6b83b55"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55">SVF::WTOCycle::NodeT</a></div><div class="ttdeci">GraphT::NodeType NodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00383">WTO.h:383</a></div></div>
862
- <div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html_a6cf986992bb78e6e3aa2e75b883c01c9"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a6cf986992bb78e6e3aa2e75b883c01c9">SVF::WTO::WTOCycleDepthBuilder::WTOCycleDepthBuilder</a></div><div class="ttdeci">WTOCycleDepthBuilder(NodeRefToWTOCycleDepthPtr &amp;nodeToWTOCycleDepth)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00680">WTO.h:680</a></div></div>
863
- <div class="ttc" id="aclassSVF_1_1WTO_html_a333df66435d9c4444ff7f729ca9d0050"><div class="ttname"><a href="classSVF_1_1WTO.html#a333df66435d9c4444ff7f729ca9d0050">SVF::WTO::_stack</a></div><div class="ttdeci">Stack _stack</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00549">WTO.h:549</a></div></div>
864
- <div class="ttc" id="aclassSVF_1_1WTO_html_a12d50323eaa2d40925699232beb37747"><div class="ttname"><a href="classSVF_1_1WTO.html#a12d50323eaa2d40925699232beb37747">SVF::WTO::init</a></div><div class="ttdeci">void init()</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00662">WTO.h:662</a></div></div>
856
+ <div class="ttc" id="aclassSVF_1_1WTO_html_ac1a8ef3c15d484dc4f593b7d737e7de9"><div class="ttname"><a href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">SVF::WTO::WTOComponentRefList</a></div><div class="ttdeci">std::list&lt; WTOComponentPtr &gt; WTOComponentRefList</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00528">WTO.h:528</a></div></div>
857
+ <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_ac1a815006184b8a54a1390832f929630"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#ac1a815006184b8a54a1390832f929630">SVF::WTOCycleDepth::NodeT</a></div><div class="ttdeci">GraphT::NodeType NodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00105">WTO.h:105</a></div></div>
858
+ <div class="ttc" id="aclassSVF_1_1WTOCycle_html_acc26c1e8e39691416b590d1a29f57c38"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#acc26c1e8e39691416b590d1a29f57c38">SVF::WTOCycle::WTOComponentPtr</a></div><div class="ttdeci">const typedef WTOComponentT * WTOComponentPtr</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00389">WTO.h:389</a></div></div>
859
+ <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html">SVF::WTOCycleDepth</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00101">WTO.h:101</a></div></div>
860
+ <div class="ttc" id="aclassSVF_1_1WTOComponent_html_aa14277ce617c9a01800db64cc62ef2f3"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#aa14277ce617c9a01800db64cc62ef2f3">SVF::WTOComponent::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;o, const WTOComponent&lt; GraphT &gt; &amp;wto)</div><div class="ttdoc">Overloading operator &lt;&lt; for dumping ICFG node ID.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00311">WTO.h:311</a></div></div>
861
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a22b67a51964cb1d7882aab7e74b026f2"><div class="ttname"><a href="classSVF_1_1WTO.html#a22b67a51964cb1d7882aab7e74b026f2">SVF::WTO::end</a></div><div class="ttdeci">Iterator end() const</div><div class="ttdoc">End iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00590">WTO.h:590</a></div></div>
862
+ <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a1c4a4a2387abd60e1fa1d4cee6b83b55"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55">SVF::WTOCycle::NodeT</a></div><div class="ttdeci">GraphT::NodeType NodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00384">WTO.h:384</a></div></div>
863
+ <div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html_a6cf986992bb78e6e3aa2e75b883c01c9"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a6cf986992bb78e6e3aa2e75b883c01c9">SVF::WTO::WTOCycleDepthBuilder::WTOCycleDepthBuilder</a></div><div class="ttdeci">WTOCycleDepthBuilder(NodeRefToWTOCycleDepthPtr &amp;nodeToWTOCycleDepth)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00681">WTO.h:681</a></div></div>
864
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a333df66435d9c4444ff7f729ca9d0050"><div class="ttname"><a href="classSVF_1_1WTO.html#a333df66435d9c4444ff7f729ca9d0050">SVF::WTO::_stack</a></div><div class="ttdeci">Stack _stack</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00550">WTO.h:550</a></div></div>
865
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a12d50323eaa2d40925699232beb37747"><div class="ttname"><a href="classSVF_1_1WTO.html#a12d50323eaa2d40925699232beb37747">SVF::WTO::init</a></div><div class="ttdeci">void init()</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00663">WTO.h:663</a></div></div>
865
866
  <div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
866
- <div class="ttc" id="aclassSVF_1_1WTO_html_aee55e23a1994d4daa29f21a608a1ca69"><div class="ttname"><a href="classSVF_1_1WTO.html#aee55e23a1994d4daa29f21a608a1ca69">SVF::WTO::newCycle</a></div><div class="ttdeci">const WTOCycleT * newCycle(const NodeT *node, const WTOComponentRefList &amp;partition)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00767">WTO.h:767</a></div></div>
867
- <div class="ttc" id="aclassSVF_1_1WTO_html_a43bd515dd7ea9ae1f56b79d29cfdc00c"><div class="ttname"><a href="classSVF_1_1WTO.html#a43bd515dd7ea9ae1f56b79d29cfdc00c">SVF::WTO::WTOComponentT</a></div><div class="ttdeci">WTOComponent&lt; GraphT &gt; WTOComponentT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00520">WTO.h:520</a></div></div>
867
+ <div class="ttc" id="aclassSVF_1_1WTO_html_aee55e23a1994d4daa29f21a608a1ca69"><div class="ttname"><a href="classSVF_1_1WTO.html#aee55e23a1994d4daa29f21a608a1ca69">SVF::WTO::newCycle</a></div><div class="ttdeci">const WTOCycleT * newCycle(const NodeT *node, const WTOComponentRefList &amp;partition)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00768">WTO.h:768</a></div></div>
868
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a43bd515dd7ea9ae1f56b79d29cfdc00c"><div class="ttname"><a href="classSVF_1_1WTO.html#a43bd515dd7ea9ae1f56b79d29cfdc00c">SVF::WTO::WTOComponentT</a></div><div class="ttdeci">WTOComponent&lt; GraphT &gt; WTOComponentT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00521">WTO.h:521</a></div></div>
868
869
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ad37880353cffc950d5b9417bc41c0b06"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ad37880353cffc950d5b9417bc41c0b06">SVF::SVFUtil::void_t</a></div><div class="ttdeci">typename make_void&lt; Ts... &gt;::type void_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00631">SVFUtil.h:631</a></div></div>
869
- <div class="ttc" id="aclassSVF_1_1WTO_html_a7be430782b325bbb92d9fd014e9c68c0"><div class="ttname"><a href="classSVF_1_1WTO.html#a7be430782b325bbb92d9fd014e9c68c0">SVF::WTO::NodeRefList</a></div><div class="ttdeci">Set&lt; const NodeT * &gt; NodeRefList</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00523">WTO.h:523</a></div></div>
870
- <div class="ttc" id="aclassSVF_1_1WTO_html_af2ac6543be66a6ca5911f49f16c341c4"><div class="ttname"><a href="classSVF_1_1WTO.html#af2ac6543be66a6ca5911f49f16c341c4">SVF::WTO::accept</a></div><div class="ttdeci">void accept(WTOComponentVisitor&lt; GraphT &gt; &amp;v)</div><div class="ttdoc">Accept the given visitor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00626">WTO.h:626</a></div></div>
871
- <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a0033d1b904ba3a6f77648174166c9250"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a0033d1b904ba3a6f77648174166c9250">SVF::WTOCycle::classof</a></div><div class="ttdeci">static bool classof(const WTOComponent&lt; GraphT &gt; *c)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00441">WTO.h:441</a></div></div>
872
- <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a04d7ad708faad0b6cb360e6010c21600"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a04d7ad708faad0b6cb360e6010c21600">SVF::WTOCycle::WTOComponentRefList</a></div><div class="ttdeci">std::list&lt; WTOComponentPtr &gt; WTOComponentRefList</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00389">WTO.h:389</a></div></div>
873
- <div class="ttc" id="aclassSVF_1_1WTO_html_a2ce51d9a57e8a353aa23d14dce933c9a"><div class="ttname"><a href="classSVF_1_1WTO.html#a2ce51d9a57e8a353aa23d14dce933c9a">SVF::WTO::newNode</a></div><div class="ttdeci">const WTONodeT * newNode(const NodeT *node)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00760">WTO.h:760</a></div></div>
874
- <div class="ttc" id="aclassSVF_1_1WTOComponent_html_a3c2b9ef6ae6a3d47b0bba929f12560f7"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7">SVF::WTOComponent::WTOCT</a></div><div class="ttdeci">WTOCT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00274">WTO.h:274</a></div></div>
875
- <div class="ttc" id="aclassSVF_1_1WTO_html_a605c2cb15b3c3ff2581d5f2d0a4719a7"><div class="ttname"><a href="classSVF_1_1WTO.html#a605c2cb15b3c3ff2581d5f2d0a4719a7">SVF::WTO::isHead</a></div><div class="ttdeci">bool isHead(const NodeT *node) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00594">WTO.h:594</a></div></div>
876
- <div class="ttc" id="aclassSVF_1_1WTO_html_a5853e7a33044635877b8f07de05ff047"><div class="ttname"><a href="classSVF_1_1WTO.html#a5853e7a33044635877b8f07de05ff047">SVF::WTO::_entry</a></div><div class="ttdeci">const NodeT * _entry</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00551">WTO.h:551</a></div></div>
877
- <div class="ttc" id="aclassSVF_1_1WTO_html_a65d2ed9e7306392ce0b82ac018f0cdea"><div class="ttname"><a href="classSVF_1_1WTO.html#a65d2ed9e7306392ce0b82ac018f0cdea">SVF::WTO::forEachSuccessor</a></div><div class="ttdeci">virtual void forEachSuccessor(const NodeT *node, std::function&lt; void(const NodeT *)&gt; func) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00712">WTO.h:712</a></div></div>
878
- <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_afff8fb7472fa48b80b6e685b5f85666d"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">SVF::WTOCycleDepth::compare</a></div><div class="ttdeci">int compare(const WTOCycleDepth &amp;other) const</div><div class="ttdoc">Compare the given cycle depths.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00174">WTO.h:174</a></div></div>
879
- <div class="ttc" id="aclassSVF_1_1WTO_html_a78e43eb435fb7f5ee47670f10c6e67f2"><div class="ttname"><a href="classSVF_1_1WTO.html#a78e43eb435fb7f5ee47670f10c6e67f2">SVF::WTO::NodeT</a></div><div class="ttdeci">GraphT::NodeType NodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00514">WTO.h:514</a></div></div>
880
- <div class="ttc" id="aclassSVF_1_1WTOComponent_html_a5ef3384996e29f5f38490b4266b19f01"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a5ef3384996e29f5f38490b4266b19f01">SVF::WTOComponent::WTOComponent</a></div><div class="ttdeci">WTOComponent(WTOCT k)</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00281">WTO.h:281</a></div></div>
881
- <div class="ttc" id="aclassSVF_1_1WTONode_html"><div class="ttname"><a href="classSVF_1_1WTONode.html">SVF::WTONode</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00045">WTO.h:45</a></div></div>
882
- <div class="ttc" id="aclassSVF_1_1WTO_html_a49ea9544fc55c3de1b3aebde1ba69470"><div class="ttname"><a href="classSVF_1_1WTO.html#a49ea9544fc55c3de1b3aebde1ba69470">SVF::WTO::Iterator</a></div><div class="ttdeci">WTOComponentRefList::const_iterator Iterator</div><div class="ttdoc">Iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00540">WTO.h:540</a></div></div>
883
- <div class="ttc" id="aclassSVF_1_1WTO_html_a9342328c10f51f56290b61e06851f30d"><div class="ttname"><a href="classSVF_1_1WTO.html#a9342328c10f51f56290b61e06851f30d">SVF::WTO::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;o, const WTO&lt; GraphT &gt; &amp;wto)</div><div class="ttdoc">Overloading operator &lt;&lt; for dumping ICFG node ID.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00655">WTO.h:655</a></div></div>
884
- <div class="ttc" id="aclassSVF_1_1WTO_html_a4d7362b707ea6013811db5ffa80aeb0b"><div class="ttname"><a href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b">SVF::WTO::NodeRefToWTOCycleDepthPtr</a></div><div class="ttdeci">Map&lt; const NodeT *, WTOCycleDepthPtr &gt; NodeRefToWTOCycleDepthPtr</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00536">WTO.h:536</a></div></div>
885
- <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a5ecefd827cf83b86839fb3ac300f86b7"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a5ecefd827cf83b86839fb3ac300f86b7">SVF::WTOCycle::toString</a></div><div class="ttdeci">std::string toString() const override</div><div class="ttdoc">Dump the cycle, for debugging purpose.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00448">WTO.h:448</a></div></div>
886
- <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a807c883d1cfe98c791c903125742f95b"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a807c883d1cfe98c791c903125742f95b">SVF::WTOCycle::begin</a></div><div class="ttdeci">Iterator begin() const</div><div class="ttdoc">Begin iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00417">WTO.h:417</a></div></div>
887
- <div class="ttc" id="aclassSVF_1_1WTO_html_a8dc175362f4dbbf158e1fe03745f1ce7"><div class="ttname"><a href="classSVF_1_1WTO.html#a8dc175362f4dbbf158e1fe03745f1ce7">SVF::WTO::component</a></div><div class="ttdeci">virtual const WTOCycleT * component(const NodeT *node)</div><div class="ttdoc">Create the cycle component for the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00776">WTO.h:776</a></div></div>
888
- <div class="ttc" id="aclassSVF_1_1WTO_html_a9a67c7812a890ee4ff9cd470f947bf86"><div class="ttname"><a href="classSVF_1_1WTO.html#a9a67c7812a890ee4ff9cd470f947bf86">SVF::WTO::push</a></div><div class="ttdeci">void push(const NodeT *n)</div><div class="ttdoc">Push a node on the stack.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00755">WTO.h:755</a></div></div>
889
- <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a8df436e4ff4cc9df4900c1262cc89b1c"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a8df436e4ff4cc9df4900c1262cc89b1c">SVF::WTOCycleDepth::add</a></div><div class="ttdeci">void add(const NodeT *head)</div><div class="ttdoc">Add a cycle head in the cycleDepth.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00136">WTO.h:136</a></div></div>
870
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a7be430782b325bbb92d9fd014e9c68c0"><div class="ttname"><a href="classSVF_1_1WTO.html#a7be430782b325bbb92d9fd014e9c68c0">SVF::WTO::NodeRefList</a></div><div class="ttdeci">Set&lt; const NodeT * &gt; NodeRefList</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00524">WTO.h:524</a></div></div>
871
+ <div class="ttc" id="aclassSVF_1_1WTO_html_af2ac6543be66a6ca5911f49f16c341c4"><div class="ttname"><a href="classSVF_1_1WTO.html#af2ac6543be66a6ca5911f49f16c341c4">SVF::WTO::accept</a></div><div class="ttdeci">void accept(WTOComponentVisitor&lt; GraphT &gt; &amp;v)</div><div class="ttdoc">Accept the given visitor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00627">WTO.h:627</a></div></div>
872
+ <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a0033d1b904ba3a6f77648174166c9250"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a0033d1b904ba3a6f77648174166c9250">SVF::WTOCycle::classof</a></div><div class="ttdeci">static bool classof(const WTOComponent&lt; GraphT &gt; *c)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00442">WTO.h:442</a></div></div>
873
+ <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a04d7ad708faad0b6cb360e6010c21600"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a04d7ad708faad0b6cb360e6010c21600">SVF::WTOCycle::WTOComponentRefList</a></div><div class="ttdeci">std::list&lt; WTOComponentPtr &gt; WTOComponentRefList</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00390">WTO.h:390</a></div></div>
874
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a2ce51d9a57e8a353aa23d14dce933c9a"><div class="ttname"><a href="classSVF_1_1WTO.html#a2ce51d9a57e8a353aa23d14dce933c9a">SVF::WTO::newNode</a></div><div class="ttdeci">const WTONodeT * newNode(const NodeT *node)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00761">WTO.h:761</a></div></div>
875
+ <div class="ttc" id="aclassSVF_1_1WTOComponent_html_a3c2b9ef6ae6a3d47b0bba929f12560f7"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7">SVF::WTOComponent::WTOCT</a></div><div class="ttdeci">WTOCT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00275">WTO.h:275</a></div></div>
876
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a605c2cb15b3c3ff2581d5f2d0a4719a7"><div class="ttname"><a href="classSVF_1_1WTO.html#a605c2cb15b3c3ff2581d5f2d0a4719a7">SVF::WTO::isHead</a></div><div class="ttdeci">bool isHead(const NodeT *node) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00595">WTO.h:595</a></div></div>
877
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a5853e7a33044635877b8f07de05ff047"><div class="ttname"><a href="classSVF_1_1WTO.html#a5853e7a33044635877b8f07de05ff047">SVF::WTO::_entry</a></div><div class="ttdeci">const NodeT * _entry</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00552">WTO.h:552</a></div></div>
878
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a65d2ed9e7306392ce0b82ac018f0cdea"><div class="ttname"><a href="classSVF_1_1WTO.html#a65d2ed9e7306392ce0b82ac018f0cdea">SVF::WTO::forEachSuccessor</a></div><div class="ttdeci">virtual void forEachSuccessor(const NodeT *node, std::function&lt; void(const NodeT *)&gt; func) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00713">WTO.h:713</a></div></div>
879
+ <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_afff8fb7472fa48b80b6e685b5f85666d"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">SVF::WTOCycleDepth::compare</a></div><div class="ttdeci">int compare(const WTOCycleDepth &amp;other) const</div><div class="ttdoc">Compare the given cycle depths.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00175">WTO.h:175</a></div></div>
880
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a78e43eb435fb7f5ee47670f10c6e67f2"><div class="ttname"><a href="classSVF_1_1WTO.html#a78e43eb435fb7f5ee47670f10c6e67f2">SVF::WTO::NodeT</a></div><div class="ttdeci">GraphT::NodeType NodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00515">WTO.h:515</a></div></div>
881
+ <div class="ttc" id="aclassSVF_1_1WTOComponent_html_a5ef3384996e29f5f38490b4266b19f01"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a5ef3384996e29f5f38490b4266b19f01">SVF::WTOComponent::WTOComponent</a></div><div class="ttdeci">WTOComponent(WTOCT k)</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00282">WTO.h:282</a></div></div>
882
+ <div class="ttc" id="aclassSVF_1_1WTONode_html"><div class="ttname"><a href="classSVF_1_1WTONode.html">SVF::WTONode</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00046">WTO.h:46</a></div></div>
883
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a49ea9544fc55c3de1b3aebde1ba69470"><div class="ttname"><a href="classSVF_1_1WTO.html#a49ea9544fc55c3de1b3aebde1ba69470">SVF::WTO::Iterator</a></div><div class="ttdeci">WTOComponentRefList::const_iterator Iterator</div><div class="ttdoc">Iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00541">WTO.h:541</a></div></div>
884
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a9342328c10f51f56290b61e06851f30d"><div class="ttname"><a href="classSVF_1_1WTO.html#a9342328c10f51f56290b61e06851f30d">SVF::WTO::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;o, const WTO&lt; GraphT &gt; &amp;wto)</div><div class="ttdoc">Overloading operator &lt;&lt; for dumping ICFG node ID.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00656">WTO.h:656</a></div></div>
885
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a4d7362b707ea6013811db5ffa80aeb0b"><div class="ttname"><a href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b">SVF::WTO::NodeRefToWTOCycleDepthPtr</a></div><div class="ttdeci">Map&lt; const NodeT *, WTOCycleDepthPtr &gt; NodeRefToWTOCycleDepthPtr</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00537">WTO.h:537</a></div></div>
886
+ <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a5ecefd827cf83b86839fb3ac300f86b7"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a5ecefd827cf83b86839fb3ac300f86b7">SVF::WTOCycle::toString</a></div><div class="ttdeci">std::string toString() const override</div><div class="ttdoc">Dump the cycle, for debugging purpose.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00449">WTO.h:449</a></div></div>
887
+ <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a807c883d1cfe98c791c903125742f95b"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a807c883d1cfe98c791c903125742f95b">SVF::WTOCycle::begin</a></div><div class="ttdeci">Iterator begin() const</div><div class="ttdoc">Begin iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00418">WTO.h:418</a></div></div>
888
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a8dc175362f4dbbf158e1fe03745f1ce7"><div class="ttname"><a href="classSVF_1_1WTO.html#a8dc175362f4dbbf158e1fe03745f1ce7">SVF::WTO::component</a></div><div class="ttdeci">virtual const WTOCycleT * component(const NodeT *node)</div><div class="ttdoc">Create the cycle component for the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00777">WTO.h:777</a></div></div>
889
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a9a67c7812a890ee4ff9cd470f947bf86"><div class="ttname"><a href="classSVF_1_1WTO.html#a9a67c7812a890ee4ff9cd470f947bf86">SVF::WTO::push</a></div><div class="ttdeci">void push(const NodeT *n)</div><div class="ttdoc">Push a node on the stack.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00756">WTO.h:756</a></div></div>
890
+ <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a8df436e4ff4cc9df4900c1262cc89b1c"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a8df436e4ff4cc9df4900c1262cc89b1c">SVF::WTOCycleDepth::add</a></div><div class="ttdeci">void add(const NodeT *head)</div><div class="ttdoc">Add a cycle head in the cycleDepth.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00137">WTO.h:137</a></div></div>
890
891
  <div class="ttc" id="aclassSVF_1_1WTOComponentVisitor_html_a829bc3b32dcb5740da40c5cff75680d9"><div class="ttname"><a href="classSVF_1_1WTOComponentVisitor.html#a829bc3b32dcb5740da40c5cff75680d9">SVF::WTOComponentVisitor::WTOComponentVisitor</a></div><div class="ttdeci">WTOComponentVisitor()=default</div><div class="ttdoc">Default constructor.</div></div>
891
- <div class="ttc" id="aclassSVF_1_1WTO_html_a62a6ee6d3894861a0fb74309d2951e16"><div class="ttname"><a href="classSVF_1_1WTO.html#a62a6ee6d3894861a0fb74309d2951e16">SVF::WTO::headBegin</a></div><div class="ttdeci">NodeRefToWTOCycleMap::const_iterator headBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00599">WTO.h:599</a></div></div>
892
- <div class="ttc" id="aclassSVF_1_1WTO_html_a71a0d4afca77f59db4829c7b39419429"><div class="ttname"><a href="classSVF_1_1WTO.html#a71a0d4afca77f59db4829c7b39419429">SVF::WTO::WTOCycleT</a></div><div class="ttdeci">WTOCycle&lt; GraphT &gt; WTOCycleT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00522">WTO.h:522</a></div></div>
893
- <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a6d7bd6b0da1527da8c85aab87462fba8"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8">SVF::WTOCycleDepth::_heads</a></div><div class="ttdeci">NodeRefList _heads</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00114">WTO.h:114</a></div></div>
892
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a62a6ee6d3894861a0fb74309d2951e16"><div class="ttname"><a href="classSVF_1_1WTO.html#a62a6ee6d3894861a0fb74309d2951e16">SVF::WTO::headBegin</a></div><div class="ttdeci">NodeRefToWTOCycleMap::const_iterator headBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00600">WTO.h:600</a></div></div>
893
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a71a0d4afca77f59db4829c7b39419429"><div class="ttname"><a href="classSVF_1_1WTO.html#a71a0d4afca77f59db4829c7b39419429">SVF::WTO::WTOCycleT</a></div><div class="ttdeci">WTOCycle&lt; GraphT &gt; WTOCycleT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00523">WTO.h:523</a></div></div>
894
+ <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a6d7bd6b0da1527da8c85aab87462fba8"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8">SVF::WTOCycleDepth::_heads</a></div><div class="ttdeci">NodeRefList _heads</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00115">WTO.h:115</a></div></div>
894
895
  <div class="ttc" id="anamespaceSVF_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#l00621">SVFUtil.h:621</a></div></div>
895
- <div class="ttc" id="aclassSVF_1_1WTO_html_abf8ab42831098184ce972aa6664fcb8a"><div class="ttname"><a href="classSVF_1_1WTO.html#abf8ab42831098184ce972aa6664fcb8a">SVF::WTO::buildNodeToDepth</a></div><div class="ttdeci">void buildNodeToDepth()</div><div class="ttdoc">Build the node to WTO cycle depth table.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00846">WTO.h:846</a></div></div>
896
+ <div class="ttc" id="aclassSVF_1_1WTO_html_abf8ab42831098184ce972aa6664fcb8a"><div class="ttname"><a href="classSVF_1_1WTO.html#abf8ab42831098184ce972aa6664fcb8a">SVF::WTO::buildNodeToDepth</a></div><div class="ttdeci">void buildNodeToDepth()</div><div class="ttdoc">Build the node to WTO cycle depth table.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00847">WTO.h:847</a></div></div>
896
897
  <div class="ttc" id="aclassSVF_1_1WTOComponentVisitor_html_a1a5052418f6e73c9da9cee44dc50443d"><div class="ttname"><a href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">SVF::WTOComponentVisitor::visit</a></div><div class="ttdeci">virtual void visit(const WTONodeT &amp;)=0</div><div class="ttdoc">Visit the given node.</div></div>
897
- <div class="ttc" id="aclassSVF_1_1WTOCycle_html_adaa4b0f063eaf6f1bd02da38fd3b29de"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#adaa4b0f063eaf6f1bd02da38fd3b29de">SVF::WTOCycle::WTOComponentT</a></div><div class="ttdeci">WTOComponent&lt; GraphT &gt; WTOComponentT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00385">WTO.h:385</a></div></div>
898
- <div class="ttc" id="aclassSVF_1_1WTONode_html_acb1c9f5fa393500a8efe9f885b1748ce"><div class="ttname"><a href="classSVF_1_1WTONode.html#acb1c9f5fa393500a8efe9f885b1748ce">SVF::WTONode::WTONode</a></div><div class="ttdeci">WTONode(const NodeT *node)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00337">WTO.h:337</a></div></div>
899
- <div class="ttc" id="aclassSVF_1_1WTOCycle_html"><div class="ttname"><a href="classSVF_1_1WTOCycle.html">SVF::WTOCycle</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00047">WTO.h:47</a></div></div>
900
- <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_af4c6d0f992a1844aa21a6d26be66b34c"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#af4c6d0f992a1844aa21a6d26be66b34c">SVF::WTOCycleDepth::NodeRefList</a></div><div class="ttdeci">std::vector&lt; const NodeT * &gt; NodeRefList</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00108">WTO.h:108</a></div></div>
901
- <div class="ttc" id="aclassSVF_1_1WTOComponent_html_acb129a6e7dc72b347f21325fbfe970b1"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#acb129a6e7dc72b347f21325fbfe970b1">SVF::WTOComponent::getKind</a></div><div class="ttdeci">WTOCT getKind() const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00301">WTO.h:301</a></div></div>
902
- <div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html_a853dc3f6646858f76de023925d9d6bce"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a853dc3f6646858f76de023925d9d6bce">SVF::WTO::WTOCycleDepthBuilder::_nodeToWTOCycleDepth</a></div><div class="ttdeci">NodeRefToWTOCycleDepthPtr &amp; _nodeToWTOCycleDepth</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00677">WTO.h:677</a></div></div>
903
- <div class="ttc" id="aclassSVF_1_1WTO_html_a649f1a93b6fd51553f6e144f2fe99542"><div class="ttname"><a href="classSVF_1_1WTO.html#a649f1a93b6fd51553f6e144f2fe99542">SVF::WTO::_allComponents</a></div><div class="ttdeci">WTOComponentRefSet _allComponents</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00544">WTO.h:544</a></div></div>
904
- <div class="ttc" id="aclassSVF_1_1WTOCycle_html_acb7a52e66c5ef16f01cf6b7637578fcd"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#acb7a52e66c5ef16f01cf6b7637578fcd">SVF::WTOCycle::accept</a></div><div class="ttdeci">void accept(WTOComponentVisitor&lt; GraphT &gt; &amp;v) const override</div><div class="ttdoc">Accept the given visitor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00429">WTO.h:429</a></div></div>
905
- <div class="ttc" id="aclassSVF_1_1WTO_html_ae8e57cc333199bc8b5aaff0a825eed47"><div class="ttname"><a href="classSVF_1_1WTO.html#ae8e57cc333199bc8b5aaff0a825eed47">SVF::WTO::_graph</a></div><div class="ttdeci">GraphT * _graph</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00550">WTO.h:550</a></div></div>
906
- <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_ad4171d23b56c5402687bac3febb4b233"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#ad4171d23b56c5402687bac3febb4b233">SVF::WTOCycleDepth::operator^</a></div><div class="ttdeci">WTOCycleDepth operator^(const WTOCycleDepth &amp;other) const</div><div class="ttdoc">Return the common prefix of the given cycle depths.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00154">WTO.h:154</a></div></div>
907
- <div class="ttc" id="aclassSVF_1_1WTO_html_a8022c9a6ebc62ed292698f07ab93bafe"><div class="ttname"><a href="classSVF_1_1WTO.html#a8022c9a6ebc62ed292698f07ab93bafe">SVF::WTO::WTOCycleDepthPtr</a></div><div class="ttdeci">std::shared_ptr&lt; GraphTWTOCycleDepth &gt; WTOCycleDepthPtr</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00535">WTO.h:535</a></div></div>
908
- <div class="ttc" id="astructSVF_1_1has__edgetype_html"><div class="ttname"><a href="structSVF_1_1has__edgetype.html">SVF::has_edgetype</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00061">WTO.h:61</a></div></div>
909
- <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a03fd55dd34c48d22cefcaf6dc93f734a"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a03fd55dd34c48d22cefcaf6dc93f734a">SVF::WTOCycle::end</a></div><div class="ttdeci">Iterator end() const</div><div class="ttdoc">End iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00423">WTO.h:423</a></div></div>
898
+ <div class="ttc" id="aclassSVF_1_1WTOCycle_html_adaa4b0f063eaf6f1bd02da38fd3b29de"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#adaa4b0f063eaf6f1bd02da38fd3b29de">SVF::WTOCycle::WTOComponentT</a></div><div class="ttdeci">WTOComponent&lt; GraphT &gt; WTOComponentT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00386">WTO.h:386</a></div></div>
899
+ <div class="ttc" id="aclassSVF_1_1WTONode_html_acb1c9f5fa393500a8efe9f885b1748ce"><div class="ttname"><a href="classSVF_1_1WTONode.html#acb1c9f5fa393500a8efe9f885b1748ce">SVF::WTONode::WTONode</a></div><div class="ttdeci">WTONode(const NodeT *node)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00338">WTO.h:338</a></div></div>
900
+ <div class="ttc" id="aclassSVF_1_1WTOCycle_html"><div class="ttname"><a href="classSVF_1_1WTOCycle.html">SVF::WTOCycle</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00048">WTO.h:48</a></div></div>
901
+ <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_af4c6d0f992a1844aa21a6d26be66b34c"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#af4c6d0f992a1844aa21a6d26be66b34c">SVF::WTOCycleDepth::NodeRefList</a></div><div class="ttdeci">std::vector&lt; const NodeT * &gt; NodeRefList</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00109">WTO.h:109</a></div></div>
902
+ <div class="ttc" id="aclassSVF_1_1WTOComponent_html_acb129a6e7dc72b347f21325fbfe970b1"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#acb129a6e7dc72b347f21325fbfe970b1">SVF::WTOComponent::getKind</a></div><div class="ttdeci">WTOCT getKind() const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00302">WTO.h:302</a></div></div>
903
+ <div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html_a853dc3f6646858f76de023925d9d6bce"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a853dc3f6646858f76de023925d9d6bce">SVF::WTO::WTOCycleDepthBuilder::_nodeToWTOCycleDepth</a></div><div class="ttdeci">NodeRefToWTOCycleDepthPtr &amp; _nodeToWTOCycleDepth</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00678">WTO.h:678</a></div></div>
904
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a649f1a93b6fd51553f6e144f2fe99542"><div class="ttname"><a href="classSVF_1_1WTO.html#a649f1a93b6fd51553f6e144f2fe99542">SVF::WTO::_allComponents</a></div><div class="ttdeci">WTOComponentRefSet _allComponents</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00545">WTO.h:545</a></div></div>
905
+ <div class="ttc" id="aclassSVF_1_1WTOCycle_html_acb7a52e66c5ef16f01cf6b7637578fcd"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#acb7a52e66c5ef16f01cf6b7637578fcd">SVF::WTOCycle::accept</a></div><div class="ttdeci">void accept(WTOComponentVisitor&lt; GraphT &gt; &amp;v) const override</div><div class="ttdoc">Accept the given visitor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00430">WTO.h:430</a></div></div>
906
+ <div class="ttc" id="aclassSVF_1_1WTO_html_ae8e57cc333199bc8b5aaff0a825eed47"><div class="ttname"><a href="classSVF_1_1WTO.html#ae8e57cc333199bc8b5aaff0a825eed47">SVF::WTO::_graph</a></div><div class="ttdeci">GraphT * _graph</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00551">WTO.h:551</a></div></div>
907
+ <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_ad4171d23b56c5402687bac3febb4b233"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#ad4171d23b56c5402687bac3febb4b233">SVF::WTOCycleDepth::operator^</a></div><div class="ttdeci">WTOCycleDepth operator^(const WTOCycleDepth &amp;other) const</div><div class="ttdoc">Return the common prefix of the given cycle depths.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00155">WTO.h:155</a></div></div>
908
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a8022c9a6ebc62ed292698f07ab93bafe"><div class="ttname"><a href="classSVF_1_1WTO.html#a8022c9a6ebc62ed292698f07ab93bafe">SVF::WTO::WTOCycleDepthPtr</a></div><div class="ttdeci">std::shared_ptr&lt; GraphTWTOCycleDepth &gt; WTOCycleDepthPtr</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00536">WTO.h:536</a></div></div>
909
+ <div class="ttc" id="astructSVF_1_1has__edgetype_html"><div class="ttname"><a href="structSVF_1_1has__edgetype.html">SVF::has_edgetype</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00062">WTO.h:62</a></div></div>
910
+ <div class="ttc" id="aclassSVF_1_1WTOCycle_html_a03fd55dd34c48d22cefcaf6dc93f734a"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a03fd55dd34c48d22cefcaf6dc93f734a">SVF::WTOCycle::end</a></div><div class="ttdeci">Iterator end() const</div><div class="ttdoc">End iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00424">WTO.h:424</a></div></div>
910
911
  <div class="ttc" id="aclassSVF_1_1WTOComponent_html_a2b92d79dd17e8d89f2441c5655157b80"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a2b92d79dd17e8d89f2441c5655157b80">SVF::WTOComponent::accept</a></div><div class="ttdeci">virtual void accept(WTOComponentVisitor&lt; GraphT &gt; &amp;) const =0</div><div class="ttdoc">Accept the given visitor.</div></div>
911
- <div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html_a51be6e437a0d715e2571242c4dde1794"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a51be6e437a0d715e2571242c4dde1794">SVF::WTO::WTOCycleDepthBuilder::visit</a></div><div class="ttdeci">void visit(const WTONodeT &amp;node) override</div><div class="ttdoc">Visit the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00702">WTO.h:702</a></div></div>
912
- <div class="ttc" id="aclassSVF_1_1WTOComponent_html_a1da81c85c89d975b6df9dafdb32dc788"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a1da81c85c89d975b6df9dafdb32dc788">SVF::WTOComponent::_type</a></div><div class="ttdeci">WTOCT _type</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00318">WTO.h:318</a></div></div>
913
- <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a375803014eebb65532a843eee6d9a690"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a375803014eebb65532a843eee6d9a690">SVF::WTOCycleDepth::Iterator</a></div><div class="ttdeci">NodeRefList::const_iterator Iterator</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00111">WTO.h:111</a></div></div>
914
- <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a44cce3ef52a02cfe8d650e9ce079c210"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a44cce3ef52a02cfe8d650e9ce079c210">SVF::WTOCycleDepth::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const WTOCycleDepth &amp;other) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00210">WTO.h:210</a></div></div>
915
- <div class="ttc" id="aclassSVF_1_1WTO_html_a92034688db3f67feb6e997d4c03f769f"><div class="ttname"><a href="classSVF_1_1WTO.html#a92034688db3f67feb6e997d4c03f769f">SVF::WTO::getCDN</a></div><div class="ttdeci">CycleDepthNumber getCDN(const NodeT *n) const</div><div class="ttdoc">Return the depth-first number of the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00722">WTO.h:722</a></div></div>
916
- <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a6053b66d1350ef6ea9a0c8095869f606"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a6053b66d1350ef6ea9a0c8095869f606">SVF::WTOCycleDepth::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;o, const WTOCycleDepth&lt; GraphT &gt; &amp;wto)</div><div class="ttdoc">Overloading operator &lt;&lt; for dumping ICFG node ID.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00256">WTO.h:256</a></div></div>
917
- <div class="ttc" id="aclassSVF_1_1WTO_html_aa50fbcbff0e3aa30bce2ba1b810e8ca8"><div class="ttname"><a href="classSVF_1_1WTO.html#aa50fbcbff0e3aa30bce2ba1b810e8ca8">SVF::WTO::cycleDepth</a></div><div class="ttdeci">const GraphTWTOCycleDepth &amp; cycleDepth(const NodeT *n) const</div><div class="ttdoc">Return the cycleDepth of the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00611">WTO.h:611</a></div></div>
918
- <div class="ttc" id="aclassSVF_1_1WTONode_html_aae0fe6c5464535f41f4723c23615e5cd"><div class="ttname"><a href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd">SVF::WTONode::node</a></div><div class="ttdeci">const NodeT * node() const</div><div class="ttdoc">Return the graph node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00343">WTO.h:343</a></div></div>
919
- <div class="ttc" id="aclassSVF_1_1WTOCycle_html_ace60ecb07603681de5c3020d0d3c5079"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079">SVF::WTOCycle::head</a></div><div class="ttdeci">const NodeT * head() const</div><div class="ttdoc">Return the head of the cycle.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00411">WTO.h:411</a></div></div>
912
+ <div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html_a51be6e437a0d715e2571242c4dde1794"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a51be6e437a0d715e2571242c4dde1794">SVF::WTO::WTOCycleDepthBuilder::visit</a></div><div class="ttdeci">void visit(const WTONodeT &amp;node) override</div><div class="ttdoc">Visit the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00703">WTO.h:703</a></div></div>
913
+ <div class="ttc" id="aclassSVF_1_1WTOComponent_html_a1da81c85c89d975b6df9dafdb32dc788"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a1da81c85c89d975b6df9dafdb32dc788">SVF::WTOComponent::_type</a></div><div class="ttdeci">WTOCT _type</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00319">WTO.h:319</a></div></div>
914
+ <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a375803014eebb65532a843eee6d9a690"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a375803014eebb65532a843eee6d9a690">SVF::WTOCycleDepth::Iterator</a></div><div class="ttdeci">NodeRefList::const_iterator Iterator</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00112">WTO.h:112</a></div></div>
915
+ <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a44cce3ef52a02cfe8d650e9ce079c210"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a44cce3ef52a02cfe8d650e9ce079c210">SVF::WTOCycleDepth::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const WTOCycleDepth &amp;other) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00211">WTO.h:211</a></div></div>
916
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a92034688db3f67feb6e997d4c03f769f"><div class="ttname"><a href="classSVF_1_1WTO.html#a92034688db3f67feb6e997d4c03f769f">SVF::WTO::getCDN</a></div><div class="ttdeci">CycleDepthNumber getCDN(const NodeT *n) const</div><div class="ttdoc">Return the depth-first number of the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00723">WTO.h:723</a></div></div>
917
+ <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a6053b66d1350ef6ea9a0c8095869f606"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a6053b66d1350ef6ea9a0c8095869f606">SVF::WTOCycleDepth::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;o, const WTOCycleDepth&lt; GraphT &gt; &amp;wto)</div><div class="ttdoc">Overloading operator &lt;&lt; for dumping ICFG node ID.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00257">WTO.h:257</a></div></div>
918
+ <div class="ttc" id="aclassSVF_1_1WTO_html_aa50fbcbff0e3aa30bce2ba1b810e8ca8"><div class="ttname"><a href="classSVF_1_1WTO.html#aa50fbcbff0e3aa30bce2ba1b810e8ca8">SVF::WTO::cycleDepth</a></div><div class="ttdeci">const GraphTWTOCycleDepth &amp; cycleDepth(const NodeT *n) const</div><div class="ttdoc">Return the cycleDepth of the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00612">WTO.h:612</a></div></div>
919
+ <div class="ttc" id="aclassSVF_1_1WTONode_html_aae0fe6c5464535f41f4723c23615e5cd"><div class="ttname"><a href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd">SVF::WTONode::node</a></div><div class="ttdeci">const NodeT * node() const</div><div class="ttdoc">Return the graph node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00344">WTO.h:344</a></div></div>
920
+ <div class="ttc" id="aclassSVF_1_1WTOCycle_html_ace60ecb07603681de5c3020d0d3c5079"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079">SVF::WTOCycle::head</a></div><div class="ttdeci">const NodeT * head() const</div><div class="ttdoc">Return the head of the cycle.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00412">WTO.h:412</a></div></div>
920
921
  <div class="ttc" id="aSVFValue_8h_html"><div class="ttname"><a href="SVFValue_8h.html">SVFValue.h</a></div></div>
921
- <div class="ttc" id="aclassSVF_1_1WTONode_html_a65738a32240777ce6ded22d2c4adbaf8"><div class="ttname"><a href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8">SVF::WTONode::NodeT</a></div><div class="ttdeci">GraphT::NodeType NodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00329">WTO.h:329</a></div></div>
922
- <div class="ttc" id="aclassSVF_1_1WTO_html_a9103af81d0c21787dcc96188ea243d0a"><div class="ttname"><a href="classSVF_1_1WTO.html#a9103af81d0c21787dcc96188ea243d0a">SVF::WTO::NodeRefToWTOCycleMap</a></div><div class="ttdeci">Map&lt; const NodeT *, const WTOCycleT * &gt; NodeRefToWTOCycleMap</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00529">WTO.h:529</a></div></div>
923
- <div class="ttc" id="aclassSVF_1_1WTO_html_a96f37d843d4bd7c2b30cfc5bc59cf90d"><div class="ttname"><a href="classSVF_1_1WTO.html#a96f37d843d4bd7c2b30cfc5bc59cf90d">SVF::WTO::WTONodeT</a></div><div class="ttdeci">WTONode&lt; GraphT &gt; WTONodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00521">WTO.h:521</a></div></div>
924
- <div class="ttc" id="aclassSVF_1_1WTO_html_acbc503aa22e6d9bf2f6406fc45ebbab1"><div class="ttname"><a href="classSVF_1_1WTO.html#acbc503aa22e6d9bf2f6406fc45ebbab1">SVF::WTO::_components</a></div><div class="ttdeci">WTOComponentRefList _components</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00543">WTO.h:543</a></div></div>
922
+ <div class="ttc" id="aclassSVF_1_1WTONode_html_a65738a32240777ce6ded22d2c4adbaf8"><div class="ttname"><a href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8">SVF::WTONode::NodeT</a></div><div class="ttdeci">GraphT::NodeType NodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00330">WTO.h:330</a></div></div>
923
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a9103af81d0c21787dcc96188ea243d0a"><div class="ttname"><a href="classSVF_1_1WTO.html#a9103af81d0c21787dcc96188ea243d0a">SVF::WTO::NodeRefToWTOCycleMap</a></div><div class="ttdeci">Map&lt; const NodeT *, const WTOCycleT * &gt; NodeRefToWTOCycleMap</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00530">WTO.h:530</a></div></div>
924
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a96f37d843d4bd7c2b30cfc5bc59cf90d"><div class="ttname"><a href="classSVF_1_1WTO.html#a96f37d843d4bd7c2b30cfc5bc59cf90d">SVF::WTO::WTONodeT</a></div><div class="ttdeci">WTONode&lt; GraphT &gt; WTONodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00522">WTO.h:522</a></div></div>
925
+ <div class="ttc" id="aclassSVF_1_1WTO_html_acbc503aa22e6d9bf2f6406fc45ebbab1"><div class="ttname"><a href="classSVF_1_1WTO.html#acbc503aa22e6d9bf2f6406fc45ebbab1">SVF::WTO::_components</a></div><div class="ttdeci">WTOComponentRefList _components</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00544">WTO.h:544</a></div></div>
925
926
  <div class="ttc" id="anamespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00097">GeneralType.h:97</a></div></div>
926
- <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a0aa519ff93cdab15f9324c6b05df8e47"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a0aa519ff93cdab15f9324c6b05df8e47">SVF::WTOCycleDepth::operator&gt;=</a></div><div class="ttdeci">bool operator&gt;=(const WTOCycleDepth &amp;other) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00225">WTO.h:225</a></div></div>
927
- <div class="ttc" id="aclassSVF_1_1WTOComponentVisitor_html_a978324f9b276a9d086b9e7a12feac997"><div class="ttname"><a href="classSVF_1_1WTOComponentVisitor.html#a978324f9b276a9d086b9e7a12feac997">SVF::WTOComponentVisitor::WTOCycleT</a></div><div class="ttdeci">WTOCycle&lt; GraphT &gt; WTOCycleT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00476">WTO.h:476</a></div></div>
928
- <div class="ttc" id="aclassSVF_1_1WTO_html_a54d8c25df36b0c44d52369c4294a1ed8"><div class="ttname"><a href="classSVF_1_1WTO.html#a54d8c25df36b0c44d52369c4294a1ed8">SVF::WTO::_nodeToCDN</a></div><div class="ttdeci">NodeRefToCycleDepthNumber _nodeToCDN</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00547">WTO.h:547</a></div></div>
929
- <div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html_ad40b8e78a27207b8cf113517aed6dca3"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#ad40b8e78a27207b8cf113517aed6dca3">SVF::WTO::WTOCycleDepthBuilder::_wtoCycleDepth</a></div><div class="ttdeci">WTOCycleDepthPtr _wtoCycleDepth</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00676">WTO.h:676</a></div></div>
930
- <div class="ttc" id="aclassSVF_1_1WTO_html_a620d528ac72c17913b462acedb8e88c3"><div class="ttname"><a href="classSVF_1_1WTO.html#a620d528ac72c17913b462acedb8e88c3">SVF::WTO::EdgeT</a></div><div class="ttdeci">GraphT::EdgeType EdgeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00518">WTO.h:518</a></div></div>
931
- <div class="ttc" id="aclassSVF_1_1WTO_html_ae2cde12ccd4206b7ace44bc2146c792e"><div class="ttname"><a href="classSVF_1_1WTO.html#ae2cde12ccd4206b7ace44bc2146c792e">SVF::WTO::GraphTWTOCycleDepth</a></div><div class="ttdeci">WTOCycleDepth&lt; GraphT &gt; GraphTWTOCycleDepth</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00519">WTO.h:519</a></div></div>
927
+ <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a0aa519ff93cdab15f9324c6b05df8e47"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a0aa519ff93cdab15f9324c6b05df8e47">SVF::WTOCycleDepth::operator&gt;=</a></div><div class="ttdeci">bool operator&gt;=(const WTOCycleDepth &amp;other) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00226">WTO.h:226</a></div></div>
928
+ <div class="ttc" id="aclassSVF_1_1WTOComponentVisitor_html_a978324f9b276a9d086b9e7a12feac997"><div class="ttname"><a href="classSVF_1_1WTOComponentVisitor.html#a978324f9b276a9d086b9e7a12feac997">SVF::WTOComponentVisitor::WTOCycleT</a></div><div class="ttdeci">WTOCycle&lt; GraphT &gt; WTOCycleT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00477">WTO.h:477</a></div></div>
929
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a54d8c25df36b0c44d52369c4294a1ed8"><div class="ttname"><a href="classSVF_1_1WTO.html#a54d8c25df36b0c44d52369c4294a1ed8">SVF::WTO::_nodeToCDN</a></div><div class="ttdeci">NodeRefToCycleDepthNumber _nodeToCDN</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00548">WTO.h:548</a></div></div>
930
+ <div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html_ad40b8e78a27207b8cf113517aed6dca3"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#ad40b8e78a27207b8cf113517aed6dca3">SVF::WTO::WTOCycleDepthBuilder::_wtoCycleDepth</a></div><div class="ttdeci">WTOCycleDepthPtr _wtoCycleDepth</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00677">WTO.h:677</a></div></div>
931
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a620d528ac72c17913b462acedb8e88c3"><div class="ttname"><a href="classSVF_1_1WTO.html#a620d528ac72c17913b462acedb8e88c3">SVF::WTO::EdgeT</a></div><div class="ttdeci">GraphT::EdgeType EdgeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00519">WTO.h:519</a></div></div>
932
+ <div class="ttc" id="aclassSVF_1_1WTO_html_ae2cde12ccd4206b7ace44bc2146c792e"><div class="ttname"><a href="classSVF_1_1WTO.html#ae2cde12ccd4206b7ace44bc2146c792e">SVF::WTO::GraphTWTOCycleDepth</a></div><div class="ttdeci">WTOCycleDepth&lt; GraphT &gt; GraphTWTOCycleDepth</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00520">WTO.h:520</a></div></div>
932
933
  <div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00046">GeneralType.h:46</a></div></div>
933
- <div class="ttc" id="aclassSVF_1_1WTOCycle_html_ad0a2a2bb4c2d6eafaedbf04ced31243d"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#ad0a2a2bb4c2d6eafaedbf04ced31243d">SVF::WTOCycle::Iterator</a></div><div class="ttdeci">WTOComponentRefList::const_iterator Iterator</div><div class="ttdoc">Iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00393">WTO.h:393</a></div></div>
934
- <div class="ttc" id="aclassSVF_1_1WTO_html_a93a5b48c93dc4f01f50040e71c5aeada"><div class="ttname"><a href="classSVF_1_1WTO.html#a93a5b48c93dc4f01f50040e71c5aeada">SVF::WTO::NodeRefToCycleDepthNumber</a></div><div class="ttdeci">Map&lt; const NodeT *, CycleDepthNumber &gt; NodeRefToCycleDepthNumber</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00533">WTO.h:533</a></div></div>
935
- <div class="ttc" id="aclassSVF_1_1WTO_html_a928688b5f1e2111311262ccd936b1ca9"><div class="ttname"><a href="classSVF_1_1WTO.html#a928688b5f1e2111311262ccd936b1ca9">SVF::WTO::WTOComponentRefSet</a></div><div class="ttdeci">Set&lt; WTOComponentPtr &gt; WTOComponentRefSet</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00528">WTO.h:528</a></div></div>
936
- <div class="ttc" id="aclassSVF_1_1WTO_html_ab35eabe45c6b944b26532fbe630cd019"><div class="ttname"><a href="classSVF_1_1WTO.html#ab35eabe45c6b944b26532fbe630cd019">SVF::WTO::Stack</a></div><div class="ttdeci">std::vector&lt; const NodeT * &gt; Stack</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00534">WTO.h:534</a></div></div>
937
- <div class="ttc" id="aclassSVF_1_1WTO_html_a5752288fb686b9ef5d6c8edc0cee6348"><div class="ttname"><a href="classSVF_1_1WTO.html#a5752288fb686b9ef5d6c8edc0cee6348">SVF::WTO::headRefToCycle</a></div><div class="ttdeci">NodeRefToWTOCycleMap headRefToCycle</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00545">WTO.h:545</a></div></div>
938
- <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a8ca19a3f2f7e79c20c4a4f98897470c7"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a8ca19a3f2f7e79c20c4a4f98897470c7">SVF::WTOCycleDepth::operator&gt;</a></div><div class="ttdeci">bool operator&gt;(const WTOCycleDepth &amp;other) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00230">WTO.h:230</a></div></div>
939
- <div class="ttc" id="aclassSVF_1_1WTOComponentVisitor_html"><div class="ttname"><a href="classSVF_1_1WTOComponentVisitor.html">SVF::WTOComponentVisitor</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00049">WTO.h:49</a></div></div>
934
+ <div class="ttc" id="aclassSVF_1_1WTOCycle_html_ad0a2a2bb4c2d6eafaedbf04ced31243d"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#ad0a2a2bb4c2d6eafaedbf04ced31243d">SVF::WTOCycle::Iterator</a></div><div class="ttdeci">WTOComponentRefList::const_iterator Iterator</div><div class="ttdoc">Iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00394">WTO.h:394</a></div></div>
935
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a93a5b48c93dc4f01f50040e71c5aeada"><div class="ttname"><a href="classSVF_1_1WTO.html#a93a5b48c93dc4f01f50040e71c5aeada">SVF::WTO::NodeRefToCycleDepthNumber</a></div><div class="ttdeci">Map&lt; const NodeT *, CycleDepthNumber &gt; NodeRefToCycleDepthNumber</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00534">WTO.h:534</a></div></div>
936
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a928688b5f1e2111311262ccd936b1ca9"><div class="ttname"><a href="classSVF_1_1WTO.html#a928688b5f1e2111311262ccd936b1ca9">SVF::WTO::WTOComponentRefSet</a></div><div class="ttdeci">Set&lt; WTOComponentPtr &gt; WTOComponentRefSet</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00529">WTO.h:529</a></div></div>
937
+ <div class="ttc" id="aclassSVF_1_1WTO_html_ab35eabe45c6b944b26532fbe630cd019"><div class="ttname"><a href="classSVF_1_1WTO.html#ab35eabe45c6b944b26532fbe630cd019">SVF::WTO::Stack</a></div><div class="ttdeci">std::vector&lt; const NodeT * &gt; Stack</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00535">WTO.h:535</a></div></div>
938
+ <div class="ttc" id="aclassSVF_1_1WTO_html_a5752288fb686b9ef5d6c8edc0cee6348"><div class="ttname"><a href="classSVF_1_1WTO.html#a5752288fb686b9ef5d6c8edc0cee6348">SVF::WTO::headRefToCycle</a></div><div class="ttdeci">NodeRefToWTOCycleMap headRefToCycle</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00546">WTO.h:546</a></div></div>
939
+ <div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a8ca19a3f2f7e79c20c4a4f98897470c7"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a8ca19a3f2f7e79c20c4a4f98897470c7">SVF::WTOCycleDepth::operator&gt;</a></div><div class="ttdeci">bool operator&gt;(const WTOCycleDepth &amp;other) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00231">WTO.h:231</a></div></div>
940
+ <div class="ttc" id="aclassSVF_1_1WTOComponentVisitor_html"><div class="ttname"><a href="classSVF_1_1WTOComponentVisitor.html">SVF::WTOComponentVisitor</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00050">WTO.h:50</a></div></div>
940
941
  <!-- start footer part -->
941
942
  <hr class="footer"/><address class="footer"><small>
942
943
  Generated by &#160;<a href="http://www.doxygen.org/index.html">