svf-tools 1.0.285 → 1.0.286
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.
- package/LICENSE.TXT +6 -4
- package/SVF-doxygen/html/html/dir_63dba4c559aa5986900c35e27974bafc.html +83 -0
- package/SVF-doxygen/html/html/dir_97aefd0d527b934f1d99a682da8fe6a9.html +2 -0
- package/SVF-doxygen/html/html/dir_d1b325ac671111a54e189ae033ba710d.html +87 -0
- package/SVF-doxygen/html/html/dir_d44c64559bbebec7f509842c48db8b23.html +2 -0
- package/SVF-doxygen/html/html/fastcluster_8cpp.html +263 -0
- package/SVF-doxygen/html/html/fastcluster_8cpp_source.html +88 -0
- package/SVF-doxygen/html/html/fastcluster_8h.html +278 -0
- package/SVF-doxygen/html/html/fastcluster_8h_source.html +86 -0
- package/SVF-doxygen/html/html/fastcluster__R__dm_8cpp_8inc.html +79 -0
- package/SVF-doxygen/html/html/fastcluster__R__dm_8cpp_8inc_source.html +77 -0
- package/SVF-doxygen/html/html/fastcluster__dm_8cpp_8inc.html +89 -0
- package/SVF-doxygen/html/html/fastcluster__dm_8cpp_8inc_source.html +80 -0
- package/SVF-doxygen/html/html/files.html +220 -214
- package/SVF-doxygen/html/html/globals_c.html +82 -74
- package/SVF-doxygen/html/html/globals_enum.html +3 -0
- package/SVF-doxygen/html/html/globals_eval.html +19 -0
- package/SVF-doxygen/html/html/globals_f.html +6 -3
- package/SVF-doxygen/html/html/globals_func_c.html +46 -38
- package/SVF-doxygen/html/html/globals_func_f.html +3 -0
- package/SVF-doxygen/html/html/globals_func_h.html +4 -0
- package/SVF-doxygen/html/html/globals_h.html +22 -0
- package/SVF-doxygen/html/html/globals_r.html +3 -3
- package/SVF-doxygen/html/html/globals_s.html +7 -9
- package/SVF-doxygen/html/html/menudata.js +1 -0
- package/SVF-doxygen/html/html/search/all_12.js +1 -1
- package/SVF-doxygen/html/html/search/all_13.js +4 -4
- package/SVF-doxygen/html/html/search/all_3.js +2 -0
- package/SVF-doxygen/html/html/search/all_6.js +5 -0
- package/SVF-doxygen/html/html/search/all_8.js +7 -0
- package/SVF-doxygen/html/html/search/enums_4.js +1 -2
- package/SVF-doxygen/html/html/search/enums_5.js +2 -2
- package/SVF-doxygen/html/html/search/enums_6.js +2 -3
- package/SVF-doxygen/html/html/search/enums_7.js +3 -6
- package/SVF-doxygen/html/html/search/enums_8.js +6 -1
- package/SVF-doxygen/html/html/search/enums_9.js +1 -5
- package/SVF-doxygen/html/html/search/enums_a.js +5 -1
- package/SVF-doxygen/html/html/search/enums_b.js +1 -4
- package/SVF-doxygen/html/html/search/enums_c.html +26 -0
- package/SVF-doxygen/html/html/search/enums_c.js +7 -0
- package/SVF-doxygen/html/html/search/enumvalues_7.js +5 -0
- package/SVF-doxygen/html/html/search/files_5.js +4 -0
- package/SVF-doxygen/html/html/search/functions_2.js +2 -0
- package/SVF-doxygen/html/html/search/functions_5.js +1 -0
- package/SVF-doxygen/html/html/search/functions_7.js +1 -0
- package/SVF-doxygen/html/html/search/searchdata.js +1 -1
- package/include/FastCluster/LICENSE.TXT +13 -0
- package/include/FastCluster/fastcluster.h +79 -0
- package/lib/CMakeLists.txt +4 -1
- package/lib/FastCluster/LICENSE.TXT +13 -0
- package/lib/FastCluster/fastcluster.cpp +170 -0
- package/lib/FastCluster/fastcluster_R_dm.cpp.inc +115 -0
- package/lib/FastCluster/fastcluster_dm.cpp.inc +1795 -0
- package/package.json +1 -1
|
@@ -0,0 +1,86 @@
|
|
|
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: /home/runner/work/SVF/SVF/include/FastCluster/fastcluster.h Source File</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="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_63dba4c559aa5986900c35e27974bafc.html">FastCluster</a></li> </ul>
|
|
62
|
+
</div>
|
|
63
|
+
</div><!-- top -->
|
|
64
|
+
<div class="header">
|
|
65
|
+
<div class="headertitle">
|
|
66
|
+
<div class="title">fastcluster.h</div> </div>
|
|
67
|
+
</div><!--header-->
|
|
68
|
+
<div class="contents">
|
|
69
|
+
<a href="fastcluster_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// C++ standalone verion of fastcluster by Daniel Muellner</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// Copyright: Daniel Muellner, 2011</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Christoph Dalitz, 2020</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// License: BSD style license</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// (see the file LICENSE for details)</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#ifndef fastclustercpp_H</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#define fastclustercpp_H</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">//</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// Assigns cluster labels (0, ..., nclust-1) to the n points such</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// that the cluster result is split into nclust clusters.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">//</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Input arguments:</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// n = number of observables</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// merge = clustering result in R format</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">// nclust = number of clusters</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// Output arguments:</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// labels = allocated integer array of size n for result</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">//</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keywordtype">void</span> <a class="code" href="fastcluster_8h.html#a4815993b37ce6e177c9838584e4cda24">cutree_k</a>(<span class="keywordtype">int</span> n, <span class="keyword">const</span> <span class="keywordtype">int</span>* merge, <span class="keywordtype">int</span> nclust, <span class="keywordtype">int</span>* labels);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">//</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// Assigns cluster labels (0, ..., nclust-1) to the n points such</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// that the hierarchical clsutering is stopped at cluster distance cdist</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">//</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// Input arguments:</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// n = number of observables</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// merge = clustering result in R format</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// height = cluster distance at each merge step</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// cdist = cutoff cluster distance</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">// Output arguments:</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// labels = allocated integer array of size n for result</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">//</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keywordtype">void</span> <a class="code" href="fastcluster_8h.html#a8dbbd465af9ed88a066301ac83ce6961">cutree_cdist</a>(<span class="keywordtype">int</span> n, <span class="keyword">const</span> <span class="keywordtype">int</span>* merge, <span class="keywordtype">double</span>* height, <span class="keywordtype">double</span> cdist, <span class="keywordtype">int</span>* labels);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">//</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// Hierarchical clustering with one of Daniel Muellner's fast algorithms</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">//</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// Input arguments:</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// n = number of observables</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// distmat = condensed distance matrix, i.e. an n*(n-1)/2 array representing</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// the upper triangle (without diagonal elements) of the distance</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// matrix, e.g. for n=4:</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// d00 d01 d02 d03</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// d10 d11 d12 d13 -> d01 d02 d03 d12 d13 d23</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// d20 d21 d22 d23</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">// d30 d31 d32 d33</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment">// method = cluster metric (see enum hclust_fast_methods)</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// Output arguments:</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">// merge = allocated (n-1)x2 matrix (2*(n-1) array) for storing result.</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">// Result follows R hclust convention:</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// - observabe indices start with one</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">// - merge[i][] contains the merged nodes in step i</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">// - merge[i][j] is negative when the node is an atom</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">// height = allocated (n-1) array with distances at each merge step</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// Return code:</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// 0 = ok</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// 1 = invalid method</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">//</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keywordtype">int</span> <a class="code" href="fastcluster_8h.html#acccd226cbdf0944b5c9e24c84a4599c9">hclust_fast</a>(<span class="keywordtype">int</span> n, <span class="keywordtype">double</span>* distmat, <span class="keywordtype">int</span> method, <span class="keywordtype">int</span>* merge, <span class="keywordtype">double</span>* height);</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dd"> 65</a></span> <span class="keyword">enum</span> <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dd">hclust_fast_methods</a> {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="comment">// single link with the minimum spanning tree algorithm (Rohlf, 1973)</span></div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913ddad16cc6362447cc32292c4af4c6fe8024"> 67</a></span>  <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913ddad16cc6362447cc32292c4af4c6fe8024">HCLUST_METHOD_SINGLE</a> = 0,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="comment">// complete link with the nearest-neighbor-chain algorithm (Murtagh, 1984)</span></div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda44ce22fdfc560f27242e9b8f8e7009f4"> 69</a></span>  <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda44ce22fdfc560f27242e9b8f8e7009f4">HCLUST_METHOD_COMPLETE</a> = 1,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="comment">// omplete link with the nearest-neighbor-chain algorithm (Murtagh, 1984)</span></div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda3ab72664fc61704a1ba46bddbc347115"> 71</a></span>  <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda3ab72664fc61704a1ba46bddbc347115">HCLUST_METHOD_AVERAGE</a> = 2,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="comment">// median link with the generic algorithm (Müllner, 2011)</span></div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913ddaa453b79910d9c6f7f57a179bcdf63474"> 73</a></span>  <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913ddaa453b79910d9c6f7f57a179bcdf63474">HCLUST_METHOD_MEDIAN</a> = 3,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="comment">// To indicate to try all methods and pick the best.</span></div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda66ab3fde95842ef6da0dae1f702a9618"> 75</a></span>  <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda66ab3fde95842ef6da0dae1f702a9618">HCLUST_METHOD_SVF_BEST</a> = 4</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> };</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#endif</span></div><div class="ttc" id="fastcluster_8h_html_a8dbbd465af9ed88a066301ac83ce6961"><div class="ttname"><a href="fastcluster_8h.html#a8dbbd465af9ed88a066301ac83ce6961">cutree_cdist</a></div><div class="ttdeci">void cutree_cdist(int n, const int *merge, double *height, double cdist, int *labels)</div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8cpp_source.html#l00096">fastcluster.cpp:96</a></div></div>
|
|
70
|
+
<div class="ttc" id="fastcluster_8h_html_acccd226cbdf0944b5c9e24c84a4599c9"><div class="ttname"><a href="fastcluster_8h.html#acccd226cbdf0944b5c9e24c84a4599c9">hclust_fast</a></div><div class="ttdeci">int hclust_fast(int n, double *distmat, int method, int *merge, double *height)</div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8cpp_source.html#l00133">fastcluster.cpp:133</a></div></div>
|
|
71
|
+
<div class="ttc" id="fastcluster_8h_html_a4815993b37ce6e177c9838584e4cda24"><div class="ttname"><a href="fastcluster_8h.html#a4815993b37ce6e177c9838584e4cda24">cutree_k</a></div><div class="ttdeci">void cutree_k(int n, const int *merge, int nclust, int *labels)</div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8cpp_source.html#l00034">fastcluster.cpp:34</a></div></div>
|
|
72
|
+
<div class="ttc" id="fastcluster_8h_html_a4205a14ad66b3320d2e94c61d74913dda44ce22fdfc560f27242e9b8f8e7009f4"><div class="ttname"><a href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda44ce22fdfc560f27242e9b8f8e7009f4">HCLUST_METHOD_COMPLETE</a></div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8h_source.html#l00069">fastcluster.h:69</a></div></div>
|
|
73
|
+
<div class="ttc" id="fastcluster_8h_html_a4205a14ad66b3320d2e94c61d74913ddaa453b79910d9c6f7f57a179bcdf63474"><div class="ttname"><a href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913ddaa453b79910d9c6f7f57a179bcdf63474">HCLUST_METHOD_MEDIAN</a></div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8h_source.html#l00073">fastcluster.h:73</a></div></div>
|
|
74
|
+
<div class="ttc" id="fastcluster_8h_html_a4205a14ad66b3320d2e94c61d74913dda66ab3fde95842ef6da0dae1f702a9618"><div class="ttname"><a href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda66ab3fde95842ef6da0dae1f702a9618">HCLUST_METHOD_SVF_BEST</a></div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8h_source.html#l00075">fastcluster.h:75</a></div></div>
|
|
75
|
+
<div class="ttc" id="fastcluster_8h_html_a4205a14ad66b3320d2e94c61d74913dd"><div class="ttname"><a href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dd">hclust_fast_methods</a></div><div class="ttdeci">hclust_fast_methods</div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8h_source.html#l00065">fastcluster.h:65</a></div></div>
|
|
76
|
+
<div class="ttc" id="fastcluster_8h_html_a4205a14ad66b3320d2e94c61d74913ddad16cc6362447cc32292c4af4c6fe8024"><div class="ttname"><a href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913ddad16cc6362447cc32292c4af4c6fe8024">HCLUST_METHOD_SINGLE</a></div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8h_source.html#l00067">fastcluster.h:67</a></div></div>
|
|
77
|
+
<div class="ttc" id="fastcluster_8h_html_a4205a14ad66b3320d2e94c61d74913dda3ab72664fc61704a1ba46bddbc347115"><div class="ttname"><a href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda3ab72664fc61704a1ba46bddbc347115">HCLUST_METHOD_AVERAGE</a></div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8h_source.html#l00071">fastcluster.h:71</a></div></div>
|
|
78
|
+
</div><!-- fragment --></div><!-- contents -->
|
|
79
|
+
<!-- start footer part -->
|
|
80
|
+
<hr class="footer"/><address class="footer"><small>
|
|
81
|
+
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
82
|
+
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
83
|
+
</a> 1.8.13
|
|
84
|
+
</small></address>
|
|
85
|
+
</body>
|
|
86
|
+
</html>
|
|
@@ -0,0 +1,79 @@
|
|
|
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: /home/runner/work/SVF/SVF/lib/FastCluster/fastcluster_R_dm.cpp.inc File 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="dir_97aefd0d527b934f1d99a682da8fe6a9.html">lib</a></li><li class="navelem"><a class="el" href="dir_d1b325ac671111a54e189ae033ba710d.html">FastCluster</a></li> </ul>
|
|
62
|
+
</div>
|
|
63
|
+
</div><!-- top -->
|
|
64
|
+
<div class="header">
|
|
65
|
+
<div class="headertitle">
|
|
66
|
+
<div class="title">fastcluster_R_dm.cpp.inc File Reference</div> </div>
|
|
67
|
+
</div><!--header-->
|
|
68
|
+
<div class="contents">
|
|
69
|
+
|
|
70
|
+
<p><a href="fastcluster__R__dm_8cpp_8inc_source.html">Go to the source code of this file.</a></p>
|
|
71
|
+
</div><!-- contents -->
|
|
72
|
+
<!-- start footer part -->
|
|
73
|
+
<hr class="footer"/><address class="footer"><small>
|
|
74
|
+
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
75
|
+
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
76
|
+
</a> 1.8.13
|
|
77
|
+
</small></address>
|
|
78
|
+
</body>
|
|
79
|
+
</html>
|
|
@@ -0,0 +1,77 @@
|
|
|
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: /home/runner/work/SVF/SVF/lib/FastCluster/fastcluster_R_dm.cpp.inc Source File</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="dir_97aefd0d527b934f1d99a682da8fe6a9.html">lib</a></li><li class="navelem"><a class="el" href="dir_d1b325ac671111a54e189ae033ba710d.html">FastCluster</a></li> </ul>
|
|
62
|
+
</div>
|
|
63
|
+
</div><!-- top -->
|
|
64
|
+
<div class="header">
|
|
65
|
+
<div class="headertitle">
|
|
66
|
+
<div class="title">fastcluster_R_dm.cpp.inc</div> </div>
|
|
67
|
+
</div><!--header-->
|
|
68
|
+
<div class="contents">
|
|
69
|
+
<a href="fastcluster__R__dm_8cpp_8inc.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// Excerpt from fastcluster_R.cpp</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// Copyright: Daniel Müllner, 2011 <http://danifold.net></span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">//</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> </div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="keyword">struct </span>pos_node {</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  t_index pos;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  <span class="keywordtype">int</span> node;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> };</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> </div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keywordtype">void</span> order_nodes(<span class="keyword">const</span> <span class="keywordtype">int</span> N, <span class="keyword">const</span> <span class="keywordtype">int</span> * <span class="keyword">const</span> merge, <span class="keyword">const</span> t_index * <span class="keyword">const</span> node_size, <span class="keywordtype">int</span> * <span class="keyword">const</span> order) {</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  <span class="comment">/* Parameters:</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> N : number of data points</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> merge : (N-1)×2 array which specifies the node indices which are</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> merged in each step of the clustering procedure.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> Negative entries -1...-N point to singleton nodes, while</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> positive entries 1...(N-1) point to nodes which are themselves</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> parents of other nodes.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> node_size : array of node sizes - makes it easier</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> order : output array of size N</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> Runtime: Θ(N)</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  auto_array_ptr<pos_node> queue(N/2);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="keywordtype">int</span> parent;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keywordtype">int</span> child;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  t_index pos = 0;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  queue[0].pos = 0;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  queue[0].node = N-2;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  t_index idx = 1;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keywordflow">do</span> {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  --idx;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  pos = queue[idx].pos;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  parent = queue[idx].node;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="comment">// First child</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  child = merge[parent];</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">if</span> (child<0) { <span class="comment">// singleton node, write this into the 'order' array.</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  order[pos] = -child;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  ++pos;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">else</span> { <span class="comment">/* compound node: put it on top of the queue and decompose it</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> in a later iteration. */</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  queue[idx].pos = pos;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  queue[idx].node = child-1; <span class="comment">// convert index-1 based to index-0 based</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  ++idx;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  pos += node_size[child-1];</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// Second child</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  child = merge[parent+N-1];</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">if</span> (child<0) {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  order[pos] = -child;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  queue[idx].pos = pos;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  queue[idx].node = child-1;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  ++idx;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  } <span class="keywordflow">while</span> (idx>0);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#define size_(r_) ( ((r_<N) ? 1 : node_size[r_-N]) )</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">template</span> <const <span class="keywordtype">bool</span> sorted></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keywordtype">void</span> generate_R_dendrogram(<span class="keywordtype">int</span> * <span class="keyword">const</span> merge, <span class="keywordtype">double</span> * <span class="keyword">const</span> height, <span class="keywordtype">int</span> * <span class="keyword">const</span> order, cluster_result & Z2, <span class="keyword">const</span> <span class="keywordtype">int</span> N) {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="comment">// The array "nodes" is a union-find data structure for the cluster</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="comment">// identites (only needed for unsorted cluster_result input).</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  union_find nodes(sorted ? 0 : N);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">if</span> (!sorted) {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  std::stable_sort(Z2[0], Z2[N-1]);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  t_index node1, node2;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  auto_array_ptr<t_index> node_size(N-1);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">for</span> (t_index i=0; i<N-1; ++i) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="comment">// Get two data points whose clusters are merged in step i.</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="comment">// Find the cluster identifiers for these points.</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">if</span> (sorted) {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  node1 = Z2[i]->node1;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  node2 = Z2[i]->node2;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  node1 = nodes.Find(Z2[i]->node1);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  node2 = nodes.Find(Z2[i]->node2);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// Merge the nodes in the union-find data structure by making them</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="comment">// children of a new node.</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  nodes.Union(node1, node2);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// Sort the nodes in the output array.</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">if</span> (node1>node2) {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  t_index tmp = node1;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  node1 = node2;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  node2 = tmp;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="comment">/* Conversion between labeling conventions.</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment"> Input: singleton nodes 0,...,N-1</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment"> compound nodes N,...,2N-2</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment"> Output: singleton nodes -1,...,-N</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment"> compound nodes 1,...,N</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment"> */</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  merge[i] = (node1<N) ? -static_cast<int>(node1)-1</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  : <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(node1)-N+1;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  merge[i+N-1] = (node2<N) ? -static_cast<int>(node2)-1</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  : <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(node2)-N+1;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  height[i] = Z2[i]->dist;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  node_size[i] = size_(node1) + size_(node2);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  order_nodes(N, merge, node_size, order);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> }</div></div><!-- fragment --></div><!-- contents -->
|
|
70
|
+
<!-- start footer part -->
|
|
71
|
+
<hr class="footer"/><address class="footer"><small>
|
|
72
|
+
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
73
|
+
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
74
|
+
</a> 1.8.13
|
|
75
|
+
</small></address>
|
|
76
|
+
</body>
|
|
77
|
+
</html>
|
|
@@ -0,0 +1,89 @@
|
|
|
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: /home/runner/work/SVF/SVF/lib/FastCluster/fastcluster_dm.cpp.inc File 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="dir_97aefd0d527b934f1d99a682da8fe6a9.html">lib</a></li><li class="navelem"><a class="el" href="dir_d1b325ac671111a54e189ae033ba710d.html">FastCluster</a></li> </ul>
|
|
62
|
+
</div>
|
|
63
|
+
</div><!-- top -->
|
|
64
|
+
<div class="header">
|
|
65
|
+
<div class="headertitle">
|
|
66
|
+
<div class="title">fastcluster_dm.cpp.inc File Reference</div> </div>
|
|
67
|
+
</div><!--header-->
|
|
68
|
+
<div class="contents">
|
|
69
|
+
<div class="textblock"><code>#include <fenv.h></code><br />
|
|
70
|
+
<code>#include <cmath></code><br />
|
|
71
|
+
<code>#include <cstddef></code><br />
|
|
72
|
+
<code>#include <limits></code><br />
|
|
73
|
+
<code>#include <algorithm></code><br />
|
|
74
|
+
<code>#include <stdexcept></code><br />
|
|
75
|
+
<code>#include <string></code><br />
|
|
76
|
+
<code>#include <cfloat></code><br />
|
|
77
|
+
<code>#include <climits></code><br />
|
|
78
|
+
<code>#include <stdint.h></code><br />
|
|
79
|
+
</div>
|
|
80
|
+
<p><a href="fastcluster__dm_8cpp_8inc_source.html">Go to the source code of this file.</a></p>
|
|
81
|
+
</div><!-- contents -->
|
|
82
|
+
<!-- start footer part -->
|
|
83
|
+
<hr class="footer"/><address class="footer"><small>
|
|
84
|
+
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
85
|
+
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
86
|
+
</a> 1.8.13
|
|
87
|
+
</small></address>
|
|
88
|
+
</body>
|
|
89
|
+
</html>
|