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"><</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">></span></pre> 30<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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<></a> <span class="special">></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"><></span> <span class="identifier">exponential</span><span class="special">;</span> 35 36<span class="keyword">template</span> <span class="special"><</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">></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 > 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 & 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