mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-03-30 08:41:30 +08:00
534 lines
37 KiB
HTML
534 lines
37 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.9.5"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>Algorithms_in_C++: probability::geometric_dist::geometric_distribution Class Reference</title>
|
|
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="../../jquery.js"></script>
|
|
<script type="text/javascript" src="../../dynsections.js"></script>
|
|
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="../../resize.js"></script>
|
|
<script type="text/javascript" src="../../navtreedata.js"></script>
|
|
<script type="text/javascript" src="../../navtree.js"></script>
|
|
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="../../search/searchdata.js"></script>
|
|
<script type="text/javascript" src="../../search/search.js"></script>
|
|
<script type="text/x-mathjax-config">
|
|
MathJax.Hub.Config({
|
|
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
|
|
jax: ["input/TeX","output/HTML-CSS"],
|
|
});
|
|
</script>
|
|
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
|
|
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">Algorithms_in_C++<span id="projectnumber"> 1.0.0</span>
|
|
</div>
|
|
<div id="projectbrief">Set of algorithms implemented in C++.</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.9.5 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="../../menudata.js"></script>
|
|
<script type="text/javascript" src="../../menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('../../',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(document).ready(function(){initNavTree('da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html','../../'); initResizable(); });
|
|
/* @license-end */
|
|
</script>
|
|
<div id="doc-content">
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
<a href="#pri-attribs">Private Attributes</a> |
|
|
<a href="../../d2/d84/classprobability_1_1geometric__dist_1_1geometric__distribution-members.html">List of all members</a> </div>
|
|
<div class="headertitle"><div class="title">probability::geometric_dist::geometric_distribution Class Reference</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>A class to model the geometric distribution.
|
|
<a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#details">More...</a></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
|
|
Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:aa12088ba133dd0910103db0eb0ef2797"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aa12088ba133dd0910103db0eb0ef2797">geometric_distribution</a> (const float &<a class="el" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>)</td></tr>
|
|
<tr class="memdesc:aa12088ba133dd0910103db0eb0ef2797"><td class="mdescLeft"> </td><td class="mdescRight">Constructor for the geometric distribution. <a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aa12088ba133dd0910103db0eb0ef2797">More...</a><br /></td></tr>
|
|
<tr class="separator:aa12088ba133dd0910103db0eb0ef2797"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a41051365f8ac7700f2ed5880a6760413"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a41051365f8ac7700f2ed5880a6760413">expected_value</a> () const</td></tr>
|
|
<tr class="memdesc:a41051365f8ac7700f2ed5880a6760413"><td class="mdescLeft"> </td><td class="mdescRight">The expected value of a geometrically distributed random variable X. <a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a41051365f8ac7700f2ed5880a6760413">More...</a><br /></td></tr>
|
|
<tr class="separator:a41051365f8ac7700f2ed5880a6760413"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aea8b0d649f0dc9a6f8baf3341a0b4960"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aea8b0d649f0dc9a6f8baf3341a0b4960">variance</a> () const</td></tr>
|
|
<tr class="memdesc:aea8b0d649f0dc9a6f8baf3341a0b4960"><td class="mdescLeft"> </td><td class="mdescRight">The variance of a geometrically distributed random variable X. <a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aea8b0d649f0dc9a6f8baf3341a0b4960">More...</a><br /></td></tr>
|
|
<tr class="separator:aea8b0d649f0dc9a6f8baf3341a0b4960"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0a10c512e13dd3a052e1c6d7f4d6f0f2"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a0a10c512e13dd3a052e1c6d7f4d6f0f2">standard_deviation</a> () const</td></tr>
|
|
<tr class="memdesc:a0a10c512e13dd3a052e1c6d7f4d6f0f2"><td class="mdescLeft"> </td><td class="mdescRight">The standard deviation of a geometrically distributed random variable X. <a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a0a10c512e13dd3a052e1c6d7f4d6f0f2">More...</a><br /></td></tr>
|
|
<tr class="separator:a0a10c512e13dd3a052e1c6d7f4d6f0f2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aee973db9f0435e0cb4cc70f8eb3447a1"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aee973db9f0435e0cb4cc70f8eb3447a1">probability_density</a> (const uint32_t &k) const</td></tr>
|
|
<tr class="memdesc:aee973db9f0435e0cb4cc70f8eb3447a1"><td class="mdescLeft"> </td><td class="mdescRight">The probability density function. <a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aee973db9f0435e0cb4cc70f8eb3447a1">More...</a><br /></td></tr>
|
|
<tr class="separator:aee973db9f0435e0cb4cc70f8eb3447a1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a08328dc7d62188427111f176b56a105a"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a08328dc7d62188427111f176b56a105a">cumulative_distribution</a> (const uint32_t &k) const</td></tr>
|
|
<tr class="memdesc:a08328dc7d62188427111f176b56a105a"><td class="mdescLeft"> </td><td class="mdescRight">The cumulative distribution function. <a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a08328dc7d62188427111f176b56a105a">More...</a><br /></td></tr>
|
|
<tr class="separator:a08328dc7d62188427111f176b56a105a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aaf762e88c66918d7afda4234f28a7ddf"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aaf762e88c66918d7afda4234f28a7ddf">inverse_cumulative_distribution</a> (const float &cdf) const</td></tr>
|
|
<tr class="memdesc:aaf762e88c66918d7afda4234f28a7ddf"><td class="mdescLeft"> </td><td class="mdescRight">The inverse cumulative distribution function. <a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aaf762e88c66918d7afda4234f28a7ddf">More...</a><br /></td></tr>
|
|
<tr class="separator:aaf762e88c66918d7afda4234f28a7ddf"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8aae1cebcf42ed2332f1c7217c401aa3"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a8aae1cebcf42ed2332f1c7217c401aa3">draw_sample</a> () const</td></tr>
|
|
<tr class="memdesc:a8aae1cebcf42ed2332f1c7217c401aa3"><td class="mdescLeft"> </td><td class="mdescRight">Generates a (discrete) sample according to the geometrical distribution. <a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a8aae1cebcf42ed2332f1c7217c401aa3">More...</a><br /></td></tr>
|
|
<tr class="separator:a8aae1cebcf42ed2332f1c7217c401aa3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4620163a196709484225774d87de6d69"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a4620163a196709484225774d87de6d69">range_tries</a> (const uint32_t &min_tries=1, const uint32_t &max_tries=<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/numeric_limits.html">std::numeric_limits</a>< uint32_t >::max()) const</td></tr>
|
|
<tr class="memdesc:a4620163a196709484225774d87de6d69"><td class="mdescLeft"> </td><td class="mdescRight">This function computes the probability to have success in a given range of tries. <a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a4620163a196709484225774d87de6d69">More...</a><br /></td></tr>
|
|
<tr class="separator:a4620163a196709484225774d87de6d69"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
|
|
Private Attributes</h2></td></tr>
|
|
<tr class="memitem:ad5ed23a251dbe55ad1ed06bf1a465ad3"><td class="memItemLeft" align="right" valign="top"><a id="ad5ed23a251dbe55ad1ed06bf1a465ad3" name="ad5ed23a251dbe55ad1ed06bf1a465ad3"></a>
|
|
float </td><td class="memItemRight" valign="bottom"><b>p</b></td></tr>
|
|
<tr class="memdesc:ad5ed23a251dbe55ad1ed06bf1a465ad3"><td class="mdescLeft"> </td><td class="mdescRight">The succes probability p. <br /></td></tr>
|
|
<tr class="separator:ad5ed23a251dbe55ad1ed06bf1a465ad3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p >A class to model the geometric distribution. </p>
|
|
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
<a id="aa12088ba133dd0910103db0eb0ef2797" name="aa12088ba133dd0910103db0eb0ef2797"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa12088ba133dd0910103db0eb0ef2797">◆ </a></span>geometric_distribution()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">probability::geometric_dist::geometric_distribution::geometric_distribution </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const float & </td>
|
|
<td class="paramname"><em>p</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Constructor for the geometric distribution. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">p</td><td>The success probability </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<div class="fragment"><div class="line"><span class="lineno"> 64</span>: <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>(<a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>) {}</div>
|
|
<div class="ttc" id="aclassprobability_1_1geometric__dist_1_1geometric__distribution_html_ad5ed23a251dbe55ad1ed06bf1a465ad3"><div class="ttname"><a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">probability::geometric_dist::geometric_distribution::p</a></div><div class="ttdeci">float p</div><div class="ttdoc">The succes probability p.</div><div class="ttdef"><b>Definition:</b> geometric_dist.cpp:57</div></div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
<a id="a08328dc7d62188427111f176b56a105a" name="a08328dc7d62188427111f176b56a105a"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a08328dc7d62188427111f176b56a105a">◆ </a></span>cumulative_distribution()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float probability::geometric_dist::geometric_distribution::cumulative_distribution </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const uint32_t & </td>
|
|
<td class="paramname"><em>k</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The cumulative distribution function. </p>
|
|
<p >The sum of all probabilities up to (and including) k trials. Basically CDF(k) = P(x <= k) </p><dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">k</td><td>The number of trials in [1,\infty) </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>The probability to have success within k trials </dd></dl>
|
|
<div class="fragment"><div class="line"><span class="lineno"> 104</span> {</div>
|
|
<div class="line"><span class="lineno"> 105</span> <span class="keywordflow">return</span> 1.0f - <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/pow.html">std::pow</a>((1.0f - <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>), <span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(k));</div>
|
|
<div class="line"><span class="lineno"> 106</span> }</div>
|
|
<div class="ttc" id="apow_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/pow.html">std::pow</a></div><div class="ttdeci">T pow(T... args)</div></div>
|
|
</div><!-- fragment --><div class="dynheader">
|
|
Here is the call graph for this function:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><iframe scrolling="no" frameborder="0" src="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution_a08328dc7d62188427111f176b56a105a_cgraph.svg" width="316" height="66"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a8aae1cebcf42ed2332f1c7217c401aa3" name="a8aae1cebcf42ed2332f1c7217c401aa3"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a8aae1cebcf42ed2332f1c7217c401aa3">◆ </a></span>draw_sample()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">uint32_t probability::geometric_dist::geometric_distribution::draw_sample </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Generates a (discrete) sample according to the geometrical distribution. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>A geometrically distributed number in [1,\infty) </dd></dl>
|
|
<div class="fragment"><div class="line"><span class="lineno"> 125</span> {</div>
|
|
<div class="line"><span class="lineno"> 126</span> <span class="keywordtype">float</span> uniform_sample = <a class="code hl_function" href="../../de/d72/geometric__dist_8cpp.html#a82964ca6180507deb5fafc71050012ba">generate_uniform</a>();</div>
|
|
<div class="line"><span class="lineno"> 127</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>uint32_t<span class="keyword">></span>(</div>
|
|
<div class="line"><span class="lineno"> 128</span> <a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aaf762e88c66918d7afda4234f28a7ddf">inverse_cumulative_distribution</a>(uniform_sample)) +</div>
|
|
<div class="line"><span class="lineno"> 129</span> 1;</div>
|
|
<div class="line"><span class="lineno"> 130</span> }</div>
|
|
<div class="ttc" id="aclassprobability_1_1geometric__dist_1_1geometric__distribution_html_aaf762e88c66918d7afda4234f28a7ddf"><div class="ttname"><a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aaf762e88c66918d7afda4234f28a7ddf">probability::geometric_dist::geometric_distribution::inverse_cumulative_distribution</a></div><div class="ttdeci">float inverse_cumulative_distribution(const float &cdf) const</div><div class="ttdoc">The inverse cumulative distribution function.</div><div class="ttdef"><b>Definition:</b> geometric_dist.cpp:116</div></div>
|
|
<div class="ttc" id="ageometric__dist_8cpp_html_a82964ca6180507deb5fafc71050012ba"><div class="ttname"><a href="../../de/d72/geometric__dist_8cpp.html#a82964ca6180507deb5fafc71050012ba">probability::geometric_dist::generate_uniform</a></div><div class="ttdeci">float generate_uniform()</div><div class="ttdoc">Returns a random number between [0,1].</div><div class="ttdef"><b>Definition:</b> geometric_dist.cpp:48</div></div>
|
|
</div><!-- fragment --><div class="dynheader">
|
|
Here is the call graph for this function:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><iframe scrolling="no" frameborder="0" src="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution_a8aae1cebcf42ed2332f1c7217c401aa3_cgraph.svg" width="570" height="155"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a41051365f8ac7700f2ed5880a6760413" name="a41051365f8ac7700f2ed5880a6760413"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a41051365f8ac7700f2ed5880a6760413">◆ </a></span>expected_value()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float probability::geometric_dist::geometric_distribution::expected_value </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The expected value of a geometrically distributed random variable X. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>E[X] = 1/p </dd></dl>
|
|
<div class="fragment"><div class="line"><span class="lineno"> 71</span>{ <span class="keywordflow">return</span> 1.0f / <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>; }</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="aaf762e88c66918d7afda4234f28a7ddf" name="aaf762e88c66918d7afda4234f28a7ddf"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aaf762e88c66918d7afda4234f28a7ddf">◆ </a></span>inverse_cumulative_distribution()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float probability::geometric_dist::geometric_distribution::inverse_cumulative_distribution </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const float & </td>
|
|
<td class="paramname"><em>cdf</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The inverse cumulative distribution function. </p>
|
|
<p >This functions answers the question: Up to how many trials are needed to have success with a probability of cdf? The exact floating point value is reported. </p><dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">cdf</td><td>The probability in [0,1] </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>The number of (exact) trials. </dd></dl>
|
|
<div class="fragment"><div class="line"><span class="lineno"> 116</span> {</div>
|
|
<div class="line"><span class="lineno"> 117</span> <span class="keywordflow">return</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/log.html">std::log</a>(1.0f - cdf) / <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/log.html">std::log</a>(1.0f - <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>);</div>
|
|
<div class="line"><span class="lineno"> 118</span> }</div>
|
|
<div class="ttc" id="alog_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/log.html">std::log</a></div><div class="ttdeci">T log(T... args)</div></div>
|
|
</div><!-- fragment --><div class="dynheader">
|
|
Here is the call graph for this function:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><iframe scrolling="no" frameborder="0" src="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution_aaf762e88c66918d7afda4234f28a7ddf_cgraph.svg" width="336" height="66"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aee973db9f0435e0cb4cc70f8eb3447a1" name="aee973db9f0435e0cb4cc70f8eb3447a1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aee973db9f0435e0cb4cc70f8eb3447a1">◆ </a></span>probability_density()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float probability::geometric_dist::geometric_distribution::probability_density </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const uint32_t & </td>
|
|
<td class="paramname"><em>k</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The probability density function. </p>
|
|
<p >As we use the first definition of the geometric series (1), we are doing k - 1 failed trials and the k-th trial is a success. </p><dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">k</td><td>The number of trials to observe the first success in [1,\infty) </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>A number between [0,1] according to p * (1-p)^{k-1} </dd></dl>
|
|
<div class="fragment"><div class="line"><span class="lineno"> 93</span> {</div>
|
|
<div class="line"><span class="lineno"> 94</span> <span class="keywordflow">return</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/pow.html">std::pow</a>((1.0f - <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>), <span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(k - 1)) * <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>;</div>
|
|
<div class="line"><span class="lineno"> 95</span> }</div>
|
|
</div><!-- fragment --><div class="dynheader">
|
|
Here is the call graph for this function:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><iframe scrolling="no" frameborder="0" src="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution_aee973db9f0435e0cb4cc70f8eb3447a1_cgraph.svg" width="316" height="66"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a4620163a196709484225774d87de6d69" name="a4620163a196709484225774d87de6d69"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4620163a196709484225774d87de6d69">◆ </a></span>range_tries()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float probability::geometric_dist::geometric_distribution::range_tries </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const uint32_t & </td>
|
|
<td class="paramname"><em>min_tries</em> = <code>1</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const uint32_t & </td>
|
|
<td class="paramname"><em>max_tries</em> = <code><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/numeric_limits.html">std::numeric_limits</a><uint32_t>::max()</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>This function computes the probability to have success in a given range of tries. </p>
|
|
<p >Computes P(min_tries <= x <= max_tries). Can be used to calculate P(x >= min_tries) by not passing a second argument. Can be used to calculate P(x <= max_tries) by passing 1 as the first argument </p><dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">min_tries</td><td>The minimum number of tries in [1,\infty) (inclusive) </td></tr>
|
|
<tr><td class="paramname">max_tries</td><td>The maximum number of tries in [min_tries, \infty) (inclusive) </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>The probability of having success within a range of tries [min_tries, max_tries] </dd></dl>
|
|
<div class="fragment"><div class="line"><span class="lineno"> 147</span> {</div>
|
|
<div class="line"><span class="lineno"> 148</span> <span class="keywordtype">float</span> cdf_lower = <a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a08328dc7d62188427111f176b56a105a">cumulative_distribution</a>(min_tries - 1);</div>
|
|
<div class="line"><span class="lineno"> 149</span> <span class="keywordtype">float</span> cdf_upper = max_tries == <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/numeric_limits/max.html">std::numeric_limits<uint32_t>::max</a>()</div>
|
|
<div class="line"><span class="lineno"> 150</span> ? 1.0f</div>
|
|
<div class="line"><span class="lineno"> 151</span> : <a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a08328dc7d62188427111f176b56a105a">cumulative_distribution</a>(max_tries);</div>
|
|
<div class="line"><span class="lineno"> 152</span> <span class="keywordflow">return</span> cdf_upper - cdf_lower;</div>
|
|
<div class="line"><span class="lineno"> 153</span> }</div>
|
|
<div class="ttc" id="aclassprobability_1_1geometric__dist_1_1geometric__distribution_html_a08328dc7d62188427111f176b56a105a"><div class="ttname"><a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a08328dc7d62188427111f176b56a105a">probability::geometric_dist::geometric_distribution::cumulative_distribution</a></div><div class="ttdeci">float cumulative_distribution(const uint32_t &k) const</div><div class="ttdoc">The cumulative distribution function.</div><div class="ttdef"><b>Definition:</b> geometric_dist.cpp:104</div></div>
|
|
<div class="ttc" id="amax_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/numeric_limits/max.html">std::numeric_limits::max</a></div><div class="ttdeci">T max(T... args)</div></div>
|
|
</div><!-- fragment --><div class="dynheader">
|
|
Here is the call graph for this function:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><iframe scrolling="no" frameborder="0" src="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution_a4620163a196709484225774d87de6d69_cgraph.svg" width="550" height="115"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0a10c512e13dd3a052e1c6d7f4d6f0f2" name="a0a10c512e13dd3a052e1c6d7f4d6f0f2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0a10c512e13dd3a052e1c6d7f4d6f0f2">◆ </a></span>standard_deviation()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float probability::geometric_dist::geometric_distribution::standard_deviation </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The standard deviation of a geometrically distributed random variable X. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>\sigma = \sqrt{V[X]} </dd></dl>
|
|
<div class="fragment"><div class="line"><span class="lineno"> 84</span>{ <span class="keywordflow">return</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html">std::sqrt</a>(<a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aea8b0d649f0dc9a6f8baf3341a0b4960">variance</a>()); }</div>
|
|
<div class="ttc" id="aclassprobability_1_1geometric__dist_1_1geometric__distribution_html_aea8b0d649f0dc9a6f8baf3341a0b4960"><div class="ttname"><a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aea8b0d649f0dc9a6f8baf3341a0b4960">probability::geometric_dist::geometric_distribution::variance</a></div><div class="ttdeci">float variance() const</div><div class="ttdoc">The variance of a geometrically distributed random variable X.</div><div class="ttdef"><b>Definition:</b> geometric_dist.cpp:77</div></div>
|
|
<div class="ttc" id="asqrt_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html">std::sqrt</a></div><div class="ttdeci">T sqrt(T... args)</div></div>
|
|
</div><!-- fragment --><div class="dynheader">
|
|
Here is the call graph for this function:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><iframe scrolling="no" frameborder="0" src="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution_a0a10c512e13dd3a052e1c6d7f4d6f0f2_cgraph.svg" width="430" height="115"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aea8b0d649f0dc9a6f8baf3341a0b4960" name="aea8b0d649f0dc9a6f8baf3341a0b4960"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aea8b0d649f0dc9a6f8baf3341a0b4960">◆ </a></span>variance()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float probability::geometric_dist::geometric_distribution::variance </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The variance of a geometrically distributed random variable X. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>V[X] = (1 - p) / p^2 </dd></dl>
|
|
<div class="fragment"><div class="line"><span class="lineno"> 77</span>{ <span class="keywordflow">return</span> (1.0f - <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>) / (<a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a> * <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>); }</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
|
<li>probability/<a class="el" href="../../de/d72/geometric__dist_8cpp.html">geometric_dist.cpp</a></li>
|
|
</ul>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="../../d4/ded/namespaceprobability.html">probability</a></li><li class="navelem"><b>geometric_dist</b></li><li class="navelem"><a class="el" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html">geometric_distribution</a></li>
|
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.5 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|