svf-tools 1.0.557 → 1.0.560

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 (221) hide show
  1. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +15 -15
  2. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +12 -11
  3. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +11 -10
  4. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +47 -46
  5. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +9 -8
  6. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +35 -34
  7. package/SVF-doxygen/html/html/Andersen_8h_source.html +6 -6
  8. package/SVF-doxygen/html/html/CFLGrammar_8txt.html +8 -8
  9. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +10 -1
  10. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +3 -1
  11. package/SVF-doxygen/html/html/CHGBuilder_8cpp.html +2 -2
  12. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +19 -18
  13. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +15 -15
  14. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +4 -4
  15. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +13 -12
  16. package/SVF-doxygen/html/html/DDAPass_8h_source.html +11 -11
  17. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +20 -19
  18. package/SVF-doxygen/html/html/DDAStat_8h_source.html +13 -13
  19. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +2 -2
  20. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +5 -2
  21. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -2
  22. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +3 -3
  23. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +5 -4
  24. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +2 -2
  25. package/SVF-doxygen/html/html/MHP_8cpp_source.html +2 -2
  26. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +5 -5
  27. package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
  28. package/SVF-doxygen/html/html/MTA_8cpp_source.html +2 -2
  29. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
  30. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +2 -2
  31. package/SVF-doxygen/html/html/PEGGrammar_8txt.html +14 -32
  32. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +67 -69
  33. package/SVF-doxygen/html/html/PTAStat_8h.html +1 -0
  34. package/SVF-doxygen/html/html/PTAStat_8h_source.html +70 -76
  35. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +2 -2
  36. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
  37. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +2 -1
  38. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +5 -4
  39. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +22 -21
  40. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +5 -5
  41. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +5 -5
  42. package/SVF-doxygen/html/html/SVFG_8h_source.html +3 -3
  43. package/SVF-doxygen/html/html/SVFStat_8cpp.html +81 -0
  44. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +85 -0
  45. package/SVF-doxygen/html/html/SVFStat_8h.html +94 -0
  46. package/SVF-doxygen/html/html/SVFStat_8h_source.html +103 -0
  47. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +1 -1
  48. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  49. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  50. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +3 -3
  51. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
  52. package/SVF-doxygen/html/html/WPAStat_8h_source.html +8 -8
  53. package/SVF-doxygen/html/html/annotated.html +39 -38
  54. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder-members.html +13 -10
  55. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +190 -2
  56. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +79 -79
  57. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +15 -15
  58. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +37 -37
  59. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +1 -1
  60. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +22 -22
  61. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat-members.html +24 -22
  62. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +97 -86
  63. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.png +0 -0
  64. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +24 -24
  65. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +47 -47
  66. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +4 -4
  67. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +30 -30
  68. package/SVF-doxygen/html/html/classSVF_1_1DDAStat-members.html +24 -23
  69. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +80 -67
  70. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.png +0 -0
  71. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +4 -4
  72. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +5 -4
  73. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +40 -5
  74. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +4 -4
  75. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +26 -26
  76. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat-members.html +24 -22
  77. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +67 -56
  78. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.png +0 -0
  79. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat-members.html +23 -21
  80. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +55 -42
  81. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.png +0 -0
  82. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +6 -6
  83. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +4 -4
  84. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +2 -2
  85. package/SVF-doxygen/html/html/classSVF_1_1MTAStat-members.html +25 -23
  86. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +59 -48
  87. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.png +0 -0
  88. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +5 -5
  89. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat-members.html +22 -21
  90. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +57 -44
  91. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.png +0 -0
  92. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +6 -6
  93. package/SVF-doxygen/html/html/classSVF_1_1Options.html +2 -2
  94. package/SVF-doxygen/html/html/classSVF_1_1PTAStat-members.html +24 -22
  95. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +186 -420
  96. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.png +0 -0
  97. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +2 -2
  98. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +12 -12
  99. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat-members.html +33 -32
  100. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +100 -87
  101. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.png +0 -0
  102. package/SVF-doxygen/html/html/classSVF_1_1SVFStat-members.html +100 -0
  103. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +605 -0
  104. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.png +0 -0
  105. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +1 -1
  106. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +4 -4
  107. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +12 -12
  108. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat-members.html +26 -24
  109. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +65 -54
  110. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.png +0 -0
  111. package/SVF-doxygen/html/html/classes.html +50 -50
  112. package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
  113. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  114. package/SVF-doxygen/html/html/dir_862d3276083eaac55caed79b9120bf29.html +2 -0
  115. package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
  116. package/SVF-doxygen/html/html/files.html +10 -8
  117. package/SVF-doxygen/html/html/functions_0x7e.html +3 -0
  118. package/SVF-doxygen/html/html/functions_a.html +11 -5
  119. package/SVF-doxygen/html/html/functions_c.html +27 -25
  120. package/SVF-doxygen/html/html/functions_e.html +3 -2
  121. package/SVF-doxygen/html/html/functions_enum.html +1 -1
  122. package/SVF-doxygen/html/html/functions_eval_c.html +1 -1
  123. package/SVF-doxygen/html/html/functions_eval_w.html +1 -1
  124. package/SVF-doxygen/html/html/functions_f.html +3 -3
  125. package/SVF-doxygen/html/html/functions_func.html +16 -10
  126. package/SVF-doxygen/html/html/functions_func_0x7e.html +3 -0
  127. package/SVF-doxygen/html/html/functions_func_c.html +29 -25
  128. package/SVF-doxygen/html/html/functions_func_e.html +1 -1
  129. package/SVF-doxygen/html/html/functions_func_g.html +1 -1
  130. package/SVF-doxygen/html/html/functions_func_i.html +11 -8
  131. package/SVF-doxygen/html/html/functions_func_p.html +9 -7
  132. package/SVF-doxygen/html/html/functions_func_s.html +14 -11
  133. package/SVF-doxygen/html/html/functions_g.html +2 -2
  134. package/SVF-doxygen/html/html/functions_i.html +11 -8
  135. package/SVF-doxygen/html/html/functions_l.html +6 -6
  136. package/SVF-doxygen/html/html/functions_m.html +2 -1
  137. package/SVF-doxygen/html/html/functions_n.html +1 -1
  138. package/SVF-doxygen/html/html/functions_o.html +3 -3
  139. package/SVF-doxygen/html/html/functions_p.html +20 -16
  140. package/SVF-doxygen/html/html/functions_s.html +19 -15
  141. package/SVF-doxygen/html/html/functions_t.html +8 -8
  142. package/SVF-doxygen/html/html/functions_type_n.html +1 -1
  143. package/SVF-doxygen/html/html/functions_type_s.html +1 -1
  144. package/SVF-doxygen/html/html/functions_type_t.html +1 -1
  145. package/SVF-doxygen/html/html/functions_v.html +6 -6
  146. package/SVF-doxygen/html/html/functions_vars_e.html +1 -0
  147. package/SVF-doxygen/html/html/functions_vars_g.html +1 -1
  148. package/SVF-doxygen/html/html/functions_vars_m.html +1 -0
  149. package/SVF-doxygen/html/html/functions_vars_s.html +1 -0
  150. package/SVF-doxygen/html/html/functions_vars_t.html +1 -1
  151. package/SVF-doxygen/html/html/functions_w.html +1 -1
  152. package/SVF-doxygen/html/html/globals_g.html +3 -3
  153. package/SVF-doxygen/html/html/globals_v.html +1 -2
  154. package/SVF-doxygen/html/html/globals_vars.html +3 -4
  155. package/SVF-doxygen/html/html/hierarchy.html +47 -46
  156. package/SVF-doxygen/html/html/namespaceSVF.html +2 -0
  157. package/SVF-doxygen/html/html/search/all_1.js +2 -0
  158. package/SVF-doxygen/html/html/search/all_10.js +10 -10
  159. package/SVF-doxygen/html/html/search/all_11.js +1 -1
  160. package/SVF-doxygen/html/html/search/all_12.js +11 -8
  161. package/SVF-doxygen/html/html/search/all_13.js +4 -4
  162. package/SVF-doxygen/html/html/search/all_14.js +1 -1
  163. package/SVF-doxygen/html/html/search/all_15.js +5 -5
  164. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  165. package/SVF-doxygen/html/html/search/all_19.js +1 -0
  166. package/SVF-doxygen/html/html/search/all_3.js +4 -3
  167. package/SVF-doxygen/html/html/search/all_5.js +2 -2
  168. package/SVF-doxygen/html/html/search/all_6.js +1 -1
  169. package/SVF-doxygen/html/html/search/all_7.js +4 -4
  170. package/SVF-doxygen/html/html/search/all_9.js +2 -1
  171. package/SVF-doxygen/html/html/search/all_c.js +4 -4
  172. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  173. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  174. package/SVF-doxygen/html/html/search/all_f.js +2 -2
  175. package/SVF-doxygen/html/html/search/classes_f.js +1 -0
  176. package/SVF-doxygen/html/html/search/enums_1.js +1 -1
  177. package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
  178. package/SVF-doxygen/html/html/search/enumvalues_2.js +1 -1
  179. package/SVF-doxygen/html/html/search/files_d.js +2 -0
  180. package/SVF-doxygen/html/html/search/functions_0.js +2 -0
  181. package/SVF-doxygen/html/html/search/functions_11.js +2 -1
  182. package/SVF-doxygen/html/html/search/functions_17.js +1 -0
  183. package/SVF-doxygen/html/html/search/functions_2.js +2 -1
  184. package/SVF-doxygen/html/html/search/functions_4.js +1 -1
  185. package/SVF-doxygen/html/html/search/functions_6.js +1 -1
  186. package/SVF-doxygen/html/html/search/functions_8.js +1 -0
  187. package/SVF-doxygen/html/html/search/functions_f.js +4 -4
  188. package/SVF-doxygen/html/html/search/typedefs_10.js +1 -1
  189. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  190. package/SVF-doxygen/html/html/search/typedefs_c.js +1 -1
  191. package/SVF-doxygen/html/html/search/variables_12.js +1 -1
  192. package/SVF-doxygen/html/html/search/variables_13.js +2 -2
  193. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  194. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  195. package/SVF-doxygen/html/html/search/variables_5.js +1 -1
  196. package/SVF-doxygen/html/html/search/variables_7.js +3 -3
  197. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  198. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  199. package/include/CFL/CFLGraphBuilder.h +9 -0
  200. package/include/CFL/PEGGrammar.txt +4 -8
  201. package/include/Graphs/ICFGStat.h +1 -1
  202. package/include/Util/ExtAPI.h +3 -0
  203. package/include/Util/ExtAPI.json +1456 -44
  204. package/include/Util/PTAStat.h +6 -36
  205. package/include/Util/SVFStat.h +95 -0
  206. package/include/WPA/AndersenPWC.h +1 -1
  207. package/lib/CFL/CFLGraphBuilder.cpp +44 -0
  208. package/lib/DDA/DDAPass.cpp +1 -0
  209. package/lib/DDA/DDAStat.cpp +1 -0
  210. package/lib/Graphs/SVFGReadWrite.cpp +1 -0
  211. package/lib/Graphs/SVFGStat.cpp +1 -0
  212. package/lib/SVF-FE/CHGBuilder.cpp +1 -0
  213. package/lib/Util/ExtAPI.cpp +42 -4
  214. package/lib/Util/PTAStat.cpp +2 -21
  215. package/lib/Util/SVFStat.cpp +58 -0
  216. package/lib/WPA/Andersen.cpp +1 -0
  217. package/lib/WPA/AndersenSCD.cpp +1 -0
  218. package/lib/WPA/AndersenSFR.cpp +1 -0
  219. package/lib/WPA/AndersenStat.cpp +1 -0
  220. package/lib/WPA/AndersenWaveDiff.cpp +1 -0
  221. package/package.json +1 -1
