summaryrefslogtreecommitdiff
path: root/doc/power_law.1.html
blob: 1fdba1e15ff4fa729990ec790470f7412f1aeb83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv='content-type' value='text/html;charset=utf8'>
  <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
  <title>power_law(1) - Sample N integers from a discrete power-law distribution</title>
  <style type='text/css' media='all'>
  /* style: man */
  body#manpage {margin:0}
  .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
  .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
  .mp h2 {margin:10px 0 0 0}
  .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
  .mp h3 {margin:0 0 0 4ex}
  .mp dt {margin:0;clear:left}
  .mp dt.flush {float:left;width:8ex}
  .mp dd {margin:0 0 0 9ex}
  .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
  .mp pre {margin-bottom:20px}
  .mp pre+h2,.mp pre+h3 {margin-top:22px}
  .mp h2+pre,.mp h3+pre {margin-top:5px}
  .mp img {display:block;margin:auto}
  .mp h1.man-title {display:none}
  .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
  .mp h2 {font-size:16px;line-height:1.25}
  .mp h1 {font-size:20px;line-height:2}
  .mp {text-align:justify;background:#fff}
  .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
  .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
  .mp u {text-decoration:underline}
  .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
  .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
  .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
  .mp b.man-ref {font-weight:normal;color:#434241}
  .mp pre {padding:0 4ex}
  .mp pre code {font-weight:normal;color:#434241}
  .mp h2+pre,h3+pre {padding-left:0}
  ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
  ol.man-decor {width:100%}
  ol.man-decor li.tl {text-align:left}
  ol.man-decor li.tc {text-align:center;letter-spacing:4px}
  ol.man-decor li.tr {text-align:right;float:right}
  </style>
  <style type='text/css' media='all'>
  /* style: toc */
  .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
  .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
  .man-navigation a:hover {color:#111;text-decoration:underline}
  </style>
</head>
<!--
  The following styles are deprecated and will be removed at some point:
  div#man, div#man ol.man, div#man ol.head, div#man ol.man.

  The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
  .man-navigation should be used instead.
-->
<body id='manpage'>
  <div class='mp' id='man'>

  <div class='man-navigation' style='display:none'>
    <a href="#NAME">NAME</a>
    <a href="#SYNOPSIS">SYNOPSIS</a>
    <a href="#DESCRIPTION">DESCRIPTION</a>
    <a href="#PARAMETERS">PARAMETERS</a>
    <a href="#OUTPUT">OUTPUT</a>
    <a href="#EXAMPLES">EXAMPLES</a>
    <a href="#RETURN-VALUES">RETURN VALUES</a>
    <a href="#SEE-ALSO">SEE ALSO</a>
    <a href="#REFERENCES">REFERENCES</a>
    <a href="#AUTHORS">AUTHORS</a>
  </div>

  <ol class='man-decor man-head man head'>
    <li class='tl'>power_law(1)</li>
    <li class='tc'>www.complex-networks.net</li>
    <li class='tr'>power_law(1)</li>
  </ol>

  <h2 id="NAME">NAME</h2>
<p class="man-name">
  <code>power_law</code> - <span class="man-whatis">Sample N integers from a discrete power-law distribution</span>
</p>

<h2 id="SYNOPSIS">SYNOPSIS</h2>

<p><code>power_law</code> <var>gamma</var> <var>k_min</var> <var>k_max</var> <var>N</var></p>

<h2 id="DESCRIPTION">DESCRIPTION</h2>

<p><code>power_law</code> samples <var>N</var> elements from the discrete power-law
distribution</p>

<pre><code>P(k) ~ k^{gamma}
</code></pre>

<p>where</p>

<pre><code>k_min &lt;= k &lt;= k_max, gamma &lt; 1
</code></pre>

<p>The program can be used to generate a power-law degree distribution
with an assigned value of the exponent &lt;gamma.</p>

<h2 id="PARAMETERS">PARAMETERS</h2>

<ul>
<li><p><var>gamma</var>:
  Exponent of the power-law distribution.</p></li>
<li><p><var>k_min</var>, <var>k_max</var>:
  Boundaries of the sampling interval.</p></li>
<li><p><var>N</var>
  The number of samples to generate</p></li>
</ul>


<h2 id="OUTPUT">OUTPUT</h2>

<p><code>power_law</code> prints on the standard output the sampled values, one per
line, in the format:</p>

<pre><code>s1
s2
s3
 ...
sN
</code></pre>

<p>The program returns the value <code>0</code> if the sum of the samples is even,
or returns <code>1</code> otherwise. The return value can be used to determine
whether the set of samples can correspond to a degree sequence (if the
sum of the sequence is odd, then the sequence cannot be a valid degree
sequence). See <a href="#RETURN-VALUES" title="RETURN VALUES" data-bare-link="true">RETURN VALUES</a> below.</p>

<h2 id="EXAMPLES">EXAMPLES</h2>

<p>To generate <var>N=1000</var> independent samples from the power-law
distribution <code>P(k) ~ k^(-3)</code>, where samples are in the interval
<code>[3, 50]</code>, we can use:</p>

<pre><code>$ power_law -3.0 3 50 1000
11
3
3
5
6
7
 ....
8
3
$
</code></pre>

<p>To save the samples in the file <code>pl_-3.0_3_50_1000</code>, we redirect STDOUT:</p>

<pre><code>$ power_law -3.0 3 50 1000 &gt; pl_-3.0_3_50_1000
</code></pre>

<h2 id="RETURN-VALUES">RETURN VALUES</h2>

<p>The value returned by <code>power_law</code> can be used to test whether the sum
of the resulting set of samples is even or odd. Under Windows
PowerShell, you can check the last exit code by inspecting the
variable <code>$lastExitCode</code> right after executing <code>power_law</code>, as in:</p>

<pre><code>&gt; power_law -2.7 4 300 5000 &gt; pl_-2.7_4_300_5000
&gt; $lastExitCode

0
&gt;
</code></pre>

<p>In this case, the exit code is <code>0</code>, meaning that the resulting set of
samples has an even sum (and can be thus used as a degree
sequence). Under Linux/MacOS/Unix (and in general when using any
POSIX-compliant shell) you should check the value of the variable
<code>$?</code>, right after executing <code>power_law</code>, i.e.:</p>

<pre><code>$ power_law -2.5 3 500 5000 &gt; pl_-2.5_3_500_5000
$ echo $?
1
$
</code></pre>

<p>Notice that this particular run of <code>power_law</code> has produced a sequence
with an odd sum, which thus cannot correspond to a valid degree sequence.</p>

<h2 id="SEE-ALSO">SEE ALSO</h2>

<p><span class="man-ref">deg_seq<span class="s">(1)</span></span>, <span class="man-ref">conf_model_deg<span class="s">(1)</span></span>, <span class="man-ref">conf_model_deg_nocheck<span class="s">(1)</span></span></p>

<h2 id="REFERENCES">REFERENCES</h2>

<ul>
<li><p>V. Latora, V. Nicosia, G. Russo, "Complex Networks: Principles,
Methods and Applications", Chapter 5, Cambridge University Press
(2017)</p></li>
<li><p>V. Latora, V. Nicosia, G. Russo, "Complex Networks: Principles,
Methods and Applications", Appendix 9, Cambridge University Press
(2017)</p></li>
</ul>


<h2 id="AUTHORS">AUTHORS</h2>

<p>(c) Vincenzo 'KatolaZ' Nicosia 2009-2017 <code>&lt;v.nicosia@qmul.ac.uk&gt;</code>.</p>


  <ol class='man-decor man-foot man foot'>
    <li class='tl'>www.complex-networks.net</li>
    <li class='tc'>September 2017</li>
    <li class='tr'>power_law(1)</li>
  </ol>

  </div>
</body>
</html>