Documentation for 341ed50da8

This commit is contained in:
github-actions
2021-09-03 19:56:17 +00:00
parent 52d0c55145
commit 08e8eb037e
3432 changed files with 71392 additions and 72953 deletions

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: others/smallest_circle.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<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"],
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>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d0/d01/smallest__circle_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -93,12 +93,11 @@ $(document).ready(function(){initNavTree('d0/d01/smallest__circle_8cpp.html','..
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">smallest_circle.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">smallest_circle.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Get centre and radius of the <a href="https://en.wikipedia.org/wiki/Smallest-circle_problem">smallest circle</a> that circumscribes given set of points.
<p>Get centre and radius of the <a href="https://en.wikipedia.org/wiki/Smallest-circle_problem" target="_blank">smallest circle</a> that circumscribes given set of points.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cmath&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
@@ -110,12 +109,12 @@ Include dependency graph for smallest_circle.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/dc8/struct_point.html">Point</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a3cbebd6f4d2cdf227663c67fe41ba12a"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d01/smallest__circle_8cpp.html#a3cbebd6f4d2cdf227663c67fe41ba12a">LenghtLine</a> (const <a class="el" href="../../d8/dc8/struct_point.html">Point</a> &amp;A, const <a class="el" href="../../d8/dc8/struct_point.html">Point</a> &amp;B)</td></tr>
<tr class="separator:a3cbebd6f4d2cdf227663c67fe41ba12a"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -135,10 +134,10 @@ Functions</h2></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Get centre and radius of the <a href="https://en.wikipedia.org/wiki/Smallest-circle_problem">smallest circle</a> that circumscribes given set of points. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://www.nayuki.io/page/smallest-enclosing-circle">other implementation</a> </dd></dl>
<div class="textblock"><p >Get centre and radius of the <a href="https://en.wikipedia.org/wiki/Smallest-circle_problem" target="_blank">smallest circle</a> that circumscribes given set of points. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://www.nayuki.io/page/smallest-enclosing-circle" target="_blank">other implementation</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a0b0676df8e4da7a08c7ccaecea344903"></a>
<a id="a0b0676df8e4da7a08c7ccaecea344903" name="a0b0676df8e4da7a08c7ccaecea344903"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b0676df8e4da7a08c7ccaecea344903">&#9670;&nbsp;</a></span>circle()</h2>
<div class="memitem">
@@ -153,7 +152,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
<p>Find the centre and radius of a circle enclosing a set of points.<br />
<p >Find the centre and radius of a circle enclosing a set of points.<br />
The function returns the radius of the circle and prints the coordinated of the centre of the circle. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">P</td><td>vector of points </td></tr>
@@ -161,71 +160,71 @@ The function returns the radius of the circle and prints the coordinated of the
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>radius of the circle </dd></dl>
<div class="fragment"><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">double</span> minR = INFINITY;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">double</span> R;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="../../d8/dc8/struct_point.html">Point</a> C;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="../../d8/dc8/struct_point.html">Point</a> minC;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">/* This code is invalid and does not give correct result for TEST 3 */</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// for each point in the list</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; P.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() - 2; i++)</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// for every subsequent point in the list</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = i + 1; j &lt; P.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); j++)</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// for every subsequent point in the list</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> k = j + 1; k &lt; P.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); k++) {</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">// here, we now have picked three points from the given set of</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// points that we can use</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// viz., P[i], P[j] and P[k]</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; C.x = -0.5 * ((P[i].y * (P[j].x * P[j].x + P[j].y * P[j].y -</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; P[k].x * P[k].x - P[k].y * P[k].y) +</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; P[j].y * (P[k].x * P[k].x + P[k].y * P[k].y -</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; P[i].x * P[i].x - P[i].y * P[i].y) +</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; P[k].y * (P[i].x * P[i].x + P[i].y * P[i].y -</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; P[j].x * P[j].x - P[j].y * P[j].y)) /</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; (P[i].x * (P[j].y - P[k].y) +</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; P[j].x * (P[k].y - P[i].y) +</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; P[k].x * (P[i].y - P[j].y)));</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; C.<a class="code" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> = 0.5 * ((P[i].x * (P[j].x * P[j].x + P[j].y * P[j].y -</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; P[k].x * P[k].x - P[k].y * P[k].y) +</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; P[j].x * (P[k].x * P[k].x + P[k].y * P[k].y -</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; P[i].x * P[i].x - P[i].y * P[i].y) +</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; P[k].x * (P[i].x * P[i].x + P[i].y * P[i].y -</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; P[j].x * P[j].x - P[j].y * P[j].y)) /</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; (P[i].x * (P[j].y - P[k].y) +</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; P[j].x * (P[k].y - P[i].y) +</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; P[k].x * (P[i].y - P[j].y)));</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; R = (<a class="code" href="../../d0/d01/smallest__circle_8cpp.html#a3cbebd6f4d2cdf227663c67fe41ba12a">LenghtLine</a>(P[i], P[j]) * <a class="code" href="../../d0/d01/smallest__circle_8cpp.html#a3cbebd6f4d2cdf227663c67fe41ba12a">LenghtLine</a>(P[j], P[k]) *</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="../../d0/d01/smallest__circle_8cpp.html#a3cbebd6f4d2cdf227663c67fe41ba12a">LenghtLine</a>(P[k], P[i])) /</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; (4 * <a class="code" href="../../d0/d01/smallest__circle_8cpp.html#a94682a4a70d5906857ca09de5b9fb2cc">TriangleArea</a>(P[i], P[j], P[k]));</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="../../d0/d01/smallest__circle_8cpp.html#aee6d48762c1dfb9f14627927f0c16fad">PointInCircle</a>(P, C, R)) {</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span> (R &lt;= minR) {</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; minR = R;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; minC = C;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">// for each point in the list</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; P.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() - 1; i++)</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="comment">// for every subsequent point in the list</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = i + 1; j &lt; P.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); j++) {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="comment">// check for diameterically opposite points</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; C.x = (P[i].x + P[j].x) / 2;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; C.<a class="code" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> = (P[i].y + P[j].y) / 2;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; R = <a class="code" href="../../d0/d01/smallest__circle_8cpp.html#a3cbebd6f4d2cdf227663c67fe41ba12a">LenghtLine</a>(C, P[i]);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="../../d0/d01/smallest__circle_8cpp.html#aee6d48762c1dfb9f14627927f0c16fad">PointInCircle</a>(P, C, R)) {</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span> (R &lt;= minR) {</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; minR = R;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; minC = C;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; minC.x &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; minC.<a class="code" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> minR;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> {</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keywordtype">double</span> minR = INFINITY;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordtype">double</span> R;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <a class="code hl_struct" href="../../d8/dc8/struct_point.html">Point</a> C;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <a class="code hl_struct" href="../../d8/dc8/struct_point.html">Point</a> minC;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="comment">/* This code is invalid and does not give correct result for TEST 3 */</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// for each point in the list</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; P.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() - 2; i++)</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="comment">// for every subsequent point in the list</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = i + 1; j &lt; P.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); j++)</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="comment">// for every subsequent point in the list</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> k = j + 1; k &lt; P.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); k++) {</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="comment">// here, we now have picked three points from the given set of</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="comment">// points that we can use</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="comment">// viz., P[i], P[j] and P[k]</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> C.x = -0.5 * ((P[i].y * (P[j].x * P[j].x + P[j].y * P[j].y -</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> P[k].x * P[k].x - P[k].y * P[k].y) +</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> P[j].y * (P[k].x * P[k].x + P[k].y * P[k].y -</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> P[i].x * P[i].x - P[i].y * P[i].y) +</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> P[k].y * (P[i].x * P[i].x + P[i].y * P[i].y -</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> P[j].x * P[j].x - P[j].y * P[j].y)) /</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> (P[i].x * (P[j].y - P[k].y) +</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> P[j].x * (P[k].y - P[i].y) +</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> P[k].x * (P[i].y - P[j].y)));</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> C.<a class="code hl_variable" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> = 0.5 * ((P[i].x * (P[j].x * P[j].x + P[j].y * P[j].y -</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> P[k].x * P[k].x - P[k].y * P[k].y) +</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> P[j].x * (P[k].x * P[k].x + P[k].y * P[k].y -</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> P[i].x * P[i].x - P[i].y * P[i].y) +</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> P[k].x * (P[i].x * P[i].x + P[i].y * P[i].y -</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> P[j].x * P[j].x - P[j].y * P[j].y)) /</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> (P[i].x * (P[j].y - P[k].y) +</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> P[j].x * (P[k].y - P[i].y) +</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> P[k].x * (P[i].y - P[j].y)));</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> R = (<a class="code hl_function" href="../../d0/d01/smallest__circle_8cpp.html#a3cbebd6f4d2cdf227663c67fe41ba12a">LenghtLine</a>(P[i], P[j]) * <a class="code hl_function" href="../../d0/d01/smallest__circle_8cpp.html#a3cbebd6f4d2cdf227663c67fe41ba12a">LenghtLine</a>(P[j], P[k]) *</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <a class="code hl_function" href="../../d0/d01/smallest__circle_8cpp.html#a3cbebd6f4d2cdf227663c67fe41ba12a">LenghtLine</a>(P[k], P[i])) /</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> (4 * <a class="code hl_function" href="../../d0/d01/smallest__circle_8cpp.html#a94682a4a70d5906857ca09de5b9fb2cc">TriangleArea</a>(P[i], P[j], P[k]));</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="../../d0/d01/smallest__circle_8cpp.html#aee6d48762c1dfb9f14627927f0c16fad">PointInCircle</a>(P, C, R)) {</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> }</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keywordflow">if</span> (R &lt;= minR) {</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> minR = R;</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> minC = C;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> }</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> }</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// for each point in the list</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; P.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() - 1; i++)</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// for every subsequent point in the list</span></div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = i + 1; j &lt; P.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); j++) {</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="comment">// check for diameterically opposite points</span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> C.x = (P[i].x + P[j].x) / 2;</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> C.<a class="code hl_variable" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> = (P[i].y + P[j].y) / 2;</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> R = <a class="code hl_function" href="../../d0/d01/smallest__circle_8cpp.html#a3cbebd6f4d2cdf227663c67fe41ba12a">LenghtLine</a>(C, P[i]);</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="../../d0/d01/smallest__circle_8cpp.html#aee6d48762c1dfb9f14627927f0c16fad">PointInCircle</a>(P, C, R)) {</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> }</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordflow">if</span> (R &lt;= minR) {</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> minR = R;</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> minC = C;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> }</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> }</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; minC.x &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; minC.<a class="code hl_variable" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> &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="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="keywordflow">return</span> minR;</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</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="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="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/size.html">std::vector::size</a></div><div class="ttdeci">T size(T... args)</div></div>
@@ -243,7 +242,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a3cbebd6f4d2cdf227663c67fe41ba12a"></a>
<a id="a3cbebd6f4d2cdf227663c67fe41ba12a" name="a3cbebd6f4d2cdf227663c67fe41ba12a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3cbebd6f4d2cdf227663c67fe41ba12a">&#9670;&nbsp;</a></span>LenghtLine()</h2>
<div class="memitem">
@@ -268,7 +267,7 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Compute the Euclidian distance between two points \(A\equiv(x_1,y_1)\) and \(B\equiv(x_2,y_2)\) using the formula: </p><p class="formulaDsp">
<p >Compute the Euclidian distance between two points \(A\equiv(x_1,y_1)\) and \(B\equiv(x_2,y_2)\) using the formula: </p><p class="formulaDsp">
\[d=\sqrt{\left(x_1-x_2\right)^2+\left(y_1-y_2\right)^2}\]
</p>
<dl class="params"><dt>Parameters</dt><dd>
@@ -279,11 +278,11 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ditance </dd></dl>
<div class="fragment"><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; {</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">double</span> dx = B.x - A.x;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">double</span> dy = B.<a class="code" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> - A.<a class="code" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a>;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">return</span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html">std::sqrt</a>((dx * dx) + (dy * dy));</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> {</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordtype">double</span> dx = B.x - A.x;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordtype">double</span> dy = B.<a class="code hl_variable" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> - A.<a class="code hl_variable" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a>;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</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>((dx * dx) + (dy * dy));</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span>}</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>
@@ -294,7 +293,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -309,15 +308,15 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Main program </p>
<div class="fragment"><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="../../d0/d01/smallest__circle_8cpp.html#ae1a3968e7947464bee7714f6d43b7002">test</a>();</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="../../d0/d01/smallest__circle_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a>();</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="../../d0/d01/smallest__circle_8cpp.html#a6d0455dd5c30adda100e95f0423c786e">test3</a>();</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;}</div>
<p >Main program </p>
<div class="fragment"><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_function" href="../../d0/d01/smallest__circle_8cpp.html#ae1a3968e7947464bee7714f6d43b7002">test</a>();</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &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="l00201" name="l00201"></a><span class="lineno"> 201</span> <a class="code hl_function" href="../../d0/d01/smallest__circle_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a>();</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; <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> <a class="code hl_function" href="../../d0/d01/smallest__circle_8cpp.html#a6d0455dd5c30adda100e95f0423c786e">test3</a>();</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span>}</div>
<div class="ttc" id="asmallest__circle_8cpp_html_a0283886819c7c140a023582b7269e2d0"><div class="ttname"><a href="../../d0/d01/smallest__circle_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a></div><div class="ttdeci">void test2()</div><div class="ttdef"><b>Definition:</b> smallest_circle.cpp:173</div></div>
<div class="ttc" id="asmallest__circle_8cpp_html_a6d0455dd5c30adda100e95f0423c786e"><div class="ttname"><a href="../../d0/d01/smallest__circle_8cpp.html#a6d0455dd5c30adda100e95f0423c786e">test3</a></div><div class="ttdeci">void test3()</div><div class="ttdef"><b>Definition:</b> smallest_circle.cpp:188</div></div>
<div class="ttc" id="asmallest__circle_8cpp_html_ae1a3968e7947464bee7714f6d43b7002"><div class="ttname"><a href="../../d0/d01/smallest__circle_8cpp.html#ae1a3968e7947464bee7714f6d43b7002">test</a></div><div class="ttdeci">void test()</div><div class="ttdef"><b>Definition:</b> smallest_circle.cpp:158</div></div>
@@ -330,7 +329,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="aee6d48762c1dfb9f14627927f0c16fad"></a>
<a id="aee6d48762c1dfb9f14627927f0c16fad" name="aee6d48762c1dfb9f14627927f0c16fad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee6d48762c1dfb9f14627927f0c16fad">&#9670;&nbsp;</a></span>PointInCircle()</h2>
<div class="memitem">
@@ -361,7 +360,7 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Check if a set of points lie within given circle. This is true if the distance of all the points from the centre of the circle is less than the radius of the circle </p><dl class="params"><dt>Parameters</dt><dd>
<p >Check if a set of points lie within given circle. This is true if the distance of all the points from the centre of the circle is less than the radius of the circle </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">P</td><td>set of points to check </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">Center</td><td>coordinates to centre of the circle </td></tr>
@@ -372,13 +371,13 @@ Here is the call graph for this function:</div>
<dl class="section return"><dt>Returns</dt><dd>True if P lies on or within the circle </dd>
<dd>
False if P lies outside the circle </dd></dl>
<div class="fragment"><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; P.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); i++) {</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../d0/d01/smallest__circle_8cpp.html#a3cbebd6f4d2cdf227663c67fe41ba12a">LenghtLine</a>(P[i], Center) &gt; R)</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> {</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; P.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); i++) {</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="../../d0/d01/smallest__circle_8cpp.html#a3cbebd6f4d2cdf227663c67fe41ba12a">LenghtLine</a>(P[i], Center) &gt; R)</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> }</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -388,7 +387,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="ae1a3968e7947464bee7714f6d43b7002"></a>
<a id="ae1a3968e7947464bee7714f6d43b7002" name="ae1a3968e7947464bee7714f6d43b7002"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae1a3968e7947464bee7714f6d43b7002">&#9670;&nbsp;</a></span>test()</h2>
<div class="memitem">
@@ -402,19 +401,19 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Test case: result should be: <br />
<p >Test case: result should be: <br />
Circle with <br />
radius 3.318493136080724 <br />
centre at (3.0454545454545454, 1.3181818181818181) </p>
<div class="fragment"><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;Point&gt;</a> Pv;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; Pv.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(0, 0));</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; Pv.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(5, 4));</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; Pv.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(1, 3));</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; Pv.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(4, 1));</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; Pv.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(3, -2));</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code" href="../../d0/d01/smallest__circle_8cpp.html#a0b0676df8e4da7a08c7ccaecea344903">circle</a>(Pv) &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> {</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;Point&gt;</a> Pv;</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> Pv.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code hl_typedef" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(0, 0));</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> Pv.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code hl_typedef" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(5, 4));</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> Pv.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code hl_typedef" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(1, 3));</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> Pv.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code hl_typedef" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(4, 1));</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> Pv.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code hl_typedef" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(3, -2));</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code hl_function" href="../../d0/d01/smallest__circle_8cpp.html#a0b0676df8e4da7a08c7ccaecea344903">circle</a>(Pv) &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="l00166" name="l00166"></a><span class="lineno"> 166</span>}</div>
<div class="ttc" id="anamespaceciphers_1_1elliptic__curve__key__exchange_html_af0a6e3521629c25c2b5d620f26429830"><div class="ttname"><a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">ciphers::elliptic_curve_key_exchange::Point</a></div><div class="ttdeci">struct ciphers::elliptic_curve_key_exchange::Point Point</div><div class="ttdoc">Definition of struct Point.</div></div>
<div class="ttc" id="apush_back_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">std::vector::push_back</a></div><div class="ttdeci">T push_back(T... args)</div></div>
<div class="ttc" id="asmallest__circle_8cpp_html_a0b0676df8e4da7a08c7ccaecea344903"><div class="ttname"><a href="../../d0/d01/smallest__circle_8cpp.html#a0b0676df8e4da7a08c7ccaecea344903">circle</a></div><div class="ttdeci">double circle(const std::vector&lt; Point &gt; &amp;P)</div><div class="ttdef"><b>Definition:</b> smallest_circle.cpp:87</div></div>
@@ -428,7 +427,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a0283886819c7c140a023582b7269e2d0"></a>
<a id="a0283886819c7c140a023582b7269e2d0" name="a0283886819c7c140a023582b7269e2d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0283886819c7c140a023582b7269e2d0">&#9670;&nbsp;</a></span>test2()</h2>
<div class="memitem">
@@ -442,18 +441,18 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Test case: result should be: <br />
<p >Test case: result should be: <br />
Circle with <br />
radius 1.4142135623730951 <br />
centre at (1.0, 1.0) </p>
<div class="fragment"><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; {</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;Point&gt;</a> Pv;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; Pv.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(0, 0));</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; Pv.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(0, 2));</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; Pv.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(2, 2));</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; Pv.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(2, 0));</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code" href="../../d0/d01/smallest__circle_8cpp.html#a0b0676df8e4da7a08c7ccaecea344903">circle</a>(Pv) &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> {</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;Point&gt;</a> Pv;</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> Pv.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code hl_typedef" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(0, 0));</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> Pv.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code hl_typedef" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(0, 2));</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> Pv.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code hl_typedef" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(2, 2));</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> Pv.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code hl_typedef" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(2, 0));</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code hl_function" href="../../d0/d01/smallest__circle_8cpp.html#a0b0676df8e4da7a08c7ccaecea344903">circle</a>(Pv) &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="l00180" name="l00180"></a><span class="lineno"> 180</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -463,7 +462,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a6d0455dd5c30adda100e95f0423c786e"></a>
<a id="a6d0455dd5c30adda100e95f0423c786e" name="a6d0455dd5c30adda100e95f0423c786e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d0455dd5c30adda100e95f0423c786e">&#9670;&nbsp;</a></span>test3()</h2>
<div class="memitem">
@@ -477,18 +476,18 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Test case: result should be: <br />
<p >Test case: result should be: <br />
Circle with <br />
radius 1.821078397711709 <br />
centre at (2.142857142857143, 1.7857142857142856) </p><dl class="todo"><dt><b><a class="el" href="../../dd/da0/todo.html#_todo000010">Todo:</a></b></dt><dd>This test fails </dd></dl>
<div class="fragment"><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;Point&gt;</a> Pv;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; Pv.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(0.5, 1));</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; Pv.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(3.5, 3));</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; Pv.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(2.5, 0));</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; Pv.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(2, 1.5));</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code" href="../../d0/d01/smallest__circle_8cpp.html#a0b0676df8e4da7a08c7ccaecea344903">circle</a>(Pv) &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> {</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/container/vector.html">std::vector&lt;Point&gt;</a> Pv;</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> Pv.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code hl_typedef" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(0.5, 1));</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> Pv.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code hl_typedef" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(3.5, 3));</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> Pv.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code hl_typedef" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(2.5, 0));</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> Pv.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="code hl_typedef" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a>(2, 1.5));</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; <a class="code hl_function" href="../../d0/d01/smallest__circle_8cpp.html#a0b0676df8e4da7a08c7ccaecea344903">circle</a>(Pv) &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>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -498,7 +497,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a94682a4a70d5906857ca09de5b9fb2cc"></a>
<a id="a94682a4a70d5906857ca09de5b9fb2cc" name="a94682a4a70d5906857ca09de5b9fb2cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a94682a4a70d5906857ca09de5b9fb2cc">&#9670;&nbsp;</a></span>TriangleArea()</h2>
<div class="memitem">
@@ -529,7 +528,7 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Compute the area of triangle formed by three points using <a href="https://en.wikipedia.org/wiki/Heron%27s_formula">Heron's formula</a>. If the lengths of the sides of the triangle are \(a,\,b,\,c\) and \(s=\displaystyle\frac{a+b+c}{2}\) is the semi-perimeter then the area is given by </p><p class="formulaDsp">
<p >Compute the area of triangle formed by three points using <a href="https://en.wikipedia.org/wiki/Heron%27s_formula" target="_blank">Heron's formula</a>. If the lengths of the sides of the triangle are \(a,\,b,\,c\) and \(s=\displaystyle\frac{a+b+c}{2}\) is the semi-perimeter then the area is given by </p><p class="formulaDsp">
\[A=\sqrt{s(s-a)(s-b)(s-c)}\]
</p>
<dl class="params"><dt>Parameters</dt><dd>
@@ -541,13 +540,13 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>area of triangle </dd></dl>
<div class="fragment"><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">double</span> a = <a class="code" href="../../d0/d01/smallest__circle_8cpp.html#a3cbebd6f4d2cdf227663c67fe41ba12a">LenghtLine</a>(A, B);</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">double</span> b = <a class="code" href="../../d0/d01/smallest__circle_8cpp.html#a3cbebd6f4d2cdf227663c67fe41ba12a">LenghtLine</a>(B, C);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">double</span> c = <a class="code" href="../../d0/d01/smallest__circle_8cpp.html#a3cbebd6f4d2cdf227663c67fe41ba12a">LenghtLine</a>(C, A);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">double</span> p = (a + b + c) / 2;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html">std::sqrt</a>(p * (p - a) * (p - b) * (p - c));</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> {</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordtype">double</span> a = <a class="code hl_function" href="../../d0/d01/smallest__circle_8cpp.html#a3cbebd6f4d2cdf227663c67fe41ba12a">LenghtLine</a>(A, B);</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordtype">double</span> b = <a class="code hl_function" href="../../d0/d01/smallest__circle_8cpp.html#a3cbebd6f4d2cdf227663c67fe41ba12a">LenghtLine</a>(B, C);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordtype">double</span> c = <a class="code hl_function" href="../../d0/d01/smallest__circle_8cpp.html#a3cbebd6f4d2cdf227663c67fe41ba12a">LenghtLine</a>(C, A);</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordtype">double</span> p = (a + b + c) / 2;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</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>(p * (p - a) * (p - b) * (p - c));</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -563,7 +562,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_9510827d0b234b3cc54b29892f217477.html">others</a></li><li class="navelem"><a class="el" href="../../d0/d01/smallest__circle_8cpp.html">smallest_circle.cpp</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.1 </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.2 </li>
</ul>
</div>
</body>