@@ -0,0 +1,605 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+ <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+ <meta name="generator" content="Doxygen 1.8.13"/>
7
+ <meta name="viewport" content="width=device-width, initial-scale=1"/>
8
+ <title>Static Value-Flow Analysis: SVF::SVFStat Class Reference</title>
9
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
10
+ <script type="text/javascript" src="jquery.js"></script>
11
+ <script type="text/javascript" src="dynsections.js"></script>
12
+ <link href="search/search.css" rel="stylesheet" type="text/css"/>
13
+ <script type="text/javascript" src="search/searchdata.js"></script>
14
+ <script type="text/javascript" src="search/search.js"></script>
15
+ <link href="doxygen.css" rel="stylesheet" type="text/css" />
16
+ </head>
17
+ <body>
18
+ <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19
+ <div id="titlearea">
20
+ <table cellspacing="0" cellpadding="0">
21
+ <tbody>
22
+ <tr style="height: 56px;">
23
+ <td id="projectalign" style="padding-left: 0.5em;">
24
+ <div id="projectname">Static Value-Flow Analysis
25
+ </div>
26
+ </td>
27
+ </tr>
28
+ </tbody>
29
+ </table>
30
+ </div>
31
+ <!-- end header part -->
32
+ <!-- Generated by Doxygen 1.8.13 -->
33
+ <script type="text/javascript">
34
+ var searchBox = new SearchBox("searchBox", "search",false,'Search');
35
+ </script>
36
+ <script type="text/javascript" src="menudata.js"></script>
37
+ <script type="text/javascript" src="menu.js"></script>
38
+ <script type="text/javascript">
39
+ $(function() {
40
+ initMenu('',true,false,'search.php','Search');
41
+ $(document).ready(function() { init_search(); });
42
+ });
43
+ </script>
44
+ <div id="main-nav"></div>
45
+ <!-- window showing the filter options -->
46
+ <div id="MSearchSelectWindow"
47
+ onmouseover="return searchBox.OnSearchSelectShow()"
48
+ onmouseout="return searchBox.OnSearchSelectHide()"
49
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
50
+ </div>
51
+
52
+ <!-- iframe showing the search results (closed by default) -->
53
+ <div id="MSearchResultsWindow">
54
+ <iframe src="javascript:void(0)" frameborder="0"
55
+ name="MSearchResults" id="MSearchResults">
56
+ </iframe>
57
+ </div>
58
+
59
+ <div id="nav-path" class="navpath">
60
+ <ul>
61
+ <li class="navelem"><a class="el" href="namespaceSVF.html">SVF</a></li><li class="navelem"><a class="el" href="classSVF_1_1SVFStat.html">SVFStat</a></li> </ul>
62
+ </div>
63
+ </div><!-- top -->
64
+ <div class="header">
65
+ <div class="summary">
66
+ <a href="#pub-types">Public Types</a> &#124;
67
+ <a href="#pub-methods">Public Member Functions</a> &#124;
68
+ <a href="#pub-static-methods">Static Public Member Functions</a> &#124;
69
+ <a href="#pub-attribs">Public Attributes</a> &#124;
70
+ <a href="#pri-attribs">Private Attributes</a> &#124;
71
+ <a href="classSVF_1_1SVFStat-members.html">List of all members</a> </div>
72
+ <div class="headertitle">
73
+ <div class="title">SVF::SVFStat Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
74
+ </div><!--header-->
75
+ <div class="contents">
76
+
77
+ <p><code>#include &lt;<a class="el" href="SVFStat_8h_source.html">SVFStat.h</a>&gt;</code></p>
78
+ <div class="dynheader">
79
+ Inheritance diagram for SVF::SVFStat:</div>
80
+ <div class="dyncontent">
81
+ <div class="center">
82
+ <img src="classSVF_1_1SVFStat.png" usemap="#SVF::SVFStat_map" alt=""/>
83
+ <map id="SVF::SVFStat_map" name="SVF::SVFStat_map">
84
+ <area href="classSVF_1_1PTAStat.html" alt="SVF::PTAStat" shape="rect" coords="0,56,200,80"/>
85
+ <area href="classSVF_1_1AndersenStat.html" alt="SVF::AndersenStat" shape="rect" coords="210,112,410,136"/>
86
+ <area href="classSVF_1_1DDAStat.html" alt="SVF::DDAStat" shape="rect" coords="210,168,410,192"/>
87
+ <area href="classSVF_1_1FlowSensitiveStat.html" alt="SVF::FlowSensitiveStat" shape="rect" coords="210,224,410,248"/>
88
+ <area href="classSVF_1_1ICFGStat.html" alt="SVF::ICFGStat" shape="rect" coords="210,280,410,304"/>
89
+ <area href="classSVF_1_1MemSSAStat.html" alt="SVF::MemSSAStat" shape="rect" coords="210,336,410,360"/>
90
+ <area href="classSVF_1_1MTAStat.html" alt="SVF::MTAStat" shape="rect" coords="210,392,410,416"/>
91
+ <area href="classSVF_1_1SVFGStat.html" alt="SVF::SVFGStat" shape="rect" coords="210,448,410,472"/>
92
+ <area href="classSVF_1_1VersionedFlowSensitiveStat.html" alt="SVF::VersionedFlowSensitiveStat" shape="rect" coords="210,504,410,528"/>
93
+ </map>
94
+ </div></div>
95
+ <table class="memberdecls">
96
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
97
+ Public Types</h2></td></tr>
98
+ <tr class="memitem:a4f47da512cfa8f94fddaddc65334b454"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a4f47da512cfa8f94fddaddc65334b454">ClockType</a> { <a class="el" href="classSVF_1_1SVFStat.html#a4f47da512cfa8f94fddaddc65334b454a4daec28631d54e09b587e78707ab54fc">Wall</a>,
99
+ <a class="el" href="classSVF_1_1SVFStat.html#a4f47da512cfa8f94fddaddc65334b454ad58693e596aa4088fa4a05065f9c0ffa">CPU</a>
100
+ }</td></tr>
101
+ <tr class="separator:a4f47da512cfa8f94fddaddc65334b454"><td class="memSeparator" colspan="2">&#160;</td></tr>
102
+ <tr class="memitem:ab810863d70cb2f5b4e312d07eae51227"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap</a>&lt; const char *, <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#ab810863d70cb2f5b4e312d07eae51227">NUMStatMap</a></td></tr>
103
+ <tr class="separator:ab810863d70cb2f5b4e312d07eae51227"><td class="memSeparator" colspan="2">&#160;</td></tr>
104
+ <tr class="memitem:aeded7780a3f826b3efab971807e2dd98"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap</a>&lt; const char *, double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#aeded7780a3f826b3efab971807e2dd98">TIMEStatMap</a></td></tr>
105
+ <tr class="separator:aeded7780a3f826b3efab971807e2dd98"><td class="memSeparator" colspan="2">&#160;</td></tr>
106
+ </table><table class="memberdecls">
107
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
108
+ Public Member Functions</h2></td></tr>
109
+ <tr class="memitem:ad22433722f7c71df19a891a5b5039d26"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#ad22433722f7c71df19a891a5b5039d26">SVFStat</a> ()</td></tr>
110
+ <tr class="separator:ad22433722f7c71df19a891a5b5039d26"><td class="memSeparator" colspan="2">&#160;</td></tr>
111
+ <tr class="memitem:a135ac9973ebfef4680d343320453ff52"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a135ac9973ebfef4680d343320453ff52">~SVFStat</a> ()</td></tr>
112
+ <tr class="separator:a135ac9973ebfef4680d343320453ff52"><td class="memSeparator" colspan="2">&#160;</td></tr>
113
+ <tr class="memitem:a730cc814fede3edb563aa9957c869e9e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a730cc814fede3edb563aa9957c869e9e">startClk</a> ()</td></tr>
114
+ <tr class="separator:a730cc814fede3edb563aa9957c869e9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
115
+ <tr class="memitem:a1b7f1e3381de87f75f06cddb9c6c1ec1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a1b7f1e3381de87f75f06cddb9c6c1ec1">endClk</a> ()</td></tr>
116
+ <tr class="separator:a1b7f1e3381de87f75f06cddb9c6c1ec1"><td class="memSeparator" colspan="2">&#160;</td></tr>
117
+ <tr class="memitem:a6113f8d009c42519f3a43913a0c02b95"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a6113f8d009c42519f3a43913a0c02b95">performStat</a> ()=0</td></tr>
118
+ <tr class="separator:a6113f8d009c42519f3a43913a0c02b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
119
+ <tr class="memitem:a77c3cfb0c2b85a343ad0fac3682557c3"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a77c3cfb0c2b85a343ad0fac3682557c3">printStat</a> (<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> str=&quot;&quot;)=0</td></tr>
120
+ <tr class="separator:a77c3cfb0c2b85a343ad0fac3682557c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
121
+ <tr class="memitem:ab03780f736bed7861c9be14637e37ba3"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#ab03780f736bed7861c9be14637e37ba3">performStatPerQuery</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>)</td></tr>
122
+ <tr class="separator:ab03780f736bed7861c9be14637e37ba3"><td class="memSeparator" colspan="2">&#160;</td></tr>
123
+ <tr class="memitem:a2dd8ce8bb1970344533babb9fc8ddd02"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a2dd8ce8bb1970344533babb9fc8ddd02">printStatPerQuery</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;)</td></tr>
124
+ <tr class="separator:a2dd8ce8bb1970344533babb9fc8ddd02"><td class="memSeparator" colspan="2">&#160;</td></tr>
125
+ <tr class="memitem:a21e6767fbe2c3cdea4aac30199dfd2f0"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a21e6767fbe2c3cdea4aac30199dfd2f0">callgraphStat</a> ()</td></tr>
126
+ <tr class="separator:a21e6767fbe2c3cdea4aac30199dfd2f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
127
+ </table><table class="memberdecls">
128
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
129
+ Static Public Member Functions</h2></td></tr>
130
+ <tr class="memitem:ac9d390c417df6f6af6b274618b87010d"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a> (bool mark=<a class="el" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>)</td></tr>
131
+ <tr class="separator:ac9d390c417df6f6af6b274618b87010d"><td class="memSeparator" colspan="2">&#160;</td></tr>
132
+ </table><table class="memberdecls">
133
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
134
+ Public Attributes</h2></td></tr>
135
+ <tr class="memitem:a07b6f8cb424b84b468c4518140fa3a41"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFStat.html#ab810863d70cb2f5b4e312d07eae51227">NUMStatMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a></td></tr>
136
+ <tr class="separator:a07b6f8cb424b84b468c4518140fa3a41"><td class="memSeparator" colspan="2">&#160;</td></tr>
137
+ <tr class="memitem:a5383691a34426a1a997b5eed387f1831"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFStat.html#aeded7780a3f826b3efab971807e2dd98">TIMEStatMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a></td></tr>
138
+ <tr class="separator:a5383691a34426a1a997b5eed387f1831"><td class="memSeparator" colspan="2">&#160;</td></tr>
139
+ <tr class="memitem:abd7a79d1fe50110a0c1d448027492669"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#abd7a79d1fe50110a0c1d448027492669">startTime</a></td></tr>
140
+ <tr class="separator:abd7a79d1fe50110a0c1d448027492669"><td class="memSeparator" colspan="2">&#160;</td></tr>
141
+ <tr class="memitem:a8b01f1564408b51f28c107454bf9068d"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a8b01f1564408b51f28c107454bf9068d">endTime</a></td></tr>
142
+ <tr class="separator:a8b01f1564408b51f28c107454bf9068d"><td class="memSeparator" colspan="2">&#160;</td></tr>
143
+ </table><table class="memberdecls">
144
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
145
+ Private Attributes</h2></td></tr>
146
+ <tr class="memitem:a3333e45303dcc9c3da00858628cdbbff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a3333e45303dcc9c3da00858628cdbbff">moduleName</a></td></tr>
147
+ <tr class="separator:a3333e45303dcc9c3da00858628cdbbff"><td class="memSeparator" colspan="2">&#160;</td></tr>
148
+ </table>
149
+ <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
150
+ <div class="textblock"><p>Pointer Analysis Statistics </p>
151
+
152
+ <p class="definition">Definition at line <a class="el" href="SVFStat_8h_source.html#l00040">40</a> of file <a class="el" href="SVFStat_8h_source.html">SVFStat.h</a>.</p>
153
+ </div><h2 class="groupheader">Member Typedef Documentation</h2>
154
+ <a id="ab810863d70cb2f5b4e312d07eae51227"></a>
155
+ <h2 class="memtitle"><span class="permalink"><a href="#ab810863d70cb2f5b4e312d07eae51227">&#9670;&nbsp;</a></span>NUMStatMap</h2>
156
+
157
+ <div class="memitem">
158
+ <div class="memproto">
159
+ <table class="memname">
160
+ <tr>
161
+ <td class="memname">typedef <a class="el" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap</a>&lt;const char *, <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&gt; <a class="el" href="classSVF_1_1SVFStat.html#ab810863d70cb2f5b4e312d07eae51227">SVF::SVFStat::NUMStatMap</a></td>
162
+ </tr>
163
+ </table>
164
+ </div><div class="memdoc">
165
+
166
+ <p class="definition">Definition at line <a class="el" href="SVFStat_8h_source.html#l00044">44</a> of file <a class="el" href="SVFStat_8h_source.html">SVFStat.h</a>.</p>
167
+
168
+ </div>
169
+ </div>
170
+ <a id="aeded7780a3f826b3efab971807e2dd98"></a>
171
+ <h2 class="memtitle"><span class="permalink"><a href="#aeded7780a3f826b3efab971807e2dd98">&#9670;&nbsp;</a></span>TIMEStatMap</h2>
172
+
173
+ <div class="memitem">
174
+ <div class="memproto">
175
+ <table class="memname">
176
+ <tr>
177
+ <td class="memname">typedef <a class="el" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap</a>&lt;const char *, double&gt; <a class="el" href="classSVF_1_1SVFStat.html#aeded7780a3f826b3efab971807e2dd98">SVF::SVFStat::TIMEStatMap</a></td>
178
+ </tr>
179
+ </table>
180
+ </div><div class="memdoc">
181
+
182
+ <p class="definition">Definition at line <a class="el" href="SVFStat_8h_source.html#l00046">46</a> of file <a class="el" href="SVFStat_8h_source.html">SVFStat.h</a>.</p>
183
+
184
+ </div>
185
+ </div>
186
+ <h2 class="groupheader">Member Enumeration Documentation</h2>
187
+ <a id="a4f47da512cfa8f94fddaddc65334b454"></a>
188
+ <h2 class="memtitle"><span class="permalink"><a href="#a4f47da512cfa8f94fddaddc65334b454">&#9670;&nbsp;</a></span>ClockType</h2>
189
+
190
+ <div class="memitem">
191
+ <div class="memproto">
192
+ <table class="memname">
193
+ <tr>
194
+ <td class="memname">enum <a class="el" href="classSVF_1_1SVFStat.html#a4f47da512cfa8f94fddaddc65334b454">SVF::SVFStat::ClockType</a></td>
195
+ </tr>
196
+ </table>
197
+ </div><div class="memdoc">
198
+ <table class="fieldtable">
199
+ <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a4f47da512cfa8f94fddaddc65334b454a4daec28631d54e09b587e78707ab54fc"></a>Wall&#160;</td><td class="fielddoc"></td></tr>
200
+ <tr><td class="fieldname"><a id="a4f47da512cfa8f94fddaddc65334b454ad58693e596aa4088fa4a05065f9c0ffa"></a>CPU&#160;</td><td class="fielddoc"></td></tr>
201
+ </table>
202
+
203
+ <p class="definition">Definition at line <a class="el" href="SVFStat_8h_source.html#l00048">48</a> of file <a class="el" href="SVFStat_8h_source.html">SVFStat.h</a>.</p>
204
+ <div class="fragment"><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a4f47da512cfa8f94fddaddc65334b454a4daec28631d54e09b587e78707ab54fc">Wall</a>,</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a4f47da512cfa8f94fddaddc65334b454ad58693e596aa4088fa4a05065f9c0ffa">CPU</a>,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; };</div><div class="ttc" id="classSVF_1_1SVFStat_html_a4f47da512cfa8f94fddaddc65334b454ad58693e596aa4088fa4a05065f9c0ffa"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a4f47da512cfa8f94fddaddc65334b454ad58693e596aa4088fa4a05065f9c0ffa">SVF::SVFStat::CPU</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00051">SVFStat.h:51</a></div></div>
205
+ <div class="ttc" id="classSVF_1_1SVFStat_html_a4f47da512cfa8f94fddaddc65334b454a4daec28631d54e09b587e78707ab54fc"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a4f47da512cfa8f94fddaddc65334b454a4daec28631d54e09b587e78707ab54fc">SVF::SVFStat::Wall</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00050">SVFStat.h:50</a></div></div>
206
+ </div><!-- fragment -->
207
+ </div>
208
+ </div>
209
+ <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
210
+ <a id="ad22433722f7c71df19a891a5b5039d26"></a>
211
+ <h2 class="memtitle"><span class="permalink"><a href="#ad22433722f7c71df19a891a5b5039d26">&#9670;&nbsp;</a></span>SVFStat()</h2>
212
+
213
+ <div class="memitem">
214
+ <div class="memproto">
215
+ <table class="memname">
216
+ <tr>
217
+ <td class="memname">SVFStat::SVFStat </td>
218
+ <td>(</td>
219
+ <td class="paramname"></td><td>)</td>
220
+ <td></td>
221
+ </tr>
222
+ </table>
223
+ </div><div class="memdoc">
224
+
225
+ <p class="definition">Definition at line <a class="el" href="SVFStat_8cpp_source.html#l00035">35</a> of file <a class="el" href="SVFStat_8cpp_source.html">SVFStat.cpp</a>.</p>
226
+ <div class="fragment"><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; : <a class="code" href="classSVF_1_1SVFStat.html#abd7a79d1fe50110a0c1d448027492669">startTime</a>(0), <a class="code" href="classSVF_1_1SVFStat.html#a8b01f1564408b51f28c107454bf9068d">endTime</a>(0)</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; assert((<a class="code" href="classSVF_1_1Options.html#a6a62b34de8ec23899a8024e0450c43df">Options::ClockType</a> == ClockType::Wall || <a class="code" href="classSVF_1_1Options.html#a6a62b34de8ec23899a8024e0450c43df">Options::ClockType</a> == ClockType::CPU)</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; &amp;&amp; <span class="stringliteral">&quot;PTAStat: unknown clock type!&quot;</span>);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFStat_html_abd7a79d1fe50110a0c1d448027492669"><div class="ttname"><a href="classSVF_1_1SVFStat.html#abd7a79d1fe50110a0c1d448027492669">SVF::SVFStat::startTime</a></div><div class="ttdeci">double startTime</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00076">SVFStat.h:76</a></div></div>
227
+ <div class="ttc" id="classSVF_1_1SVFStat_html_a8b01f1564408b51f28c107454bf9068d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a8b01f1564408b51f28c107454bf9068d">SVF::SVFStat::endTime</a></div><div class="ttdeci">double endTime</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00077">SVFStat.h:77</a></div></div>
228
+ <div class="ttc" id="classSVF_1_1Options_html_a6a62b34de8ec23899a8024e0450c43df"><div class="ttname"><a href="classSVF_1_1Options.html#a6a62b34de8ec23899a8024e0450c43df">SVF::Options::ClockType</a></div><div class="ttdeci">static const llvm::cl::opt&lt; enum PTAStat::ClockType &gt; ClockType</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00023">Options.h:23</a></div></div>
229
+ </div><!-- fragment -->
230
+ </div>
231
+ </div>
232
+ <a id="a135ac9973ebfef4680d343320453ff52"></a>
233
+ <h2 class="memtitle"><span class="permalink"><a href="#a135ac9973ebfef4680d343320453ff52">&#9670;&nbsp;</a></span>~SVFStat()</h2>
234
+
235
+ <div class="memitem">
236
+ <div class="memproto">
237
+ <table class="mlabels">
238
+ <tr>
239
+ <td class="mlabels-left">
240
+ <table class="memname">
241
+ <tr>
242
+ <td class="memname">virtual SVF::SVFStat::~SVFStat </td>
243
+ <td>(</td>
244
+ <td class="paramname"></td><td>)</td>
245
+ <td></td>
246
+ </tr>
247
+ </table>
248
+ </td>
249
+ <td class="mlabels-right">
250
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
251
+ </tr>
252
+ </table>
253
+ </div><div class="memdoc">
254
+
255
+ <p class="definition">Definition at line <a class="el" href="SVFStat_8h_source.html#l00056">56</a> of file <a class="el" href="SVFStat_8h_source.html">SVFStat.h</a>.</p>
256
+ <div class="fragment"><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{}</div></div><!-- fragment -->
257
+ </div>
258
+ </div>
259
+ <h2 class="groupheader">Member Function Documentation</h2>
260
+ <a id="a21e6767fbe2c3cdea4aac30199dfd2f0"></a>
261
+ <h2 class="memtitle"><span class="permalink"><a href="#a21e6767fbe2c3cdea4aac30199dfd2f0">&#9670;&nbsp;</a></span>callgraphStat()</h2>
262
+
263
+ <div class="memitem">
264
+ <div class="memproto">
265
+ <table class="mlabels">
266
+ <tr>
267
+ <td class="mlabels-left">
268
+ <table class="memname">
269
+ <tr>
270
+ <td class="memname">virtual void SVF::SVFStat::callgraphStat </td>
271
+ <td>(</td>
272
+ <td class="paramname"></td><td>)</td>
273
+ <td></td>
274
+ </tr>
275
+ </table>
276
+ </td>
277
+ <td class="mlabels-right">
278
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
279
+ </tr>
280
+ </table>
281
+ </div><div class="memdoc">
282
+
283
+ <p>Reimplemented in <a class="el" href="classSVF_1_1PTAStat.html#af2eb88d1563be9e6290a5fc69bec3bbe">SVF::PTAStat</a>.</p>
284
+
285
+ <p class="definition">Definition at line <a class="el" href="SVFStat_8h_source.html#l00087">87</a> of file <a class="el" href="SVFStat_8h_source.html">SVFStat.h</a>.</p>
286
+ <div class="fragment"><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{}</div></div><!-- fragment -->
287
+ </div>
288
+ </div>
289
+ <a id="a1b7f1e3381de87f75f06cddb9c6c1ec1"></a>
290
+ <h2 class="memtitle"><span class="permalink"><a href="#a1b7f1e3381de87f75f06cddb9c6c1ec1">&#9670;&nbsp;</a></span>endClk()</h2>
291
+
292
+ <div class="memitem">
293
+ <div class="memproto">
294
+ <table class="mlabels">
295
+ <tr>
296
+ <td class="mlabels-left">
297
+ <table class="memname">
298
+ <tr>
299
+ <td class="memname">virtual void SVF::SVFStat::endClk </td>
300
+ <td>(</td>
301
+ <td class="paramname"></td><td>)</td>
302
+ <td></td>
303
+ </tr>
304
+ </table>
305
+ </td>
306
+ <td class="mlabels-right">
307
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
308
+ </tr>
309
+ </table>
310
+ </div><div class="memdoc">
311
+
312
+ <p class="definition">Definition at line <a class="el" href="SVFStat_8h_source.html#l00063">63</a> of file <a class="el" href="SVFStat_8h_source.html">SVFStat.h</a>.</p>
313
+ <div class="fragment"><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a8b01f1564408b51f28c107454bf9068d">endTime</a> = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00041">SVFStat.cpp:41</a></div></div>
314
+ <div class="ttc" id="classSVF_1_1SVFStat_html_a8b01f1564408b51f28c107454bf9068d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a8b01f1564408b51f28c107454bf9068d">SVF::SVFStat::endTime</a></div><div class="ttdeci">double endTime</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00077">SVFStat.h:77</a></div></div>
315
+ </div><!-- fragment -->
316
+ </div>
317
+ </div>
318
+ <a id="ac9d390c417df6f6af6b274618b87010d"></a>
319
+ <h2 class="memtitle"><span class="permalink"><a href="#ac9d390c417df6f6af6b274618b87010d">&#9670;&nbsp;</a></span>getClk()</h2>
320
+
321
+ <div class="memitem">
322
+ <div class="memproto">
323
+ <table class="mlabels">
324
+ <tr>
325
+ <td class="mlabels-left">
326
+ <table class="memname">
327
+ <tr>
328
+ <td class="memname">double SVFStat::getClk </td>
329
+ <td>(</td>
330
+ <td class="paramtype">bool&#160;</td>
331
+ <td class="paramname"><em>mark</em> = <code><a class="el" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a></code></td><td>)</td>
332
+ <td></td>
333
+ </tr>
334
+ </table>
335
+ </td>
336
+ <td class="mlabels-right">
337
+ <span class="mlabels"><span class="mlabel">static</span></span> </td>
338
+ </tr>
339
+ </table>
340
+ </div><div class="memdoc">
341
+ <p>When mark is true, real clock is always returned. When mark is false, it is only returned when <a class="el" href="classSVF_1_1Options.html#a5cfcf1ddc44ff175c4766f88bf204c03">Options::MarkedClocksOnly</a> is not set. Default call for getClk is unmarked, while MarkedClocksOnly is false by default. </p>
342
+
343
+ <p class="definition">Definition at line <a class="el" href="SVFStat_8cpp_source.html#l00041">41</a> of file <a class="el" href="SVFStat_8cpp_source.html">SVFStat.cpp</a>.</p>
344
+ <div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a5cfcf1ddc44ff175c4766f88bf204c03">Options::MarkedClocksOnly</a> &amp;&amp; !mark) <span class="keywordflow">return</span> 0.0;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a6a62b34de8ec23899a8024e0450c43df">Options::ClockType</a> == ClockType::Wall)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">struct </span>timespec time;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; clock_gettime(CLOCK_MONOTONIC, &amp;time);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">double</span>)(time.tv_nsec + time.tv_sec * 1000000000) / 1000000.0;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a6a62b34de8ec23899a8024e0450c43df">Options::ClockType</a> == ClockType::CPU)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">return</span> <a class="code" href="SVFBasicTypes_8h.html#af091e361d7961cb895ff2101eceed953">CLOCK_IN_MS</a>();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;PTAStat::getClk: unknown clock type&quot;</span>);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; abort();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}</div><div class="ttc" id="SVFBasicTypes_8h_html_af091e361d7961cb895ff2101eceed953"><div class="ttname"><a href="SVFBasicTypes_8h.html#af091e361d7961cb895ff2101eceed953">CLOCK_IN_MS</a></div><div class="ttdeci">#define CLOCK_IN_MS()</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00183">SVFBasicTypes.h:183</a></div></div>
345
+ <div class="ttc" id="classSVF_1_1Options_html_a6a62b34de8ec23899a8024e0450c43df"><div class="ttname"><a href="classSVF_1_1Options.html#a6a62b34de8ec23899a8024e0450c43df">SVF::Options::ClockType</a></div><div class="ttdeci">static const llvm::cl::opt&lt; enum PTAStat::ClockType &gt; ClockType</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00023">Options.h:23</a></div></div>
346
+ <div class="ttc" id="classSVF_1_1Options_html_a5cfcf1ddc44ff175c4766f88bf204c03"><div class="ttname"><a href="classSVF_1_1Options.html#a5cfcf1ddc44ff175c4766f88bf204c03">SVF::Options::MarkedClocksOnly</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; MarkedClocksOnly</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00030">Options.h:30</a></div></div>
347
+ </div><!-- fragment -->
348
+ </div>
349
+ </div>
350
+ <a id="a6113f8d009c42519f3a43913a0c02b95"></a>
351
+ <h2 class="memtitle"><span class="permalink"><a href="#a6113f8d009c42519f3a43913a0c02b95">&#9670;&nbsp;</a></span>performStat()</h2>
352
+
353
+ <div class="memitem">
354
+ <div class="memproto">
355
+ <table class="mlabels">
356
+ <tr>
357
+ <td class="mlabels-left">
358
+ <table class="memname">
359
+ <tr>
360
+ <td class="memname">virtual void SVF::SVFStat::performStat </td>
361
+ <td>(</td>
362
+ <td class="paramname"></td><td>)</td>
363
+ <td></td>
364
+ </tr>
365
+ </table>
366
+ </td>
367
+ <td class="mlabels-right">
368
+ <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
369
+ </tr>
370
+ </table>
371
+ </div><div class="memdoc">
372
+
373
+ <p>Implemented in <a class="el" href="classSVF_1_1VersionedFlowSensitiveStat.html#af202623692135ad746aed1be995c55fb">SVF::VersionedFlowSensitiveStat</a>, <a class="el" href="classSVF_1_1PTAStat.html#ad6de9d3f25c20705768000c987af0eb6">SVF::PTAStat</a>, <a class="el" href="classSVF_1_1SVFGStat.html#a037600bfff11659542f8595d8700dec4">SVF::SVFGStat</a>, <a class="el" href="classSVF_1_1FlowSensitiveStat.html#a059047d05e9873a624e333162a460571">SVF::FlowSensitiveStat</a>, <a class="el" href="classSVF_1_1MemSSAStat.html#a8b4b9466a676d2391c71d38e8be16bc9">SVF::MemSSAStat</a>, <a class="el" href="classSVF_1_1ICFGStat.html#aabe0779dc44ddc4e06300ea912cca39f">SVF::ICFGStat</a>, <a class="el" href="classSVF_1_1AndersenStat.html#a66fee1c0ee5781152a2d489f8857ad43">SVF::AndersenStat</a>, and <a class="el" href="classSVF_1_1DDAStat.html#a6055573ae1844cfc559ff81b3b9c325c">SVF::DDAStat</a>.</p>
374
+
375
+ </div>
376
+ </div>
377
+ <a id="ab03780f736bed7861c9be14637e37ba3"></a>
378
+ <h2 class="memtitle"><span class="permalink"><a href="#ab03780f736bed7861c9be14637e37ba3">&#9670;&nbsp;</a></span>performStatPerQuery()</h2>
379
+
380
+ <div class="memitem">
381
+ <div class="memproto">
382
+ <table class="mlabels">
383
+ <tr>
384
+ <td class="mlabels-left">
385
+ <table class="memname">
386
+ <tr>
387
+ <td class="memname">virtual void SVF::SVFStat::performStatPerQuery </td>
388
+ <td>(</td>
389
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>&#160;</td>
390
+ <td class="paramname"></td><td>)</td>
391
+ <td></td>
392
+ </tr>
393
+ </table>
394
+ </td>
395
+ <td class="mlabels-right">
396
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
397
+ </tr>
398
+ </table>
399
+ </div><div class="memdoc">
400
+
401
+ <p>Reimplemented in <a class="el" href="classSVF_1_1DDAStat.html#a11dd60d124a8d3433312589ede4e7b11">SVF::DDAStat</a>.</p>
402
+
403
+ <p class="definition">Definition at line <a class="el" href="SVFStat_8h_source.html#l00083">83</a> of file <a class="el" href="SVFStat_8h_source.html">SVFStat.h</a>.</p>
404
+ <div class="fragment"><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;{}</div></div><!-- fragment -->
405
+ </div>
406
+ </div>
407
+ <a id="a77c3cfb0c2b85a343ad0fac3682557c3"></a>
408
+ <h2 class="memtitle"><span class="permalink"><a href="#a77c3cfb0c2b85a343ad0fac3682557c3">&#9670;&nbsp;</a></span>printStat()</h2>
409
+
410
+ <div class="memitem">
411
+ <div class="memproto">
412
+ <table class="mlabels">
413
+ <tr>
414
+ <td class="mlabels-left">
415
+ <table class="memname">
416
+ <tr>
417
+ <td class="memname">virtual void SVF::SVFStat::printStat </td>
418
+ <td>(</td>
419
+ <td class="paramtype"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td>
420
+ <td class="paramname"><em>str</em> = <code>&quot;&quot;</code></td><td>)</td>
421
+ <td></td>
422
+ </tr>
423
+ </table>
424
+ </td>
425
+ <td class="mlabels-right">
426
+ <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
427
+ </tr>
428
+ </table>
429
+ </div><div class="memdoc">
430
+
431
+ <p>Implemented in <a class="el" href="classSVF_1_1ICFGStat.html#af9c004e3532968ae806a3d344ef885ea">SVF::ICFGStat</a>, <a class="el" href="classSVF_1_1PTAStat.html#aca3e99ad83bddabee1dd565522691c78">SVF::PTAStat</a>, <a class="el" href="classSVF_1_1SVFGStat.html#a2e0adcfbe233523212e1ffbf5b01ba88">SVF::SVFGStat</a>, <a class="el" href="classSVF_1_1MemSSAStat.html#ad5fbe23c3374e5b3a45ac5fa4900441a">SVF::MemSSAStat</a>, and <a class="el" href="classSVF_1_1DDAStat.html#ae6fd32471e0b9bf51233a36676658b49">SVF::DDAStat</a>.</p>
432
+
433
+ </div>
434
+ </div>
435
+ <a id="a2dd8ce8bb1970344533babb9fc8ddd02"></a>
436
+ <h2 class="memtitle"><span class="permalink"><a href="#a2dd8ce8bb1970344533babb9fc8ddd02">&#9670;&nbsp;</a></span>printStatPerQuery()</h2>
437
+
438
+ <div class="memitem">
439
+ <div class="memproto">
440
+ <table class="mlabels">
441
+ <tr>
442
+ <td class="mlabels-left">
443
+ <table class="memname">
444
+ <tr>
445
+ <td class="memname">virtual void SVF::SVFStat::printStatPerQuery </td>
446
+ <td>(</td>
447
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>&#160;</td>
448
+ <td class="paramname">, </td>
449
+ </tr>
450
+ <tr>
451
+ <td class="paramkey"></td>
452
+ <td></td>
453
+ <td class="paramtype">const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;&#160;</td>
454
+ <td class="paramname">&#160;</td>
455
+ </tr>
456
+ <tr>
457
+ <td></td>
458
+ <td>)</td>
459
+ <td></td><td></td>
460
+ </tr>
461
+ </table>
462
+ </td>
463
+ <td class="mlabels-right">
464
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
465
+ </tr>
466
+ </table>
467
+ </div><div class="memdoc">
468
+
469
+ <p>Reimplemented in <a class="el" href="classSVF_1_1DDAStat.html#ae695696e5cd06eb27635887f0de30eff">SVF::DDAStat</a>.</p>
470
+
471
+ <p class="definition">Definition at line <a class="el" href="SVFStat_8h_source.html#l00085">85</a> of file <a class="el" href="SVFStat_8h_source.html">SVFStat.h</a>.</p>
472
+ <div class="fragment"><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;{}</div></div><!-- fragment -->
473
+ </div>
474
+ </div>
475
+ <a id="a730cc814fede3edb563aa9957c869e9e"></a>
476
+ <h2 class="memtitle"><span class="permalink"><a href="#a730cc814fede3edb563aa9957c869e9e">&#9670;&nbsp;</a></span>startClk()</h2>
477
+
478
+ <div class="memitem">
479
+ <div class="memproto">
480
+ <table class="mlabels">
481
+ <tr>
482
+ <td class="mlabels-left">
483
+ <table class="memname">
484
+ <tr>
485
+ <td class="memname">virtual void SVF::SVFStat::startClk </td>
486
+ <td>(</td>
487
+ <td class="paramname"></td><td>)</td>
488
+ <td></td>
489
+ </tr>
490
+ </table>
491
+ </td>
492
+ <td class="mlabels-right">
493
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
494
+ </tr>
495
+ </table>
496
+ </div><div class="memdoc">
497
+
498
+ <p class="definition">Definition at line <a class="el" href="SVFStat_8h_source.html#l00058">58</a> of file <a class="el" href="SVFStat_8h_source.html">SVFStat.h</a>.</p>
499
+ <div class="fragment"><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#abd7a79d1fe50110a0c1d448027492669">startTime</a> = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFStat_html_abd7a79d1fe50110a0c1d448027492669"><div class="ttname"><a href="classSVF_1_1SVFStat.html#abd7a79d1fe50110a0c1d448027492669">SVF::SVFStat::startTime</a></div><div class="ttdeci">double startTime</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00076">SVFStat.h:76</a></div></div>
500
+ <div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00041">SVFStat.cpp:41</a></div></div>
501
+ </div><!-- fragment -->
502
+ </div>
503
+ </div>
504
+ <h2 class="groupheader">Member Data Documentation</h2>
505
+ <a id="a8b01f1564408b51f28c107454bf9068d"></a>
506
+ <h2 class="memtitle"><span class="permalink"><a href="#a8b01f1564408b51f28c107454bf9068d">&#9670;&nbsp;</a></span>endTime</h2>
507
+
508
+ <div class="memitem">
509
+ <div class="memproto">
510
+ <table class="memname">
511
+ <tr>
512
+ <td class="memname">double SVF::SVFStat::endTime</td>
513
+ </tr>
514
+ </table>
515
+ </div><div class="memdoc">
516
+
517
+ <p class="definition">Definition at line <a class="el" href="SVFStat_8h_source.html#l00077">77</a> of file <a class="el" href="SVFStat_8h_source.html">SVFStat.h</a>.</p>
518
+
519
+ </div>
520
+ </div>
521
+ <a id="a07b6f8cb424b84b468c4518140fa3a41"></a>
522
+ <h2 class="memtitle"><span class="permalink"><a href="#a07b6f8cb424b84b468c4518140fa3a41">&#9670;&nbsp;</a></span>generalNumMap</h2>
523
+
524
+ <div class="memitem">
525
+ <div class="memproto">
526
+ <table class="memname">
527
+ <tr>
528
+ <td class="memname"><a class="el" href="classSVF_1_1SVFStat.html#ab810863d70cb2f5b4e312d07eae51227">NUMStatMap</a> SVF::SVFStat::generalNumMap</td>
529
+ </tr>
530
+ </table>
531
+ </div><div class="memdoc">
532
+
533
+ <p class="definition">Definition at line <a class="el" href="SVFStat_8h_source.html#l00073">73</a> of file <a class="el" href="SVFStat_8h_source.html">SVFStat.h</a>.</p>
534
+
535
+ </div>
536
+ </div>
537
+ <a id="a3333e45303dcc9c3da00858628cdbbff"></a>
538
+ <h2 class="memtitle"><span class="permalink"><a href="#a3333e45303dcc9c3da00858628cdbbff">&#9670;&nbsp;</a></span>moduleName</h2>
539
+
540
+ <div class="memitem">
541
+ <div class="memproto">
542
+ <table class="mlabels">
543
+ <tr>
544
+ <td class="mlabels-left">
545
+ <table class="memname">
546
+ <tr>
547
+ <td class="memname"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> SVF::SVFStat::moduleName</td>
548
+ </tr>
549
+ </table>
550
+ </td>
551
+ <td class="mlabels-right">
552
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
553
+ </tr>
554
+ </table>
555
+ </div><div class="memdoc">
556
+
557
+ <p class="definition">Definition at line <a class="el" href="SVFStat_8h_source.html#l00091">91</a> of file <a class="el" href="SVFStat_8h_source.html">SVFStat.h</a>.</p>
558
+
559
+ </div>
560
+ </div>
561
+ <a id="abd7a79d1fe50110a0c1d448027492669"></a>
562
+ <h2 class="memtitle"><span class="permalink"><a href="#abd7a79d1fe50110a0c1d448027492669">&#9670;&nbsp;</a></span>startTime</h2>
563
+
564
+ <div class="memitem">
565
+ <div class="memproto">
566
+ <table class="memname">
567
+ <tr>
568
+ <td class="memname">double SVF::SVFStat::startTime</td>
569
+ </tr>
570
+ </table>
571
+ </div><div class="memdoc">
572
+
573
+ <p class="definition">Definition at line <a class="el" href="SVFStat_8h_source.html#l00076">76</a> of file <a class="el" href="SVFStat_8h_source.html">SVFStat.h</a>.</p>
574
+
575
+ </div>
576
+ </div>
577
+ <a id="a5383691a34426a1a997b5eed387f1831"></a>
578
+ <h2 class="memtitle"><span class="permalink"><a href="#a5383691a34426a1a997b5eed387f1831">&#9670;&nbsp;</a></span>timeStatMap</h2>
579
+
580
+ <div class="memitem">
581
+ <div class="memproto">
582
+ <table class="memname">
583
+ <tr>
584
+ <td class="memname"><a class="el" href="classSVF_1_1SVFStat.html#aeded7780a3f826b3efab971807e2dd98">TIMEStatMap</a> SVF::SVFStat::timeStatMap</td>
585
+ </tr>
586
+ </table>
587
+ </div><div class="memdoc">
588
+
589
+ <p class="definition">Definition at line <a class="el" href="SVFStat_8h_source.html#l00074">74</a> of file <a class="el" href="SVFStat_8h_source.html">SVFStat.h</a>.</p>
590
+
591
+ </div>
592
+ </div>
593
+ <hr/>The documentation for this class was generated from the following files:<ul>
594
+ <li>/home/runner/work/SVF/SVF/include/Util/<a class="el" href="SVFStat_8h_source.html">SVFStat.h</a></li>
595
+ <li>/home/runner/work/SVF/SVF/lib/Util/<a class="el" href="SVFStat_8cpp_source.html">SVFStat.cpp</a></li>
596
+ </ul>
597
+ </div><!-- contents -->
598
+ <!-- start footer part -->
599
+ <hr class="footer"/><address class="footer"><small>
600
+ Generated by &#160;<a href="http://www.doxygen.org/index.html">
601
+ <img class="footer" src="doxygen.png" alt="doxygen"/>
602
+ </a> 1.8.13
603
+ </small></address>
604
+ </body>
605
+ </html>