Documentation for 85721be69b

This commit is contained in:
github-actions
2021-10-14 18:44:08 +00:00
parent 135b946a16
commit 4563c5bd6b
61 changed files with 1516 additions and 1115 deletions

View File

@@ -168,9 +168,9 @@ Functions</h2></td></tr>
<p>Returns a random number between [0,1]. </p>
<dl class="section return"><dt>Returns</dt><dd>A uniformly distributed random number between 0 (included) and 1 (included) </dd></dl>
<div class="fragment"><div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> {</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/rand.html">rand</a>()) / <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(RAND_MAX);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>}</div>
<div class="fragment"><div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> {</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/rand.html">rand</a>()) / <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(RAND_MAX);</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span>}</div>
<div class="ttc" id="arand_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/rand.html">std::rand</a></div><div class="ttdeci">T rand(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -199,12 +199,12 @@ Here is the call graph for this function:</div>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> {</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/srand.html">srand</a>(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/time.html">time</a>(<span class="keyword">nullptr</span>));</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <a class="code hl_function" href="../../de/d72/geometric__dist_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span>}</div>
<div class="ttc" id="ageometric__dist_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../de/d72/geometric__dist_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition:</b> geometric_dist.cpp:179</div></div>
<div class="fragment"><div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> {</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/srand.html">srand</a>(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/time.html">time</a>(<span class="keyword">nullptr</span>));</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <a class="code hl_function" href="../../de/d72/geometric__dist_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span>}</div>
<div class="ttc" id="ageometric__dist_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../de/d72/geometric__dist_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition:</b> geometric_dist.cpp:197</div></div>
<div class="ttc" id="asrand_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/srand.html">std::srand</a></div><div class="ttdeci">T srand(T... args)</div></div>
<div class="ttc" id="atime_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/c/time.html">std::time</a></div><div class="ttdeci">T time(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
@@ -239,34 +239,36 @@ Here is the call graph for this function:</div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> {</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> uint32_t n_tries = 1000000;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;float&gt;</a> tries;</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> tries.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/resize.html">resize</a>(n_tries);</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> </div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordtype">float</span> mean = 0.0f;</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; n_tries; ++i) {</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> tries[i] = <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(dist.<a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a8aae1cebcf42ed2332f1c7217c401aa3">draw_sample</a>());</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> mean += tries[i];</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> }</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> </div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> mean /= <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(n_tries);</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> </div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keywordtype">float</span> var = 0.0f;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; n_tries; ++i) {</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> var += (tries[i] - mean) * (tries[i] - mean);</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> }</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="comment">//Unbiased estimate of variance</span></div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> var /= <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(n_tries - 1);</div>
<div class="fragment"><div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> {</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> uint32_t n_tries = 1000000;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;float&gt;</a> tries;</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> tries.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/resize.html">resize</a>(n_tries);</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;This value should be near &quot;</span> &lt;&lt; dist.<a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a41051365f8ac7700f2ed5880a6760413">expected_value</a>() &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; mean &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;This value should be near &quot;</span> &lt;&lt; dist.<a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aea8b0d649f0dc9a6f8baf3341a0b4960">variance</a>() &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; var &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span>}</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keywordtype">float</span> mean = 0.0f;</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; n_tries; ++i) {</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> tries[i] = <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(dist.<a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a8aae1cebcf42ed2332f1c7217c401aa3">draw_sample</a>());</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> mean += tries[i];</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> }</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> mean /= <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(n_tries);</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> </div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="keywordtype">float</span> var = 0.0f;</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; n_tries; ++i) {</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> var += (tries[i] - mean) * (tries[i] - mean);</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> }</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> </div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="comment">// Unbiased estimate of variance</span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> var /= <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(n_tries - 1);</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> </div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;This value should be near &quot;</span> &lt;&lt; dist.<a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a41051365f8ac7700f2ed5880a6760413">expected_value</a>() &lt;&lt; <span class="stringliteral">&quot;: &quot;</span></div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> &lt;&lt; mean &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;This value should be near &quot;</span> &lt;&lt; dist.<a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aea8b0d649f0dc9a6f8baf3341a0b4960">variance</a>() &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; var</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span>}</div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="aclassprobability_1_1geometric__dist_1_1geometric__distribution_html_a41051365f8ac7700f2ed5880a6760413"><div class="ttname"><a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a41051365f8ac7700f2ed5880a6760413">probability::geometric_dist::geometric_distribution::expected_value</a></div><div class="ttdeci">float expected_value() const</div><div class="ttdoc">The expected value of a geometrically distributed random variable X.</div><div class="ttdef"><b>Definition:</b> geometric_dist.cpp:65</div></div>
<div class="ttc" id="aclassprobability_1_1geometric__dist_1_1geometric__distribution_html_a8aae1cebcf42ed2332f1c7217c401aa3"><div class="ttname"><a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a8aae1cebcf42ed2332f1c7217c401aa3">probability::geometric_dist::geometric_distribution::draw_sample</a></div><div class="ttdeci">uint32_t draw_sample() const</div><div class="ttdoc">Generates a (discrete) sample according to the geometrical distribution.</div><div class="ttdef"><b>Definition:</b> geometric_dist.cpp:121</div></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:73</div></div>
<div class="ttc" id="aclassprobability_1_1geometric__dist_1_1geometric__distribution_html_a41051365f8ac7700f2ed5880a6760413"><div class="ttname"><a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a41051365f8ac7700f2ed5880a6760413">probability::geometric_dist::geometric_distribution::expected_value</a></div><div class="ttdeci">float expected_value() const</div><div class="ttdoc">The expected value of a geometrically distributed random variable X.</div><div class="ttdef"><b>Definition:</b> geometric_dist.cpp:71</div></div>
<div class="ttc" id="aclassprobability_1_1geometric__dist_1_1geometric__distribution_html_a8aae1cebcf42ed2332f1c7217c401aa3"><div class="ttname"><a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a8aae1cebcf42ed2332f1c7217c401aa3">probability::geometric_dist::geometric_distribution::draw_sample</a></div><div class="ttdeci">uint32_t draw_sample() const</div><div class="ttdoc">Generates a (discrete) sample according to the geometrical distribution.</div><div class="ttdef"><b>Definition:</b> geometric_dist.cpp:125</div></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="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
<div class="ttc" id="aresize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/resize.html">std::vector::resize</a></div><div class="ttdeci">T resize(T... args)</div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div></div>
@@ -304,56 +306,62 @@ Here is the call graph for this function:</div>
<p>Self-test implementations. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> {</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <a class="code hl_class" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html">probability::geometric_dist::geometric_distribution</a> dist(0.3);</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> </div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">const</span> <span class="keywordtype">float</span> threshold = 1e-3f;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> </div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Starting tests for p = 0.3...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> assert(std::abs(dist.expected_value() - 3.33333333f) &lt; threshold);</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> assert(std::abs(dist.variance() - 7.77777777f) &lt; threshold);</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> assert(std::abs(dist.standard_deviation() - 2.788866755) &lt; threshold);</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> assert(std::abs(dist.probability_density(5) - 0.07203) &lt; threshold);</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> assert(std::abs(dist.cumulative_distribution(6) - 0.882351) &lt; threshold);</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> assert(std::abs(dist.inverse_cumulative_distribution(dist.cumulative_distribution(8)) - 8) &lt; threshold);</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> assert(std::abs(dist.range_tries() - 1.0f) &lt; threshold);</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> assert(std::abs(dist.range_tries(3) - 0.49f) &lt; threshold);</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> assert(std::abs(dist.range_tries(5, 11) - 0.2203267f) &lt; threshold);</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All tests passed&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <a class="code hl_function" href="../../de/d72/geometric__dist_8cpp.html#a70fd1cc5c3a2813f28683dc75dcd65b6">sample_test</a>(dist);</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> </div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> dist = <a class="code hl_class" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html">probability::geometric_dist::geometric_distribution</a>(0.5f);</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Starting tests for p = 0.5...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> assert(std::abs(dist.expected_value() - 2.0f) &lt; threshold);</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> assert(std::abs(dist.variance() - 2.0f) &lt; threshold);</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> assert(std::abs(dist.standard_deviation() - 1.4142135f) &lt; threshold);</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> assert(std::abs(dist.probability_density(5) - 0.03125) &lt; threshold);</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> assert(std::abs(dist.cumulative_distribution(6) - 0.984375) &lt; threshold);</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> assert(std::abs(dist.inverse_cumulative_distribution(dist.cumulative_distribution(8)) - 8) &lt; threshold);</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> assert(std::abs(dist.range_tries() - 1.0f) &lt; threshold);</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> assert(std::abs(dist.range_tries(3) - 0.25f) &lt; threshold);</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> assert(std::abs(dist.range_tries(5, 11) - 0.062011f) &lt; threshold);</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All tests passed&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <a class="code hl_function" href="../../de/d72/geometric__dist_8cpp.html#a70fd1cc5c3a2813f28683dc75dcd65b6">sample_test</a>(dist);</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> </div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> dist = <a class="code hl_class" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html">probability::geometric_dist::geometric_distribution</a>(0.8f);</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> </div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Starting tests for p = 0.8...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> assert(std::abs(dist.expected_value() - 1.25f) &lt; threshold);</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> assert(std::abs(dist.variance() - 0.3125f) &lt; threshold);</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> assert(std::abs(dist.standard_deviation() - 0.559016f) &lt; threshold);</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> assert(std::abs(dist.probability_density(5) - 0.00128) &lt; threshold);</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> assert(std::abs(dist.cumulative_distribution(6) - 0.999936) &lt; threshold);</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> assert(std::abs(dist.inverse_cumulative_distribution(dist.cumulative_distribution(8)) - 8) &lt; threshold);</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> assert(std::abs(dist.range_tries() - 1.0f) &lt; threshold);</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> assert(std::abs(dist.range_tries(3) - 0.04f) &lt; threshold);</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> assert(std::abs(dist.range_tries(5, 11) - 0.00159997f) &lt; threshold);</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All tests have successfully passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <a class="code hl_function" href="../../de/d72/geometric__dist_8cpp.html#a70fd1cc5c3a2813f28683dc75dcd65b6">sample_test</a>(dist);</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span>}</div>
<div class="ttc" id="aclassprobability_1_1geometric__dist_1_1geometric__distribution_html"><div class="ttname"><a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html">probability::geometric_dist::geometric_distribution</a></div><div class="ttdoc">A class to model the geometric distribution.</div><div class="ttdef"><b>Definition:</b> geometric_dist.cpp:50</div></div>
<div class="ttc" id="ageometric__dist_8cpp_html_a70fd1cc5c3a2813f28683dc75dcd65b6"><div class="ttname"><a href="../../de/d72/geometric__dist_8cpp.html#a70fd1cc5c3a2813f28683dc75dcd65b6">sample_test</a></div><div class="ttdeci">void sample_test(const probability::geometric_dist::geometric_distribution &amp;dist)</div><div class="ttdoc">Tests the sampling method of the geometric distribution.</div><div class="ttdef"><b>Definition:</b> geometric_dist.cpp:150</div></div>
<div class="fragment"><div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> {</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <a class="code hl_class" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html">probability::geometric_dist::geometric_distribution</a> dist(0.3);</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> </div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keyword">const</span> <span class="keywordtype">float</span> threshold = 1e-3f;</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> </div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Starting tests for p = 0.3...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> assert(std::abs(dist.expected_value() - 3.33333333f) &lt; threshold);</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> assert(std::abs(dist.variance() - 7.77777777f) &lt; threshold);</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> assert(std::abs(dist.standard_deviation() - 2.788866755) &lt; threshold);</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> assert(std::abs(dist.probability_density(5) - 0.07203) &lt; threshold);</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> assert(std::abs(dist.cumulative_distribution(6) - 0.882351) &lt; threshold);</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> assert(std::abs(dist.inverse_cumulative_distribution(</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> dist.cumulative_distribution(8)) -</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> 8) &lt; threshold);</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> assert(std::abs(dist.range_tries() - 1.0f) &lt; threshold);</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> assert(std::abs(dist.range_tries(3) - 0.49f) &lt; threshold);</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> assert(std::abs(dist.range_tries(5, 11) - 0.2203267f) &lt; threshold);</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All tests passed&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <a class="code hl_function" href="../../de/d72/geometric__dist_8cpp.html#a70fd1cc5c3a2813f28683dc75dcd65b6">sample_test</a>(dist);</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> </div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> dist = <a class="code hl_class" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html">probability::geometric_dist::geometric_distribution</a>(0.5f);</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> </div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Starting tests for p = 0.5...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> assert(std::abs(dist.expected_value() - 2.0f) &lt; threshold);</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> assert(std::abs(dist.variance() - 2.0f) &lt; threshold);</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> assert(std::abs(dist.standard_deviation() - 1.4142135f) &lt; threshold);</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> assert(std::abs(dist.probability_density(5) - 0.03125) &lt; threshold);</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> assert(std::abs(dist.cumulative_distribution(6) - 0.984375) &lt; threshold);</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> assert(std::abs(dist.inverse_cumulative_distribution(</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> dist.cumulative_distribution(8)) -</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> 8) &lt; threshold);</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> assert(std::abs(dist.range_tries() - 1.0f) &lt; threshold);</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> assert(std::abs(dist.range_tries(3) - 0.25f) &lt; threshold);</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> assert(std::abs(dist.range_tries(5, 11) - 0.062011f) &lt; threshold);</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All tests passed&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <a class="code hl_function" href="../../de/d72/geometric__dist_8cpp.html#a70fd1cc5c3a2813f28683dc75dcd65b6">sample_test</a>(dist);</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> </div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> dist = <a class="code hl_class" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html">probability::geometric_dist::geometric_distribution</a>(0.8f);</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> </div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Starting tests for p = 0.8...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> assert(std::abs(dist.expected_value() - 1.25f) &lt; threshold);</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> assert(std::abs(dist.variance() - 0.3125f) &lt; threshold);</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> assert(std::abs(dist.standard_deviation() - 0.559016f) &lt; threshold);</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> assert(std::abs(dist.probability_density(5) - 0.00128) &lt; threshold);</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> assert(std::abs(dist.cumulative_distribution(6) - 0.999936) &lt; threshold);</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> assert(std::abs(dist.inverse_cumulative_distribution(</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> dist.cumulative_distribution(8)) -</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> 8) &lt; threshold);</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> assert(std::abs(dist.range_tries() - 1.0f) &lt; threshold);</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> assert(std::abs(dist.range_tries(3) - 0.04f) &lt; threshold);</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> assert(std::abs(dist.range_tries(5, 11) - 0.00159997f) &lt; threshold);</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All tests have successfully passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <a class="code hl_function" href="../../de/d72/geometric__dist_8cpp.html#a70fd1cc5c3a2813f28683dc75dcd65b6">sample_test</a>(dist);</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span>}</div>
<div class="ttc" id="aclassprobability_1_1geometric__dist_1_1geometric__distribution_html"><div class="ttname"><a href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html">probability::geometric_dist::geometric_distribution</a></div><div class="ttdoc">A class to model the geometric distribution.</div><div class="ttdef"><b>Definition:</b> geometric_dist.cpp:55</div></div>
<div class="ttc" id="ageometric__dist_8cpp_html_a70fd1cc5c3a2813f28683dc75dcd65b6"><div class="ttname"><a href="../../de/d72/geometric__dist_8cpp.html#a70fd1cc5c3a2813f28683dc75dcd65b6">sample_test</a></div><div class="ttdeci">void sample_test(const probability::geometric_dist::geometric_distribution &amp;dist)</div><div class="ttdoc">Tests the sampling method of the geometric distribution.</div><div class="ttdef"><b>Definition:</b> geometric_dist.cpp:165</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">