mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-03-24 13:53:35 +08:00
Documentation for 46854f516e
This commit is contained in:
@@ -124,7 +124,7 @@ Macros</h2></td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:a1aa76a6d5fd4d333f9072beff1dc486b"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d01/brent__method__extrema_8cpp.html#a1aa76a6d5fd4d333f9072beff1dc486b">get_minima</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>< double(double)> &<a class="el" href="../../d4/d32/fibonacci__fast_8cpp.html#a3ba232425d45f9e9c0b87a8cf7ab69d9">f</a>, double lim_a, double lim_b)</td></tr>
|
||||
<tr class="memitem:a1aa76a6d5fd4d333f9072beff1dc486b"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d01/brent__method__extrema_8cpp.html#a1aa76a6d5fd4d333f9072beff1dc486b">get_minima</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>< double(double)> &f, double lim_a, double lim_b)</td></tr>
|
||||
<tr class="memdesc:a1aa76a6d5fd4d333f9072beff1dc486b"><td class="mdescLeft"> </td><td class="mdescRight">Get the real root of a function in the given interval. <a href="../../db/d01/brent__method__extrema_8cpp.html#a1aa76a6d5fd4d333f9072beff1dc486b">More...</a><br /></td></tr>
|
||||
<tr class="separator:a1aa76a6d5fd4d333f9072beff1dc486b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a1440a7779ac56f47a3f355ce4a8c7da0"><td class="memItemLeft" align="right" valign="top"><a id="a1440a7779ac56f47a3f355ce4a8c7da0"></a>
|
||||
@@ -225,21 +225,21 @@ void </td><td class="memItemRight" valign="bottom"><a class="el" href="../.
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  }</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="comment">// golden ratio value</span></div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">const</span> <span class="keywordtype">double</span> M_GOLDEN_RATIO = (3.f - <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html">std::sqrt</a>(5.<a class="code" href="../../d4/d32/fibonacci__fast_8cpp.html#a3ba232425d45f9e9c0b87a8cf7ab69d9">f</a>)) / 2.<a class="code" href="../../d4/d32/fibonacci__fast_8cpp.html#a3ba232425d45f9e9c0b87a8cf7ab69d9">f</a>;</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">const</span> <span class="keywordtype">double</span> M_GOLDEN_RATIO = (3.f - <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html">std::sqrt</a>(5.f)) / 2.f;</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordtype">double</span> v = lim_a + M_GOLDEN_RATIO * (lim_b - lim_a);</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordtype">double</span> u, w = v, x = v;</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordtype">double</span> fu, fv = <a class="code" href="../../d4/d32/fibonacci__fast_8cpp.html#a3ba232425d45f9e9c0b87a8cf7ab69d9">f</a>(v);</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordtype">double</span> fu, fv = f(v);</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordtype">double</span> fw = fv, fx = fv;</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordtype">double</span> mid_point = (lim_a + lim_b) / 2.<a class="code" href="../../d4/d32/fibonacci__fast_8cpp.html#a3ba232425d45f9e9c0b87a8cf7ab69d9">f</a>;</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordtype">double</span> mid_point = (lim_a + lim_b) / 2.f;</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordtype">double</span> p = 0, q = 0, r = 0;</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordtype">double</span> d, e = 0;</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordtype">double</span> tolerance, tolerance2;</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">do</span> {</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  mid_point = (lim_a + lim_b) / 2.<a class="code" href="../../d4/d32/fibonacci__fast_8cpp.html#a3ba232425d45f9e9c0b87a8cf7ab69d9">f</a>;</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  mid_point = (lim_a + lim_b) / 2.f;</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  tolerance = <a class="code" href="../../db/d01/brent__method__extrema_8cpp.html#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</a> * std::abs(x);</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  tolerance2 = 2 * tolerance;</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
|
||||
@@ -277,7 +277,7 @@ void </td><td class="memItemRight" valign="bottom"><a class="el" href="../.
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  u = -tolerance;</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  u += x;</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  fu = <a class="code" href="../../d4/d32/fibonacci__fast_8cpp.html#a3ba232425d45f9e9c0b87a8cf7ab69d9">f</a>(u);</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  fu = f(u);</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  </div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="comment">// update variables</span></div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">if</span> (fu <= fx) {</div>
|
||||
@@ -308,7 +308,7 @@ void </td><td class="memItemRight" valign="bottom"><a class="el" href="../.
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  iters++;</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  } <span class="keywordflow">while</span> (std::abs(x - mid_point) > (tolerance - (lim_b - lim_a) / 2.<a class="code" href="../../d4/d32/fibonacci__fast_8cpp.html#a3ba232425d45f9e9c0b87a8cf7ab69d9">f</a>));</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  } <span class="keywordflow">while</span> (std::abs(x - mid_point) > (tolerance - (lim_b - lim_a) / 2.f));</div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">" (iters: "</span> << iters << <span class="stringliteral">") "</span>;</div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
|
||||
@@ -362,7 +362,6 @@ Here is the call graph for this function:</div>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<div class="ttc" id="abrent__method__extrema_8cpp_html_a6d0455dd5c30adda100e95f0423c786e"><div class="ttname"><a href="../../db/d01/brent__method__extrema_8cpp.html#a6d0455dd5c30adda100e95f0423c786e">test3</a></div><div class="ttdeci">void test3()</div><div class="ttdoc">Test function to find maxima for the function in the interval Expected result: .</div><div class="ttdef"><b>Definition:</b> brent_method_extrema.cpp:188</div></div>
|
||||
<div class="ttc" id="afibonacci__fast_8cpp_html_a3ba232425d45f9e9c0b87a8cf7ab69d9"><div class="ttname"><a href="../../d4/d32/fibonacci__fast_8cpp.html#a3ba232425d45f9e9c0b87a8cf7ab69d9">f</a></div><div class="ttdeci">uint64_t f[MAX]</div><div class="ttdef"><b>Definition:</b> fibonacci_fast.cpp:27</div></div>
|
||||
<div class="ttc" id="abrent__method__extrema_8cpp_html_a002b2f4894492820fe708b1b7e7c5e70"><div class="ttname"><a href="../../db/d01/brent__method__extrema_8cpp.html#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</a></div><div class="ttdeci">#define EPSILON</div><div class="ttdoc">system accuracy limit</div><div class="ttdef"><b>Definition:</b> brent_method_extrema.cpp:23</div></div>
|
||||
<div class="ttc" id="asqrt_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html">std::sqrt</a></div><div class="ttdeci">T sqrt(T... args)</div></div>
|
||||
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a></div></div>
|
||||
@@ -374,7 +373,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_9c6faab82c22511b50177aa2e38e2780.html">numerical_methods</a></li><li class="navelem"><a class="el" href="../../db/d01/brent__method__extrema_8cpp.html">brent_method_extrema.cpp</a></li>
|
||||
<li class="footer">Generated on Wed Jun 24 2020 17:40:28 for Algorithms_in_C++ by
|
||||
<li class="footer">Generated on Wed Jun 24 2020 20:42:36 for Algorithms_in_C++ by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.18 </li>
|
||||
</ul>
|
||||
|
||||
Reference in New Issue
Block a user