Documentation for 6791651b68

This commit is contained in:
github-actions
2020-06-25 21:57:10 +00:00
parent 0d96bb647e
commit 059fdc9b52
201 changed files with 5529 additions and 4238 deletions

View File

@@ -0,0 +1,334 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<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.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: numerical_methods/lu_decomposition.h File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr 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>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<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');
/* @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 */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('d1/dbe/lu__decomposition_8h.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">lu_decomposition.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Functions associated with <a href="https://en.wikipedia.org/wiki/LU_decomposition">LU Decomposition</a> of a square matrix.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;valarray&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for lu_decomposition.h:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d6/d20/lu__decomposition_8h__incl.svg" width="259" height="127"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d39/lu__decomposition_8h__dep__incl.svg" width="160" height="142"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
<p><a href="../../d1/dbe/lu__decomposition_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:aed8766713ee9b561a4acdcdff5f90ea5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:aed8766713ee9b561a4acdcdff5f90ea5"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a> = <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; T &gt; &gt;</td></tr>
<tr class="separator:aed8766713ee9b561a4acdcdff5f90ea5"><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>
Functions</h2></td></tr>
<tr class="memitem:a75b8a228c6419ecda6077255d6d60509"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a75b8a228c6419ecda6077255d6d60509"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509">lu_decomposition</a> (const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; T &gt; &amp;A, <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; double &gt; *L, <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; double &gt; *U)</td></tr>
<tr class="separator:a75b8a228c6419ecda6077255d6d60509"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3108d43bd32c6fb3b3c158476c51ba7f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a3108d43bd32c6fb3b3c158476c51ba7f"><td class="memTemplItemLeft" align="right" valign="top">double&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f">determinant_lu</a> (const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; T &gt; &amp;A)</td></tr>
<tr class="memdesc:a3108d43bd32c6fb3b3c158476c51ba7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute determinant of an NxN square matrix using LU decomposition. Using LU decomposition, the determinant is given by the product of diagonal elements of matrices L and U. <a href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f">More...</a><br /></td></tr>
<tr class="separator:a3108d43bd32c6fb3b3c158476c51ba7f"><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>Functions associated with <a href="https://en.wikipedia.org/wiki/LU_decomposition">LU Decomposition</a> of a square matrix. </p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/kvedala">Krishna Vedala</a> </dd></dl>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a id="aed8766713ee9b561a4acdcdff5f90ea5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed8766713ee9b561a4acdcdff5f90ea5">&#9670;&nbsp;</a></span>matrix</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a> = <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt;T&gt; &gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Define matrix type as a <code><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html" title="STL class.">std::vector</a></code> of <code><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html" title="STL class.">std::valarray</a></code> </p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a3108d43bd32c6fb3b3c158476c51ba7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3108d43bd32c6fb3b3c158476c51ba7f">&#9670;&nbsp;</a></span>determinant_lu()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="memname">
<tr>
<td class="memname">double determinant_lu </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>A</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Compute determinant of an NxN square matrix using LU decomposition. Using LU decomposition, the determinant is given by the product of diagonal elements of matrices L and U. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>datatype of input matrix - int, unsigned int, double, etc </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">A</td><td>input square matrix </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>determinant of matrix A </dd></dl>
<div class="fragment"><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;double&gt;</a> L(A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(), <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt;double&gt;</a>(A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>()));</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;double&gt;</a> U(A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(), <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt;double&gt;</a>(A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>()));</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509">lu_decomposition</a>(A, &amp;L, &amp;U) &lt; 0)</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">double</span> result = 1.f;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; A.<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="l00099"></a><span class="lineno"> 99</span>&#160; result *= L[i][i] * U[i][i];</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d1/dbe/lu__decomposition_8h_a3108d43bd32c6fb3b3c158476c51ba7f_cgraph.svg" width="452" height="63"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="a75b8a228c6419ecda6077255d6d60509"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75b8a228c6419ecda6077255d6d60509">&#9670;&nbsp;</a></span>lu_decomposition()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="memname">
<tr>
<td class="memname">int lu_decomposition </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>A</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; double &gt; *&#160;</td>
<td class="paramname"><em>L</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; double &gt; *&#160;</td>
<td class="paramname"><em>U</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Perform LU decomposition on matrix </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">A</td><td>matrix to decompose </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">L</td><td>output L matrix </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">U</td><td>output U matrix </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if no errors </dd>
<dd>
negative if error occurred </dd></dl>
<div class="fragment"><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; {</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">int</span> row, col, j;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">int</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> = A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> != A[0].size()) {</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="comment">// check matrix is a square matrix</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> &lt;&lt; <span class="stringliteral">&quot;Not a square matrix!\n&quot;</span>;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">return</span> -1;</div>
<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; </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">// regularize each row</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">for</span> (row = 0; row &lt; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; row++) {</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="comment">// Upper triangular matrix</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma omp for</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">for</span> (col = row; col &lt; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; col++) {</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="comment">// Summation of L[i,j] * U[j,k]</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">double</span> lu_sum = 0.;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; row; j++) {</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; lu_sum += L[0][row][j] * U[0][j][col];</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// Evaluate U[i,k]</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; U[0][row][col] = A[row][col] - lu_sum;</div>
<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; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="comment">// Lower triangular matrix</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#pragma omp for</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">for</span> (col = row; col &lt; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; col++) {</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">if</span> (row == col) {</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; L[0][row][col] = 1.;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">// Summation of L[i,j] * U[j,k]</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">double</span> lu_sum = 0.;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; row; j++) {</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; lu_sum += L[0][col][j] * U[0][j][row];</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// Evaluate U[i,k]</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; L[0][col][row] = (A[col][row] - lu_sum) / U[0][row][row];</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</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> 0;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d1/dbe/lu__decomposition_8h_a75b8a228c6419ecda6077255d6d60509_cgraph.svg" width="298" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="amatrix__exponentiation_8cpp_html_a9977ad12548c4a49dee9dc3f0685aa54"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a></div><div class="ttdeci">ll mat_size</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:45</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 class="ttdoc">STL class.</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>
<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>
<div class="ttc" id="avalarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="alu__decomposition_8h_html_a75b8a228c6419ecda6077255d6d60509"><div class="ttname"><a href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509">lu_decomposition</a></div><div class="ttdeci">int lu_decomposition(const matrix&lt; T &gt; &amp;A, matrix&lt; double &gt; *L, matrix&lt; double &gt; *U)</div><div class="ttdef"><b>Definition:</b> lu_decomposition.h:29</div></div>
<!-- start footer part -->
<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="../../d1/dbe/lu__decomposition_8h.html">lu_decomposition.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.18 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,6 @@
var lu__decomposition_8h =
[
[ "matrix", "d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5", null ],
[ "determinant_lu", "d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f", null ],
[ "lu_decomposition", "d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509", null ]
];

View File

@@ -0,0 +1,5 @@
<map id="determinant_lu" name="determinant_lu">
<area shape="rect" id="node1" title="Compute determinant of an NxN square matrix using LU decomposition. Using LU decomposition,..." alt="" coords="5,31,112,57"/>
<area shape="rect" id="node2" href="$d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" title=" " alt="" coords="160,5,283,32"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="331,31,447,57"/>
</map>

View File

@@ -0,0 +1 @@
88a2ff7f08f53ee9aac3f59997d32991

View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.0 (20200408.0750)
-->
<!-- Title: determinant_lu Pages: 1 -->
<svg width="339pt" height="47pt"
viewBox="0.00 0.00 339.00 47.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 43)">
<title>determinant_lu</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-43 335,-43 335,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Compute determinant of an NxN square matrix using LU decomposition. Using LU decomposition,...">
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-19.5 80,-19.5 80,-0.5 0,-0.5"/>
<text text-anchor="middle" x="40" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">determinant_lu</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="116,-19.5 116,-38.5 208,-38.5 208,-19.5 116,-19.5"/>
<text text-anchor="middle" x="162" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00">lu_decomposition</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M80.29,-16.22C88.45,-17.51 97.19,-18.9 105.79,-20.26"/>
<polygon fill="midnightblue" stroke="midnightblue" points="105.36,-23.73 115.79,-21.84 106.46,-16.82 105.36,-23.73"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="244,-0.5 244,-19.5 331,-19.5 331,-0.5 244,-0.5"/>
<text text-anchor="middle" x="287.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge3" class="edge">
<title>Node1&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M80.17,-10C121.7,-10 187.55,-10 233.65,-10"/>
<polygon fill="midnightblue" stroke="midnightblue" points="233.76,-13.5 243.76,-10 233.76,-6.5 233.76,-13.5"/>
</g>
<!-- Node2&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node2&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M208.29,-22.03C216.51,-20.77 225.15,-19.44 233.57,-18.14"/>
<polygon fill="midnightblue" stroke="midnightblue" points="234.33,-21.57 243.68,-16.59 233.27,-14.65 234.33,-21.57"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,4 @@
<map id="lu_decomposition" name="lu_decomposition">
<area shape="rect" id="node1" title=" " alt="" coords="5,5,128,32"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="176,5,292,32"/>
</map>

View File

@@ -0,0 +1 @@
2046e39037fadeac7e6958ecbc86a537

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.0 (20200408.0750)
-->
<!-- Title: lu_decomposition Pages: 1 -->
<svg width="223pt" height="28pt"
viewBox="0.00 0.00 223.00 28.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 24)">
<title>lu_decomposition</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-24 219,-24 219,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title=" ">
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-19.5 92,-19.5 92,-0.5 0,-0.5"/>
<text text-anchor="middle" x="46" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">lu_decomposition</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="128,-0.5 128,-19.5 215,-19.5 215,-0.5 128,-0.5"/>
<text text-anchor="middle" x="171.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M92.29,-10C100.51,-10 109.15,-10 117.57,-10"/>
<polygon fill="midnightblue" stroke="midnightblue" points="117.68,-13.5 127.68,-10 117.68,-6.5 117.68,-13.5"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,352 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<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.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: numerical_methods/lu_decomposition.h Source File</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr 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>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<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');
/* @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 */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('d1/dbe/lu__decomposition_8h_source.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">lu_decomposition.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="../../d1/dbe/lu__decomposition_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * @file lu_decomposition.h</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * @author [Krishna Vedala](https://github.com/kvedala)</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * @brief Functions associated with [LU</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Decomposition](https://en.wikipedia.org/wiki/LU_decomposition)</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * of a square matrix.</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;valarray&gt;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &lt;omp.h&gt;</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">/** Define matrix type as a `std::vector` of `std::valarray` */</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5"> 19</a></span>&#160;<span class="keyword">using</span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix</a> = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::valarray&lt;T&gt;</a>&gt;;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">/** Perform LU decomposition on matrix</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * \param[in] A matrix to decompose</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * \param[out] L output L matrix</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * \param[out] U output U matrix</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * \returns 0 if no errors</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * \returns negative if error occurred</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509"> 29</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509">lu_decomposition</a>(<span class="keyword">const</span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;T&gt;</a> &amp;A, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;double&gt;</a> *L, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;double&gt;</a> *U) {</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">int</span> row, col, j;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">int</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> = A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> != A[0].size()) {</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="comment">// check matrix is a square matrix</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> &lt;&lt; <span class="stringliteral">&quot;Not a square matrix!\n&quot;</span>;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">return</span> -1;</div>
<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; </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">// regularize each row</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">for</span> (row = 0; row &lt; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; row++) {</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="comment">// Upper triangular matrix</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma omp for</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">for</span> (col = row; col &lt; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; col++) {</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="comment">// Summation of L[i,j] * U[j,k]</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">double</span> lu_sum = 0.;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; row; j++) {</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; lu_sum += L[0][row][j] * U[0][j][col];</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// Evaluate U[i,k]</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; U[0][row][col] = A[row][col] - lu_sum;</div>
<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; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="comment">// Lower triangular matrix</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#pragma omp for</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">for</span> (col = row; col &lt; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; col++) {</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">if</span> (row == col) {</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; L[0][row][col] = 1.;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">// Summation of L[i,j] * U[j,k]</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">double</span> lu_sum = 0.;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; row; j++) {</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; lu_sum += L[0][col][j] * U[0][j][row];</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// Evaluate U[i,k]</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; L[0][col][row] = (A[col][row] - lu_sum) / U[0][row][row];</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</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> 0;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;}</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"> * @brief Compute determinant of an NxN square matrix using LU decomposition.</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment"> * Using LU decomposition, the determinant is given by the product of diagonal</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"> * elements of matrices L and U.</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment"> * @tparam T datatype of input matrix - int, unsigned int, double, etc</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment"> * @param A input square matrix</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"> * @return determinant of matrix A</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f"> 90</a></span>&#160;<span class="keywordtype">double</span> <a class="code" href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f">determinant_lu</a>(<span class="keyword">const</span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;T&gt;</a> &amp;A) {</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;double&gt;</a> L(A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(), <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt;double&gt;</a>(A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>()));</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;double&gt;</a> U(A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(), <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt;double&gt;</a>(A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>()));</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509">lu_decomposition</a>(A, &amp;L, &amp;U) &lt; 0)</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">double</span> result = 1.f;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; A.<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="l00099"></a><span class="lineno"> 99</span>&#160; result *= L[i][i] * U[i][i];</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="adurand__kerner__roots_8cpp_html_a024b8bc4755863315456d573a6732377"><div class="ttname"><a href="../../da/df2/durand__kerner__roots_8cpp.html#a024b8bc4755863315456d573a6732377">check_termination</a></div><div class="ttdeci">bool check_termination(long double delta)</div><div class="ttdef"><b>Definition:</b> durand_kerner_roots.cpp:91</div></div>
<div class="ttc" id="asqrt__double_8cpp_html_ae662282ad0740d2063ac404ca3bd74fc"><div class="ttname"><a href="../../da/d24/sqrt__double_8cpp.html#ae662282ad0740d2063ac404ca3bd74fc">Sqrt</a></div><div class="ttdeci">double Sqrt(double a)</div><div class="ttdef"><b>Definition:</b> sqrt_double.cpp:16</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="aleast__common__multiple_8cpp_html_aa8d0e241db517813725e721a152e3a25"><div class="ttname"><a href="../../d4/d21/least__common__multiple_8cpp.html#aa8d0e241db517813725e721a152e3a25">lcm</a></div><div class="ttdeci">unsigned int lcm(unsigned int x, unsigned int y)</div><div class="ttdef"><b>Definition:</b> least_common_multiple.cpp:43</div></div>
<div class="ttc" id="aleast__common__multiple_8cpp_html_a88ec9ad42717780d6caaff9d3d6977f9"><div class="ttname"><a href="../../d4/d21/least__common__multiple_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a></div><div class="ttdeci">void tests()</div><div class="ttdef"><b>Definition:</b> least_common_multiple.cpp:48</div></div>
<div class="ttc" id="aprime__factorization_8cpp_html_af097796783684712b8326e5b82bfd4fe"><div class="ttname"><a href="../../db/d0d/prime__factorization_8cpp.html#af097796783684712b8326e5b82bfd4fe">prime_numbers</a></div><div class="ttdeci">std::vector&lt; int &gt; prime_numbers</div><div class="ttdef"><b>Definition:</b> prime_factorization.cpp:16</div></div>
<div class="ttc" id="aprimes__up__to__billion_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../d4/d9c/primes__up__to__billion_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition:</b> primes_up_to_billion.cpp:26</div></div>
<div class="ttc" id="afalse__position_8cpp_html_a0a3abbca80bc98e7abcb3ae73abe0f14"><div class="ttname"><a href="../../dd/d29/false__position_8cpp.html#a0a3abbca80bc98e7abcb3ae73abe0f14">MAX_ITERATIONS</a></div><div class="ttdeci">#define MAX_ITERATIONS</div><div class="ttdoc">Maximum number of iterations to check.</div><div class="ttdef"><b>Definition:</b> false_position.cpp:24</div></div>
<div class="ttc" id="aclassstatistics_1_1stats__computer2_html_a7e7a1a2b0a03df0a70cac40d193421d2"><div class="ttname"><a href="../../d8/dab/classstatistics_1_1stats__computer2.html#a7e7a1a2b0a03df0a70cac40d193421d2">statistics::stats_computer2::operator&gt;&gt;</a></div><div class="ttdeci">friend std::istream &amp; operator&gt;&gt;(std::istream &amp;input, stats_computer2 &amp;stat)</div><div class="ttdef"><b>Definition:</b> realtime_stats.cpp:97</div></div>
<div class="ttc" id="amatrix__exponentiation_8cpp_html_a9977ad12548c4a49dee9dc3f0685aa54"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a></div><div class="ttdeci">ll mat_size</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:45</div></div>
<div class="ttc" id="agolden__search__extrema_8cpp_html_a002b2f4894492820fe708b1b7e7c5e70"><div class="ttname"><a href="../../d6/d7a/golden__search__extrema_8cpp.html#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</a></div><div class="ttdeci">#define EPSILON</div><div class="ttdoc">solution accuracy limit</div><div class="ttdef"><b>Definition:</b> golden_search_extrema.cpp:17</div></div>
<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="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="auniform_int_distribution_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/uniform_int_distribution.html">std::uniform_int_distribution</a></div></div>
<div class="ttc" id="aprime__numbers_8cpp_html_a3b91f208e8365c95a295cfe3e67df5c3"><div class="ttname"><a href="../../de/d9b/prime__numbers_8cpp.html#a3b91f208e8365c95a295cfe3e67df5c3">primes</a></div><div class="ttdeci">std::vector&lt; int &gt; primes(int max)</div><div class="ttdef"><b>Definition:</b> prime_numbers.cpp:12</div></div>
<div class="ttc" id="amiller__rabin_8cpp_html_a901288288ef5ebe8e97414cc30797cce"><div class="ttname"><a href="../../d6/d42/miller__rabin_8cpp.html#a901288288ef5ebe8e97414cc30797cce">miller_rabin_primality_test</a></div><div class="ttdeci">bool miller_rabin_primality_test(T num, T repeats)</div><div class="ttdef"><b>Definition:</b> miller_rabin.cpp:125</div></div>
<div class="ttc" id="aclock_t_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/c/clock_t.html">std::clock_t</a></div></div>
<div class="ttc" id="apair_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a></div></div>
<div class="ttc" id="abrent__method__extrema_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../db/d01/brent__method__extrema_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition:</b> brent_method_extrema.cpp:204</div></div>
<div class="ttc" id="acos_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/cos.html">std::cos</a></div><div class="ttdeci">T cos(T... args)</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="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="alu__decompose_8cpp_html_a0283886819c7c140a023582b7269e2d0"><div class="ttname"><a href="../../dd/d65/lu__decompose_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a></div><div class="ttdeci">void test2()</div><div class="ttdoc">Test determinant computation using LU decomposition.</div><div class="ttdef"><b>Definition:</b> lu_decompose.cpp:66</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>
<div class="ttc" id="apower__for__huge__numbers_8cpp_html_aa141a7904f0c4668bac112d652a3acf9"><div class="ttname"><a href="../../df/def/power__for__huge__numbers_8cpp.html#aa141a7904f0c4668bac112d652a3acf9">multiply</a></div><div class="ttdeci">int multiply(int x, int res[], int res_size)</div><div class="ttdef"><b>Definition:</b> power_for_huge_numbers.cpp:25</div></div>
<div class="ttc" id="amatrix__exponentiation_8cpp_html_ad8389ed58fd0ec66df248014775ad1fa"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a></div><div class="ttdeci">ll ans(ll n)</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:91</div></div>
<div class="ttc" id="asieve__of__eratosthenes_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../d8/ddf/sieve__of__eratosthenes_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition:</b> sieve_of_eratosthenes.cpp:59</div></div>
<div class="ttc" id="asieve__of__eratosthenes_8cpp_html_af50a5c87d27cfd3462745b37fb9b0f46"><div class="ttname"><a href="../../d8/ddf/sieve__of__eratosthenes_8cpp.html#af50a5c87d27cfd3462745b37fb9b0f46">print</a></div><div class="ttdeci">void print(uint32_t N)</div><div class="ttdef"><b>Definition:</b> sieve_of_eratosthenes.cpp:40</div></div>
<div class="ttc" id="adurand__kerner__roots_8cpp_html_a3bada3e58ad8d1b00918db2ffe83a740"><div class="ttname"><a href="../../da/df2/durand__kerner__roots_8cpp.html#a3bada3e58ad8d1b00918db2ffe83a740">complex_str</a></div><div class="ttdeci">const char * complex_str(const std::complex&lt; double &gt; &amp;x)</div><div class="ttdef"><b>Definition:</b> durand_kerner_roots.cpp:76</div></div>
<div class="ttc" id="agolden__search__extrema_8cpp_html_a6d0455dd5c30adda100e95f0423c786e"><div class="ttname"><a href="../../d6/d7a/golden__search__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> golden_search_extrema.cpp:123</div></div>
<div class="ttc" id="abrent__method__extrema_8cpp_html_a1aa76a6d5fd4d333f9072beff1dc486b"><div class="ttname"><a href="../../db/d01/brent__method__extrema_8cpp.html#a1aa76a6d5fd4d333f9072beff1dc486b">get_minima</a></div><div class="ttdeci">double get_minima(const std::function&lt; double(double)&gt; &amp;f, double lim_a, double lim_b)</div><div class="ttdoc">Get the real root of a function in the given interval.</div><div class="ttdef"><b>Definition:</b> brent_method_extrema.cpp:35</div></div>
<div class="ttc" id="asetfill_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/setfill.html">std::setfill</a></div><div class="ttdeci">T setfill(T... args)</div></div>
<div class="ttc" id="afunction_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a></div></div>
<div class="ttc" id="abisection__method_8cpp_html_a1ab31b90bc584c635ec159468ceed9b2"><div class="ttname"><a href="../../d7/d6a/bisection__method_8cpp.html#a1ab31b90bc584c635ec159468ceed9b2">sgn</a></div><div class="ttdeci">int sgn(T val)</div><div class="ttdef"><b>Definition:</b> bisection_method.cpp:32</div></div>
<div class="ttc" id="aclassstatistics_1_1stats__computer1_html_af57e942d49f4fd70f059f224b4ac07e1"><div class="ttname"><a href="../../d7/d7c/classstatistics_1_1stats__computer1.html#af57e942d49f4fd70f059f224b4ac07e1">statistics::stats_computer1::std</a></div><div class="ttdeci">double std() const</div><div class="ttdef"><b>Definition:</b> realtime_stats.cpp:48</div></div>
<div class="ttc" id="aprime__factorization_8cpp_html_acfb0df439a4beae5a34ef131ce737c1b"><div class="ttname"><a href="../../db/d0d/prime__factorization_8cpp.html#acfb0df439a4beae5a34ef131ce737c1b">factors</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; int, int &gt; &gt; factors</div><div class="ttdef"><b>Definition:</b> prime_factorization.cpp:19</div></div>
<div class="ttc" id="aprime__factorization_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../db/d0d/prime__factorization_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition:</b> prime_factorization.cpp:62</div></div>
<div class="ttc" id="amiller__rabin_8cpp_html_a798398d5bfd375a3c0ce68100842f6f5"><div class="ttname"><a href="../../d6/d42/miller__rabin_8cpp.html#a798398d5bfd375a3c0ce68100842f6f5">reverse_binary</a></div><div class="ttdeci">std::vector&lt; T &gt; reverse_binary(T num)</div><div class="ttdef"><b>Definition:</b> miller_rabin.cpp:19</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="apower__for__huge__numbers_8cpp_html_ae249a2af508aa94266023ce8aa81426f"><div class="ttname"><a href="../../df/def/power__for__huge__numbers_8cpp.html#ae249a2af508aa94266023ce8aa81426f">power</a></div><div class="ttdeci">void power(int x, int n)</div><div class="ttdef"><b>Definition:</b> power_for_huge_numbers.cpp:56</div></div>
<div class="ttc" id="agolden__search__extrema_8cpp_html_a1440a7779ac56f47a3f355ce4a8c7da0"><div class="ttname"><a href="../../d6/d7a/golden__search__extrema_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a></div><div class="ttdeci">void test1()</div><div class="ttdoc">Test function to find minima for the function in the interval Expected result = 2.</div><div class="ttdef"><b>Definition:</b> golden_search_extrema.cpp:78</div></div>
<div class="ttc" id="aprime__numbers_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../de/d9b/prime__numbers_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition:</b> prime_numbers.cpp:26</div></div>
<div class="ttc" id="amersenne_twister_engine_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/mersenne_twister_engine.html">std::mt19937</a></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="amodular__inverse__fermat__little__theorem_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../d8/d53/modular__inverse__fermat__little__theorem_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition:</b> modular_inverse_fermat_little_theorem.cpp:84</div></div>
<div class="ttc" id="aclock_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/c/clock.html">std::clock</a></div><div class="ttdeci">T clock(T... args)</div></div>
<div class="ttc" id="adurand__kerner__roots_8cpp_html_ac38b9cfd2a39d856e0feba3b5d241ded"><div class="ttname"><a href="../../da/df2/durand__kerner__roots_8cpp.html#ac38b9cfd2a39d856e0feba3b5d241ded">durand_kerner_algo</a></div><div class="ttdeci">std::pair&lt; uint32_t, double &gt; durand_kerner_algo(const std::valarray&lt; double &gt; &amp;coeffs, std::valarray&lt; std::complex&lt; double &gt;&gt; *roots, bool write_log=false)</div><div class="ttdef"><b>Definition:</b> durand_kerner_roots.cpp:109</div></div>
<div class="ttc" id="alu__decompose_8cpp_html_a1440a7779ac56f47a3f355ce4a8c7da0"><div class="ttname"><a href="../../dd/d65/lu__decompose_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a></div><div class="ttdeci">void test1()</div><div class="ttdef"><b>Definition:</b> lu_decompose.cpp:36</div></div>
<div class="ttc" id="asum__of__digits_8cpp_html_ae1a3968e7947464bee7714f6d43b7002"><div class="ttname"><a href="../../d4/d83/sum__of__digits_8cpp.html#ae1a3968e7947464bee7714f6d43b7002">test</a></div><div class="ttdeci">void test()</div><div class="ttdef"><b>Definition:</b> sum_of_digits.cpp:58</div></div>
<div class="ttc" id="aisnan_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/isnan.html">std::isnan</a></div><div class="ttdeci">T isnan(T... args)</div></div>
<div class="ttc" id="anamespacestatistics_html"><div class="ttname"><a href="../../d2/dcf/namespacestatistics.html">statistics</a></div><div class="ttdoc">Statistical algorithms.</div></div>
<div class="ttc" id="asum__of__digits_8cpp_html_a0283886819c7c140a023582b7269e2d0"><div class="ttname"><a href="../../d4/d83/sum__of__digits_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a></div><div class="ttdeci">void test2()</div><div class="ttdef"><b>Definition:</b> sum_of_digits.cpp:49</div></div>
<div class="ttc" id="asieve__of__eratosthenes_8cpp_html_a02fd73d861ef2e4aabb38c0c9ff82947"><div class="ttname"><a href="../../d8/ddf/sieve__of__eratosthenes_8cpp.html#a02fd73d861ef2e4aabb38c0c9ff82947">init</a></div><div class="ttdeci">void init()</div><div class="ttdef"><b>Definition:</b> sieve_of_eratosthenes.cpp:52</div></div>
<div class="ttc" id="afprintf_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/c/fprintf.html">std::snprintf</a></div><div class="ttdeci">T snprintf(T... args)</div></div>
<div class="ttc" id="arandom_device_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/random_device.html">std::random_device</a></div></div>
<div class="ttc" id="ainfinity_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/numeric_limits/infinity.html">std::numeric_limits::infinity</a></div><div class="ttdeci">T infinity(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::cout</a></div></div>
<div class="ttc" id="abasic_ofstream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ofstream.html">std::ofstream</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="afalse__position_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../dd/d29/false__position_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition:</b> false_position.cpp:39</div></div>
<div class="ttc" id="aisinf_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/isinf.html">std::isinf</a></div><div class="ttdeci">T isinf(T... args)</div></div>
<div class="ttc" id="aclassstatistics_1_1stats__computer2_html_af6198817084276113b3c064e87ce0555"><div class="ttname"><a href="../../d8/dab/classstatistics_1_1stats__computer2.html#af6198817084276113b3c064e87ce0555">statistics::stats_computer2::variance</a></div><div class="ttdeci">double variance() const</div><div class="ttdef"><b>Definition:</b> realtime_stats.cpp:89</div></div>
<div class="ttc" id="aleast__common__multiple_8cpp_html_a8ba1fc66e4134ab25b2602b323150563"><div class="ttname"><a href="../../d4/d21/least__common__multiple_8cpp.html#a8ba1fc66e4134ab25b2602b323150563">gcd</a></div><div class="ttdeci">unsigned int gcd(unsigned int x, unsigned int y)</div><div class="ttdef"><b>Definition:</b> least_common_multiple.cpp:16</div></div>
<div class="ttc" id="asqrt__double_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../da/d24/sqrt__double_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition:</b> sqrt_double.cpp:42</div></div>
<div class="ttc" id="asieve__of__eratosthenes_8cpp_html_abce89d8999986f085c368969590376b8"><div class="ttname"><a href="../../d8/ddf/sieve__of__eratosthenes_8cpp.html#abce89d8999986f085c368969590376b8">sieve</a></div><div class="ttdeci">void sieve(uint32_t N)</div><div class="ttdef"><b>Definition:</b> sieve_of_eratosthenes.cpp:25</div></div>
<div class="ttc" id="amiller__rabin_8cpp_html_ad6c2c67ea416d0e80003a88623f98b29"><div class="ttname"><a href="../../d6/d42/miller__rabin_8cpp.html#ad6c2c67ea416d0e80003a88623f98b29">modular_exponentiation</a></div><div class="ttdeci">T modular_exponentiation(T base, const std::vector&lt; T &gt; &amp;rev_binary_exponent, T mod)</div><div class="ttdef"><b>Definition:</b> miller_rabin.cpp:43</div></div>
<div class="ttc" id="adurand__kerner__roots_8cpp_html_a51637ff89e55ca749993d3e84b95d153"><div class="ttname"><a href="../../da/df2/durand__kerner__roots_8cpp.html#a51637ff89e55ca749993d3e84b95d153">poly_function</a></div><div class="ttdeci">std::complex&lt; double &gt; poly_function(const std::valarray&lt; double &gt; &amp;coeffs, std::complex&lt; double &gt; x)</div><div class="ttdef"><b>Definition:</b> durand_kerner_roots.cpp:53</div></div>
<div class="ttc" id="alu__decompose_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="../../dd/d65/lu__decompose_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> lu_decompose.cpp:84</div></div>
<div class="ttc" id="avalarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="areal_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/complex/real.html">std::complex::real</a></div><div class="ttdeci">T real(T... args)</div></div>
<div class="ttc" id="adurand__kerner__roots_8cpp_html_a1440a7779ac56f47a3f355ce4a8c7da0"><div class="ttname"><a href="../../da/df2/durand__kerner__roots_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a></div><div class="ttdeci">void test1()</div><div class="ttdef"><b>Definition:</b> durand_kerner_roots.cpp:207</div></div>
<div class="ttc" id="agaussian__elimination_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../d0/de2/gaussian__elimination_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition:</b> gaussian_elimination.cpp:9</div></div>
<div class="ttc" id="aopen_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ofstream/open.html">std::ofstream::open</a></div><div class="ttdeci">T open(T... args)</div></div>
<div class="ttc" id="adurand__kerner__roots_8cpp_html_af270a96662132d0385cb6b4637c5a689"><div class="ttname"><a href="../../da/df2/durand__kerner__roots_8cpp.html#af270a96662132d0385cb6b4637c5a689">ACCURACY</a></div><div class="ttdeci">#define ACCURACY</div><div class="ttdef"><b>Definition:</b> durand_kerner_roots.cpp:45</div></div>
<div class="ttc" id="aclassstatistics_1_1stats__computer1_html_a390697dcee210b91823ceff04b25081b"><div class="ttname"><a href="../../d7/d7c/classstatistics_1_1stats__computer1.html#a390697dcee210b91823ceff04b25081b">statistics::stats_computer1::mean</a></div><div class="ttdeci">double mean() const</div><div class="ttdef"><b>Definition:</b> realtime_stats.cpp:42</div></div>
<div class="ttc" id="aclassstatistics_1_1stats__computer2_html"><div class="ttname"><a href="../../d8/dab/classstatistics_1_1stats__computer2.html">statistics::stats_computer2</a></div><div class="ttdef"><b>Definition:</b> realtime_stats.cpp:72</div></div>
<div class="ttc" id="arealtime__stats_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="../../d0/d08/realtime__stats_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> realtime_stats.cpp:158</div></div>
<div class="ttc" id="afalse__position_8cpp_html_a1ab31b90bc584c635ec159468ceed9b2"><div class="ttname"><a href="../../dd/d29/false__position_8cpp.html#a1ab31b90bc584c635ec159468ceed9b2">sgn</a></div><div class="ttdeci">int sgn(T val)</div><div class="ttdef"><b>Definition:</b> false_position.cpp:34</div></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 class="ttc" id="aswap_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a></div><div class="ttdeci">T swap(T... args)</div></div>
<div class="ttc" id="alu__decomposition_8h_html"><div class="ttname"><a href="../../d1/dbe/lu__decomposition_8h.html">lu_decomposition.h</a></div><div class="ttdoc">Functions associated with LU Decomposition of a square matrix.</div></div>
<div class="ttc" id="arealtime__stats_8cpp_html_aa54c915581fcc495489175a4386d59fd"><div class="ttname"><a href="../../d0/d08/realtime__stats_8cpp.html#aa54c915581fcc495489175a4386d59fd">test_function</a></div><div class="ttdeci">void test_function(const float *test_data, const int number_of_samples)</div><div class="ttdef"><b>Definition:</b> realtime_stats.cpp:118</div></div>
<div class="ttc" id="aprime__factorization_8cpp_html_affe577b9bce8f604f5e2f861c63c7099"><div class="ttname"><a href="../../db/d0d/prime__factorization_8cpp.html#affe577b9bce8f604f5e2f861c63c7099">SieveOfEratosthenes</a></div><div class="ttdeci">void SieveOfEratosthenes(int N)</div><div class="ttdef"><b>Definition:</b> prime_factorization.cpp:23</div></div>
<div class="ttc" id="asubstr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/substr.html">std::string::substr</a></div><div class="ttdeci">T substr(T... args)</div></div>
<div class="ttc" id="amiller__rabin_8cpp_html_a6f9c31c1047aa3191676d64571d4c506"><div class="ttname"><a href="../../d6/d42/miller__rabin_8cpp.html#a6f9c31c1047aa3191676d64571d4c506">miller_test</a></div><div class="ttdeci">bool miller_test(T d, T num)</div><div class="ttdef"><b>Definition:</b> miller_rabin.cpp:73</div></div>
<div class="ttc" id="aleast__common__multiple_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../d4/d21/least__common__multiple_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition:</b> least_common_multiple.cpp:67</div></div>
<div class="ttc" id="alu__decomposition_8h_html_a75b8a228c6419ecda6077255d6d60509"><div class="ttname"><a href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509">lu_decomposition</a></div><div class="ttdeci">int lu_decomposition(const matrix&lt; T &gt; &amp;A, matrix&lt; double &gt; *L, matrix&lt; double &gt; *U)</div><div class="ttdef"><b>Definition:</b> lu_decomposition.h:29</div></div>
<div class="ttc" id="asieve__of__eratosthenes_8cpp_html_a392fb874e547e582e9c66a08a1f23326"><div class="ttname"><a href="../../d8/ddf/sieve__of__eratosthenes_8cpp.html#a392fb874e547e582e9c66a08a1f23326">MAX</a></div><div class="ttdeci">#define MAX</div><div class="ttdef"><b>Definition:</b> sieve_of_eratosthenes.cpp:16</div></div>
<div class="ttc" id="amodular__inverse__fermat__little__theorem_8cpp_html_a4c6eefd1254eab3e8d34bf02c205e0f4"><div class="ttname"><a href="../../d8/d53/modular__inverse__fermat__little__theorem_8cpp.html#a4c6eefd1254eab3e8d34bf02c205e0f4">binExpo</a></div><div class="ttdeci">int64_t binExpo(int64_t a, int64_t b, int64_t m)</div><div class="ttdef"><b>Definition:</b> modular_inverse_fermat_little_theorem.cpp:52</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="aclassstatistics_1_1stats__computer1_html_aa13bf7c38de112f71921a5525d71a2f2"><div class="ttname"><a href="../../d7/d7c/classstatistics_1_1stats__computer1.html#aa13bf7c38de112f71921a5525d71a2f2">statistics::stats_computer1::new_val</a></div><div class="ttdeci">void new_val(T x)</div><div class="ttdef"><b>Definition:</b> realtime_stats.cpp:32</div></div>
<div class="ttc" id="abrent__method__extrema_8cpp_html_a0283886819c7c140a023582b7269e2d0"><div class="ttname"><a href="../../db/d01/brent__method__extrema_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a></div><div class="ttdeci">void test2()</div><div class="ttdoc">Test function to find root for the function in the interval Expected result: .</div><div class="ttdef"><b>Definition:</b> brent_method_extrema.cpp:165</div></div>
<div class="ttc" id="aleft_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/left.html">std::left</a></div><div class="ttdeci">T left(T... args)</div></div>
<div class="ttc" id="aclassstatistics_1_1stats__computer2_html_ade6de704deea24fdc88077b3d9a0d534"><div class="ttname"><a href="../../d8/dab/classstatistics_1_1stats__computer2.html#ade6de704deea24fdc88077b3d9a0d534">statistics::stats_computer2::new_val</a></div><div class="ttdeci">void new_val(T x)</div><div class="ttdef"><b>Definition:</b> realtime_stats.cpp:77</div></div>
<div class="ttc" id="aclassstatistics_1_1stats__computer1_html_a27f0a03e2fd2254f1c81fe668226bd92"><div class="ttname"><a href="../../d7/d7c/classstatistics_1_1stats__computer1.html#a27f0a03e2fd2254f1c81fe668226bd92">statistics::stats_computer1::variance</a></div><div class="ttdeci">double variance() const</div><div class="ttdef"><b>Definition:</b> realtime_stats.cpp:45</div></div>
<div class="ttc" id="asum__of__digits_8cpp_html_a4619c78b6ad985713024f930f31c4395"><div class="ttname"><a href="../../d4/d83/sum__of__digits_8cpp.html#a4619c78b6ad985713024f930f31c4395">sum_of_digits</a></div><div class="ttdeci">int sum_of_digits(int num)</div><div class="ttdef"><b>Definition:</b> sum_of_digits.cpp:23</div></div>
<div class="ttc" id="anumber__of__positive__divisors_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../d0/da2/number__of__positive__divisors_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition:</b> number_of_positive_divisors.cpp:62</div></div>
<div class="ttc" id="abegin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/begin.html">std::vector::cbegin</a></div><div class="ttdeci">T cbegin(T... args)</div></div>
<div class="ttc" id="amiller__rabin_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../d6/d42/miller__rabin_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition:</b> miller_rabin.cpp:183</div></div>
<div class="ttc" id="astrtof_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/byte/strtof.html">std::strtod</a></div><div class="ttdeci">T strtod(T... args)</div></div>
<div class="ttc" id="apower__for__huge__numbers_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../df/def/power__for__huge__numbers_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition:</b> power_for_huge_numbers.cpp:82</div></div>
<div class="ttc" id="aprime__factorization_8cpp_html_a0ece0145fb29a5cf48378c23dde2da46"><div class="ttname"><a href="../../db/d0d/prime__factorization_8cpp.html#a0ece0145fb29a5cf48378c23dde2da46">prime_factorization</a></div><div class="ttdeci">void prime_factorization(int num)</div><div class="ttdef"><b>Definition:</b> prime_factorization.cpp:40</div></div>
<div class="ttc" id="asum__of__digits_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../d4/d83/sum__of__digits_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition:</b> sum_of_digits.cpp:68</div></div>
<div class="ttc" id="alu__decomposition_8h_html_a3108d43bd32c6fb3b3c158476c51ba7f"><div class="ttname"><a href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f">determinant_lu</a></div><div class="ttdeci">double determinant_lu(const matrix&lt; T &gt; &amp;A)</div><div class="ttdoc">Compute determinant of an NxN square matrix using LU decomposition. Using LU decomposition,...</div><div class="ttdef"><b>Definition:</b> lu_decomposition.h:90</div></div>
<div class="ttc" id="afixed_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/fixed.html">std::fixed</a></div><div class="ttdeci">T fixed(T... args)</div></div>
<div class="ttc" id="aclassstatistics_1_1stats__computer1_html"><div class="ttname"><a href="../../d7/d7c/classstatistics_1_1stats__computer1.html">statistics::stats_computer1</a></div><div class="ttdef"><b>Definition:</b> realtime_stats.cpp:27</div></div>
<div class="ttc" id="agolden__search__extrema_8cpp_html_a0283886819c7c140a023582b7269e2d0"><div class="ttname"><a href="../../d6/d7a/golden__search__extrema_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a></div><div class="ttdeci">void test2()</div><div class="ttdoc">Test function to find maxima for the function in the interval Expected result: .</div><div class="ttdef"><b>Definition:</b> golden_search_extrema.cpp:100</div></div>
<div class="ttc" id="aclassstatistics_1_1stats__computer2_html_acf2e84df4fc386bb3295016ef8fd156e"><div class="ttname"><a href="../../d8/dab/classstatistics_1_1stats__computer2.html#acf2e84df4fc386bb3295016ef8fd156e">statistics::stats_computer2::std</a></div><div class="ttdeci">double std() const</div><div class="ttdef"><b>Definition:</b> realtime_stats.cpp:92</div></div>
<div class="ttc" id="agolden__search__extrema_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../d6/d7a/golden__search__extrema_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition:</b> golden_search_extrema.cpp:139</div></div>
<div class="ttc" id="asieve__of__eratosthenes_8cpp_html_a0560e21edb54d5ad8d80b2d80348ce22"><div class="ttname"><a href="../../d8/ddf/sieve__of__eratosthenes_8cpp.html#a0560e21edb54d5ad8d80b2d80348ce22">isprime</a></div><div class="ttdeci">bool isprime[MAX]</div><div class="ttdef"><b>Definition:</b> sieve_of_eratosthenes.cpp:19</div></div>
<div class="ttc" id="asum__of__digits_8cpp_html_a1440a7779ac56f47a3f355ce4a8c7da0"><div class="ttname"><a href="../../d4/d83/sum__of__digits_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a></div><div class="ttdeci">void test1()</div><div class="ttdef"><b>Definition:</b> sum_of_digits.cpp:40</div></div>
<div class="ttc" id="acomplex_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/complex.html">std::complex</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="aimag_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/complex/imag.html">std::complex::imag</a></div><div class="ttdeci">T imag(T... args)</div></div>
<div class="ttc" id="afalse__position_8cpp_html_a2003b5b2dcfff0769b957ab5c968b03d"><div class="ttname"><a href="../../dd/d29/false__position_8cpp.html#a2003b5b2dcfff0769b957ab5c968b03d">eq</a></div><div class="ttdeci">static double eq(double i)</div><div class="ttdef"><b>Definition:</b> false_position.cpp:28</div></div>
<div class="ttc" id="abrent__method__extrema_8cpp_html_a1440a7779ac56f47a3f355ce4a8c7da0"><div class="ttname"><a href="../../db/d01/brent__method__extrema_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a></div><div class="ttdeci">void test1()</div><div class="ttdoc">Test function to find root for the function in the interval Expected result = 2.</div><div class="ttdef"><b>Definition:</b> brent_method_extrema.cpp:143</div></div>
<div class="ttc" id="astring__fibonacci_8cpp_html_a28052eee05d43c2ebc5147c52bd50c35"><div class="ttname"><a href="../../de/d47/string__fibonacci_8cpp.html#a28052eee05d43c2ebc5147c52bd50c35">add</a></div><div class="ttdeci">std::string add(std::string a, std::string b)</div><div class="ttdef"><b>Definition:</b> string_fibonacci.cpp:24</div></div>
<div class="ttc" id="amake_pair_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a></div><div class="ttdeci">T make_pair(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 class="ttc" id="abisection__method_8cpp_html_a0a3abbca80bc98e7abcb3ae73abe0f14"><div class="ttname"><a href="../../d7/d6a/bisection__method_8cpp.html#a0a3abbca80bc98e7abcb3ae73abe0f14">MAX_ITERATIONS</a></div><div class="ttdeci">#define MAX_ITERATIONS</div><div class="ttdoc">Maximum number of iterations to check.</div><div class="ttdef"><b>Definition:</b> bisection_method.cpp:22</div></div>
<div class="ttc" id="aend_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/end.html">std::vector::cend</a></div><div class="ttdeci">T cend(T... args)</div></div>
<div class="ttc" id="asetw_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a></div><div class="ttdeci">T setw(T... args)</div></div>
<div class="ttc" id="amax_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a></div><div class="ttdeci">T max(T... args)</div></div>
<div class="ttc" id="astring__fibonacci_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../de/d47/string__fibonacci_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition:</b> string_fibonacci.cpp:81</div></div>
<div class="ttc" id="anumber__of__positive__divisors_8cpp_html_ad89ccced8504b5116046cfa03066ffeb"><div class="ttname"><a href="../../d0/da2/number__of__positive__divisors_8cpp.html#ad89ccced8504b5116046cfa03066ffeb">number_of_positive_divisors</a></div><div class="ttdeci">int number_of_positive_divisors(int n)</div><div class="ttdef"><b>Definition:</b> number_of_positive_divisors.cpp:34</div></div>
<div class="ttc" id="abisection__method_8cpp_html_a2003b5b2dcfff0769b957ab5c968b03d"><div class="ttname"><a href="../../d7/d6a/bisection__method_8cpp.html#a2003b5b2dcfff0769b957ab5c968b03d">eq</a></div><div class="ttdeci">static double eq(double i)</div><div class="ttdef"><b>Definition:</b> bisection_method.cpp:26</div></div>
<div class="ttc" id="agolden__search__extrema_8cpp_html_a1aa76a6d5fd4d333f9072beff1dc486b"><div class="ttname"><a href="../../d6/d7a/golden__search__extrema_8cpp.html#a1aa76a6d5fd4d333f9072beff1dc486b">get_minima</a></div><div class="ttdeci">double get_minima(const std::function&lt; double(double)&gt; &amp;f, double lim_a, double lim_b)</div><div class="ttdoc">Get the minima of a function in the given interval. To get the maxima, simply negate the function....</div><div class="ttdef"><b>Definition:</b> golden_search_extrema.cpp:29</div></div>
<div class="ttc" id="astring__fibonacci_8cpp_html_ad8055ee368a5d5b24de01bdde6bf8fca"><div class="ttname"><a href="../../de/d47/string__fibonacci_8cpp.html#ad8055ee368a5d5b24de01bdde6bf8fca">fib_Accurate</a></div><div class="ttdeci">void fib_Accurate(uint64_t n)</div><div class="ttdef"><b>Definition:</b> string_fibonacci.cpp:68</div></div>
<div class="ttc" id="aprimes__up__to__billion_8cpp_html_a031cada84819ed6426f58e4f7e81261c"><div class="ttname"><a href="../../d4/d9c/primes__up__to__billion_8cpp.html#a031cada84819ed6426f58e4f7e81261c">Sieve</a></div><div class="ttdeci">void Sieve(int64_t n)</div><div class="ttdef"><b>Definition:</b> primes_up_to_billion.cpp:13</div></div>
<div class="ttc" id="abasic_istream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a></div></div>
<div class="ttc" id="alu__decompose_8cpp_html_a9459fcd1f020373d73eae2bad43786d0"><div class="ttname"><a href="../../dd/d65/lu__decompose_8cpp.html#a9459fcd1f020373d73eae2bad43786d0">operator&lt;&lt;</a></div><div class="ttdeci">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;out, matrix&lt; T &gt; const &amp;v)</div><div class="ttdef"><b>Definition:</b> lu_decompose.cpp:18</div></div>
<div class="ttc" id="aclassstatistics_1_1stats__computer2_html_a8290966ad468f2a8c266d008bc60720e"><div class="ttname"><a href="../../d8/dab/classstatistics_1_1stats__computer2.html#a8290966ad468f2a8c266d008bc60720e">statistics::stats_computer2::mean</a></div><div class="ttdeci">double mean() const</div><div class="ttdef"><b>Definition:</b> realtime_stats.cpp:86</div></div>
<div class="ttc" id="amodular__inverse__fermat__little__theorem_8cpp_html_a09660096b134753128952246f4f4e4bd"><div class="ttname"><a href="../../d8/d53/modular__inverse__fermat__little__theorem_8cpp.html#a09660096b134753128952246f4f4e4bd">isPrime</a></div><div class="ttdeci">bool isPrime(int64_t m)</div><div class="ttdef"><b>Definition:</b> modular_inverse_fermat_little_theorem.cpp:68</div></div>
<div class="ttc" id="ais_open_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ofstream/is_open.html">std::ofstream::is_open</a></div><div class="ttdeci">T is_open(T... args)</div></div>
<div class="ttc" id="adurand__kerner__roots_8cpp_html_a0283886819c7c140a023582b7269e2d0"><div class="ttname"><a href="../../da/df2/durand__kerner__roots_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a></div><div class="ttdeci">void test2()</div><div class="ttdef"><b>Definition:</b> durand_kerner_roots.cpp:242</div></div>
<div class="ttc" id="abisection__method_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../d7/d6a/bisection__method_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition:</b> bisection_method.cpp:37</div></div>
<div class="ttc" id="aexit_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/program/exit.html">std::exit</a></div><div class="ttdeci">T exit(T... args)</div></div>
<div class="ttc" id="apower__for__huge__numbers_8cpp_html_a392fb874e547e582e9c66a08a1f23326"><div class="ttname"><a href="../../df/def/power__for__huge__numbers_8cpp.html#a392fb874e547e582e9c66a08a1f23326">MAX</a></div><div class="ttdeci">#define MAX</div><div class="ttdef"><b>Definition:</b> power_for_huge_numbers.cpp:10</div></div>
<div class="ttc" id="aclassstatistics_1_1stats__computer1_html_ab5b4bfecdf391cae7edb1fe98548b846"><div class="ttname"><a href="../../d7/d7c/classstatistics_1_1stats__computer1.html#ab5b4bfecdf391cae7edb1fe98548b846">statistics::stats_computer1::operator&gt;&gt;</a></div><div class="ttdeci">friend std::istream &amp; operator&gt;&gt;(std::istream &amp;input, stats_computer1 &amp;stat)</div><div class="ttdef"><b>Definition:</b> realtime_stats.cpp:53</div></div>
<div class="ttc" id="amiller__rabin_8cpp_html_a88ec9ad42717780d6caaff9d3d6977f9"><div class="ttname"><a href="../../d6/d42/miller__rabin_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a></div><div class="ttdeci">void tests()</div><div class="ttdef"><b>Definition:</b> miller_rabin.cpp:157</div></div>
<div class="ttc" id="aprimes__up__to__billion_8cpp_html_ac0f4b77b901ddb15dab4c4dee1ac6e95"><div class="ttname"><a href="../../d4/d9c/primes__up__to__billion_8cpp.html#ac0f4b77b901ddb15dab4c4dee1ac6e95">prime</a></div><div class="ttdeci">char prime[100000000]</div><div class="ttdef"><b>Definition:</b> primes_up_to_billion.cpp:10</div></div>
<div class="ttc" id="apow_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/pow.html">std::pow</a></div><div class="ttdeci">T pow(T... args)</div></div>
<div class="ttc" id="aprime__factorization_8cpp_html_a7fe38b570a51e448430d6a0f072c2f23"><div class="ttname"><a href="../../db/d0d/prime__factorization_8cpp.html#a7fe38b570a51e448430d6a0f072c2f23">isprime</a></div><div class="ttdeci">bool isprime[1000006]</div><div class="ttdef"><b>Definition:</b> prime_factorization.cpp:13</div></div>
<!-- start footer part -->
<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="../../d1/dbe/lu__decomposition_8h.html">lu_decomposition.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.18 </li>
</ul>
</div>
</body>
</html>

View File

@@ -164,7 +164,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../..
<dl class="section copyright"><dt>Copyright</dt><dd>2020 Arctic2333</dd></dl>
<p>In this algorithm, we use the method of division and reservation remainder to construct the hash function, and use the method of chain address to solve the conflict, that is, we link a chain list after the data, and store all the records whose keywords are synonyms in the same linear chain list.</p>
<dl class="section warning"><dt>Warning</dt><dd>This program is only for educational purposes. It has serious flaws in implementation with regards to memory management resulting in large amounts of memory leaks. </dd></dl>
<dl class="todo"><dt><b><a class="el" href="../../dd/da0/todo.html#_todo000008">Todo:</a></b></dt><dd>fix the program for memory leaks and better structure in C++ and not C fashion </dd></dl>
<dl class="todo"><dt><b><a class="el" href="../../dd/da0/todo.html#_todo000009">Todo:</a></b></dt><dd>fix the program for memory leaks and better structure in C++ and not C fashion </dd></dl>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a id="a8ca8dcb494104d273679e219e53d0555"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ca8dcb494104d273679e219e53d0555">&#9670;&nbsp;</a></span>node</h2>
@@ -204,7 +204,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../..
</dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>dynamic memory allocated to <code>n</code> never gets freed. </dd></dl>
<dl class="todo"><dt><b><a class="el" href="../../dd/da0/todo.html#_todo000009">Todo:</a></b></dt><dd>fix memory leak </dd></dl>
<dl class="todo"><dt><b><a class="el" href="../../dd/da0/todo.html#_todo000010">Todo:</a></b></dt><dd>fix memory leak </dd></dl>
<div class="fragment"><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; { <span class="comment">// Construct hash table</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/list.html">link</a> p, n;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">int</span> index;</div>