• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4<title>Exponential Distribution</title>
5<link rel="stylesheet" href="../../../math.css" type="text/css">
6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7<link rel="home" href="../../../index.html" title="Math Toolkit 2.12.0">
8<link rel="up" href="../dists.html" title="Distributions">
9<link rel="prev" href="empirical_cdf.html" title="Empirical Cumulative Distribution Function">
10<link rel="next" href="extreme_dist.html" title="Extreme Value Distribution">
11</head>
12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13<table cellpadding="2" width="100%"><tr>
14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
15<td align="center"><a href="../../../../../../../index.html">Home</a></td>
16<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
20</tr></table>
21<hr>
22<div class="spirit-nav">
23<a accesskey="p" href="empirical_cdf.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="extreme_dist.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
24</div>
25<div class="section">
26<div class="titlepage"><div><div><h4 class="title">
27<a name="math_toolkit.dist_ref.dists.exp_dist"></a><a class="link" href="exp_dist.html" title="Exponential Distribution">Exponential Distribution</a>
28</h4></div></div></div>
29<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">exponential</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
30<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
31          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 21. Policies: Controlling Precision, Error Handling etc">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</span>
32<span class="keyword">class</span> <span class="identifier">exponential_distribution</span><span class="special">;</span>
33
34<span class="keyword">typedef</span> <span class="identifier">exponential_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">exponential</span><span class="special">;</span>
35
36<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 21. Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
37<span class="keyword">class</span> <span class="identifier">exponential_distribution</span>
38<span class="special">{</span>
39<span class="keyword">public</span><span class="special">:</span>
40   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
41   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
42
43   <span class="identifier">exponential_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">lambda</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
44
45   <span class="identifier">RealType</span> <span class="identifier">lambda</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
46<span class="special">};</span>
47</pre>
48<p>
49          The <a href="http://en.wikipedia.org/wiki/Exponential_distribution" target="_top">exponential
50          distribution</a> is a <a href="http://en.wikipedia.org/wiki/Probability_distribution" target="_top">continuous
51          probability distribution</a> with PDF:
52        </p>
53<div class="blockquote"><blockquote class="blockquote"><p>
54            <span class="inlinemediaobject"><img src="../../../../equations/exponential_dist_ref1.svg"></span>
55
56          </p></blockquote></div>
57<p>
58          It is often used to model the time between independent events that happen
59          at a constant average rate.
60        </p>
61<p>
62          The following graph shows how the distribution changes for different values
63          of the rate parameter lambda:
64        </p>
65<div class="blockquote"><blockquote class="blockquote"><p>
66            <span class="inlinemediaobject"><img src="../../../../graphs/exponential_pdf.svg" align="middle"></span>
67
68          </p></blockquote></div>
69<h5>
70<a name="math_toolkit.dist_ref.dists.exp_dist.h0"></a>
71          <span class="phrase"><a name="math_toolkit.dist_ref.dists.exp_dist.member_functions"></a></span><a class="link" href="exp_dist.html#math_toolkit.dist_ref.dists.exp_dist.member_functions">Member
72          Functions</a>
73        </h5>
74<pre class="programlisting"><span class="identifier">exponential_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">lambda</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
75</pre>
76<p>
77          Constructs an <a href="http://en.wikipedia.org/wiki/Exponential_distribution" target="_top">Exponential
78          distribution</a> with parameter <span class="emphasis"><em>lambda</em></span>. Lambda
79          is defined as the reciprocal of the scale parameter.
80        </p>
81<p>
82          Requires lambda &gt; 0, otherwise calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
83        </p>
84<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">lambda</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
85</pre>
86<p>
87          Accessor function returns the lambda parameter of the distribution.
88        </p>
89<h5>
90<a name="math_toolkit.dist_ref.dists.exp_dist.h1"></a>
91          <span class="phrase"><a name="math_toolkit.dist_ref.dists.exp_dist.non_member_accessors"></a></span><a class="link" href="exp_dist.html#math_toolkit.dist_ref.dists.exp_dist.non_member_accessors">Non-member
92          Accessors</a>
93        </h5>
94<p>
95          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
96          functions</a> that are generic to all distributions are supported:
97          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
98          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
99          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
100          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
101          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
102          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
103          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
104          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
105        </p>
106<p>
107          The domain of the random variable is [0, +∞].
108        </p>
109<h5>
110<a name="math_toolkit.dist_ref.dists.exp_dist.h2"></a>
111          <span class="phrase"><a name="math_toolkit.dist_ref.dists.exp_dist.accuracy"></a></span><a class="link" href="exp_dist.html#math_toolkit.dist_ref.dists.exp_dist.accuracy">Accuracy</a>
112        </h5>
113<p>
114          The exponential distribution is implemented in terms of the standard library
115          functions <code class="computeroutput"><span class="identifier">exp</span></code>, <code class="computeroutput"><span class="identifier">log</span></code>, <code class="computeroutput"><span class="identifier">log1p</span></code>
116          and <code class="computeroutput"><span class="identifier">expm1</span></code> and as such should
117          have very low error rates.
118        </p>
119<h5>
120<a name="math_toolkit.dist_ref.dists.exp_dist.h3"></a>
121          <span class="phrase"><a name="math_toolkit.dist_ref.dists.exp_dist.implementation"></a></span><a class="link" href="exp_dist.html#math_toolkit.dist_ref.dists.exp_dist.implementation">Implementation</a>
122        </h5>
123<p>
124          In the following table λ is the parameter lambda of the distribution, <span class="emphasis"><em>x</em></span>
125          is the random variate, <span class="emphasis"><em>p</em></span> is the probability and <span class="emphasis"><em>q
126          = 1-p</em></span>.
127        </p>
128<div class="informaltable"><table class="table">
129<colgroup>
130<col>
131<col>
132</colgroup>
133<thead><tr>
134<th>
135                  <p>
136                    Function
137                  </p>
138                </th>
139<th>
140                  <p>
141                    Implementation Notes
142                  </p>
143                </th>
144</tr></thead>
145<tbody>
146<tr>
147<td>
148                  <p>
149                    pdf
150                  </p>
151                </td>
152<td>
153                  <p>
154                    Using the relation: pdf = λ * exp(-λ * x)
155                  </p>
156                </td>
157</tr>
158<tr>
159<td>
160                  <p>
161                    cdf
162                  </p>
163                </td>
164<td>
165                  <p>
166                    Using the relation: p = 1 - exp(-x * λ) = -expm1(-x * λ)
167                  </p>
168                </td>
169</tr>
170<tr>
171<td>
172                  <p>
173                    cdf complement
174                  </p>
175                </td>
176<td>
177                  <p>
178                    Using the relation: q = exp(-x * λ)
179                  </p>
180                </td>
181</tr>
182<tr>
183<td>
184                  <p>
185                    quantile
186                  </p>
187                </td>
188<td>
189                  <p>
190                    Using the relation: x = -log(1-p) / λ = -log1p(-p) / λ
191                  </p>
192                </td>
193</tr>
194<tr>
195<td>
196                  <p>
197                    quantile from the complement
198                  </p>
199                </td>
200<td>
201                  <p>
202                    Using the relation: x = -log(q) / λ
203                  </p>
204                </td>
205</tr>
206<tr>
207<td>
208                  <p>
209                    mean
210                  </p>
211                </td>
212<td>
213                  <p>
214                    1/λ
215                  </p>
216                </td>
217</tr>
218<tr>
219<td>
220                  <p>
221                    standard deviation
222                  </p>
223                </td>
224<td>
225                  <p>
226                    1/λ
227                  </p>
228                </td>
229</tr>
230<tr>
231<td>
232                  <p>
233                    mode
234                  </p>
235                </td>
236<td>
237                  <p>
238                    0
239                  </p>
240                </td>
241</tr>
242<tr>
243<td>
244                  <p>
245                    skewness
246                  </p>
247                </td>
248<td>
249                  <p>
250                    2
251                  </p>
252                </td>
253</tr>
254<tr>
255<td>
256                  <p>
257                    kurtosis
258                  </p>
259                </td>
260<td>
261                  <p>
262                    9
263                  </p>
264                </td>
265</tr>
266<tr>
267<td>
268                  <p>
269                    kurtosis excess
270                  </p>
271                </td>
272<td>
273                  <p>
274                    6
275                  </p>
276                </td>
277</tr>
278</tbody>
279</table></div>
280<h5>
281<a name="math_toolkit.dist_ref.dists.exp_dist.h4"></a>
282          <span class="phrase"><a name="math_toolkit.dist_ref.dists.exp_dist.references"></a></span><a class="link" href="exp_dist.html#math_toolkit.dist_ref.dists.exp_dist.references">references</a>
283        </h5>
284<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
285<li class="listitem">
286              <a href="http://mathworld.wolfram.com/ExponentialDistribution.html" target="_top">Weisstein,
287              Eric W. "Exponential Distribution." From MathWorld--A Wolfram
288              Web Resource</a>
289            </li>
290<li class="listitem">
291              <a href="http://documents.wolfram.com/calccenter/Functions/ListsMatrices/Statistics/ExponentialDistribution.html" target="_top">Wolfram
292              Mathematica calculator</a>
293            </li>
294<li class="listitem">
295              <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda3667.htm" target="_top">NIST
296              Exploratory Data Analysis</a>
297            </li>
298<li class="listitem">
299              <a href="http://en.wikipedia.org/wiki/Exponential_distribution" target="_top">Wikipedia
300              Exponential distribution</a>
301            </li>
302</ul></div>
303<p>
304          (See also the reference documentation for the related <a class="link" href="extreme_dist.html" title="Extreme Value Distribution">Extreme
305          Distributions</a>.)
306        </p>
307<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
308              <a href="http://www.worldscibooks.com/mathematics/p191.html" target="_top">Extreme
309              Value Distributions, Theory and Applications Samuel Kotz &amp; Saralees
310              Nadarajah</a> discuss the relationship of the types of extreme
311              value distributions.
312            </li></ul></div>
313</div>
314<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
315<td align="left"></td>
316<td align="right"><div class="copyright-footer">Copyright © 2006-2019 Nikhar
317      Agrawal, Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos,
318      Hubert Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Matthew Pulver, Johan
319      Råde, Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg,
320      Daryle Walker and Xiaogang Zhang<p>
321        Distributed under the Boost Software License, Version 1.0. (See accompanying
322        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
323      </p>
324</div></td>
325</tr></table>
326<hr>
327<div class="spirit-nav">
328<a accesskey="p" href="empirical_cdf.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="extreme_dist.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
329</div>
330</body>
331</html>
332