Documentation for c26eea874d

This commit is contained in:
realstealthninja
2025-05-19 11:38:33 +00:00
parent c7a9a42397
commit 14583a2f33
2829 changed files with 30266 additions and 21669 deletions

View File

@@ -4,7 +4,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>TheAlgorithms/C++: qr_algorithm Namespace Reference</title>
<link rel="icon" href="../../favicon.svg" type="image/x-icon" />
@@ -60,7 +60,7 @@ window.MathJax = {
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -132,22 +132,22 @@ $(function(){initNavTree('d2/d3b/namespaceqr__algorithm.html','../../'); initRes
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:adfbdf47277c8cfee229b05b72f1f7834" id="r_adfbdf47277c8cfee229b05b72f1f7834"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:adfbdf47277c8cfee229b05b72f1f7834" id="r_adfbdf47277c8cfee229b05b72f1f7834"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:adfbdf47277c8cfee229b05b72f1f7834"><td class="memTemplItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#adfbdf47277c8cfee229b05b72f1f7834">operator&lt;&lt;</a> (std::ostream &amp;out, std::valarray&lt; std::valarray&lt; T &gt; &gt; const &amp;v)</td></tr>
<tr class="separator:adfbdf47277c8cfee229b05b72f1f7834"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a257425cb2365359da51c6fe6741834d8" id="r_a257425cb2365359da51c6fe6741834d8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a257425cb2365359da51c6fe6741834d8" id="r_a257425cb2365359da51c6fe6741834d8"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a257425cb2365359da51c6fe6741834d8"><td class="memTemplItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a257425cb2365359da51c6fe6741834d8">operator&lt;&lt;</a> (std::ostream &amp;out, std::valarray&lt; T &gt; const &amp;v)</td></tr>
<tr class="separator:a257425cb2365359da51c6fe6741834d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ea313a1a1b5f9d0e3e332c29c6446ec" id="r_a8ea313a1a1b5f9d0e3e332c29c6446ec"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a8ea313a1a1b5f9d0e3e332c29c6446ec" id="r_a8ea313a1a1b5f9d0e3e332c29c6446ec"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a8ea313a1a1b5f9d0e3e332c29c6446ec"><td class="memTemplItemLeft" align="right" valign="top">double&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a8ea313a1a1b5f9d0e3e332c29c6446ec">vector_dot</a> (const std::valarray&lt; T &gt; &amp;a, const std::valarray&lt; T &gt; &amp;b)</td></tr>
<tr class="separator:a8ea313a1a1b5f9d0e3e332c29c6446ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad16da2183db22378435042f26af43d5f" id="r_ad16da2183db22378435042f26af43d5f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ad16da2183db22378435042f26af43d5f" id="r_ad16da2183db22378435042f26af43d5f"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ad16da2183db22378435042f26af43d5f"><td class="memTemplItemLeft" align="right" valign="top">double&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ad16da2183db22378435042f26af43d5f">vector_mag</a> (const std::valarray&lt; T &gt; &amp;a)</td></tr>
<tr class="separator:ad16da2183db22378435042f26af43d5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d3c7dce1f142141f509d09f6c0e25dc" id="r_a6d3c7dce1f142141f509d09f6c0e25dc"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a6d3c7dce1f142141f509d09f6c0e25dc" id="r_a6d3c7dce1f142141f509d09f6c0e25dc"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a6d3c7dce1f142141f509d09f6c0e25dc"><td class="memTemplItemLeft" align="right" valign="top">std::valarray&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a6d3c7dce1f142141f509d09f6c0e25dc">vector_proj</a> (const std::valarray&lt; T &gt; &amp;a, const std::valarray&lt; T &gt; &amp;b)</td></tr>
<tr class="separator:a6d3c7dce1f142141f509d09f6c0e25dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73ce637634fc49e1d10d190eb388ebf1" id="r_a73ce637634fc49e1d10d190eb388ebf1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a73ce637634fc49e1d10d190eb388ebf1" id="r_a73ce637634fc49e1d10d190eb388ebf1"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a73ce637634fc49e1d10d190eb388ebf1"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a73ce637634fc49e1d10d190eb388ebf1">qr_decompose</a> (const std::valarray&lt; std::valarray&lt; T &gt; &gt; &amp;A, std::valarray&lt; std::valarray&lt; T &gt; &gt; *Q, std::valarray&lt; std::valarray&lt; T &gt; &gt; *R)</td></tr>
<tr class="separator:a73ce637634fc49e1d10d190eb388ebf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28e2fa3e803abaea6c568dc45d69d8cc" id="r_a28e2fa3e803abaea6c568dc45d69d8cc"><td class="memItemLeft" align="right" valign="top">std::valarray&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a28e2fa3e803abaea6c568dc45d69d8cc">eigen_values</a> (std::valarray&lt; std::valarray&lt; double &gt; &gt; *A, bool print_intermediates=false)</td></tr>
@@ -229,7 +229,7 @@ Functions</h2></td></tr>
<div class="line"><span class="lineno"> 123</span> A[0][i][i] -= last_eig; <span class="comment">/* A - cI */</span></div>
<div class="line"><span class="lineno"> 124</span> }</div>
<div class="line"><span class="lineno"> 125</span> </div>
<div class="line"><span class="lineno"> 126</span> qr_decompose(*A, &amp;Q, &amp;R);</div>
<div class="line"><span class="lineno"> 126</span> <a class="code hl_function" href="#a73ce637634fc49e1d10d190eb388ebf1">qr_decompose</a>(*A, &amp;Q, &amp;R);</div>
<div class="line"><span class="lineno"> 127</span> </div>
<div class="line"><span class="lineno"> 128</span> <span class="keywordflow">if</span> (print_intermediates) {</div>
<div class="line"><span class="lineno"> 129</span> std::cout &lt;&lt; *A &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
@@ -269,6 +269,7 @@ Functions</h2></td></tr>
<div class="line"><span class="lineno"> 163</span> </div>
<div class="line"><span class="lineno"> 164</span> <span class="keywordflow">return</span> eigen_vals;</div>
<div class="line"><span class="lineno"> 165</span>}</div>
<div class="ttc" id="anamespaceqr__algorithm_html_a73ce637634fc49e1d10d190eb388ebf1"><div class="ttname"><a href="#a73ce637634fc49e1d10d190eb388ebf1">qr_algorithm::qr_decompose</a></div><div class="ttdeci">void qr_decompose(const std::valarray&lt; std::valarray&lt; T &gt; &gt; &amp;A, std::valarray&lt; std::valarray&lt; T &gt; &gt; *Q, std::valarray&lt; std::valarray&lt; T &gt; &gt; *R)</div><div class="ttdef"><b>Definition</b> <a href="../../d4/d68/qr__decompose_8h_source.html#l00146">qr_decompose.h:146</a></div></div>
<div class="ttc" id="aqr__eigen__values_8cpp_html_abb8bf4c55e10685a5eb2ad3797fde1ae"><div class="ttname"><a href="../../de/d75/qr__eigen__values_8cpp.html#abb8bf4c55e10685a5eb2ad3797fde1ae">mat_mul</a></div><div class="ttdeci">void mat_mul(const std::valarray&lt; std::valarray&lt; double &gt; &gt; &amp;A, const std::valarray&lt; std::valarray&lt; double &gt; &gt; &amp;B, std::valarray&lt; std::valarray&lt; double &gt; &gt; *OUT)</div><div class="ttdef"><b>Definition</b> <a href="../../de/d75/qr__eigen__values_8cpp_source.html#l00054">qr_eigen_values.cpp:54</a></div></div>
</div><!-- fragment -->
</div>
@@ -279,7 +280,7 @@ Functions</h2></td></tr>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname">std::ostream &amp; qr_algorithm::operator&lt;&lt; </td>
@@ -319,7 +320,7 @@ template&lt;typename T &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname">std::ostream &amp; qr_algorithm::operator&lt;&lt; </td>
@@ -357,7 +358,7 @@ template&lt;typename T &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname">void qr_algorithm::qr_decompose </td>
@@ -378,8 +379,7 @@ template&lt;typename T &gt; </div>
</div><div class="memdoc">
<p>Decompose matrix \(A\) using <a href="https://en.wikipedia.org/wiki/QR_decomposition" target="_blank">Gram-Schmidt process</a>.</p>
<p class="formulaDsp">
\begin{eqnarray*}
\text{given that}\quad A &amp;=&amp;
\begin{eqnarray*} \text{given that}\quad A &amp;=&amp;
*\left[\mathbf{a}_1,\mathbf{a}_2,\ldots,\mathbf{a}_{N-1},\right]\\
\text{where}\quad\mathbf{a}_i &amp;=&amp;
\left[a_{0i},a_{1i},a_{2i},\ldots,a_{(M-1)i}\right]^T\quad\ldots\mbox{(column
@@ -397,7 +397,7 @@ template&lt;typename T &gt; </div>
0 &amp; 0 &amp; \langle\mathbf{e}_2\,,\mathbf{a}_2\rangle &amp;
\dots\\ \vdots &amp; \vdots &amp; \vdots &amp; \ddots
\end{bmatrix}\\
\end{eqnarray*}
\end{eqnarray*}
</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
@@ -471,7 +471,7 @@ template&lt;typename T &gt; </div>
<div class="ttc" id="anamespacemachine__learning_html_a6f1c98c016ad34ff3d9f39372161bd35"><div class="ttname"><a href="../../d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35">machine_learning::sum</a></div><div class="ttdeci">T sum(const std::vector&lt; std::valarray&lt; T &gt; &gt; &amp;A)</div><div class="ttdef"><b>Definition</b> <a href="../../d8/d95/vector__ops_8hpp_source.html#l00232">vector_ops.hpp:232</a></div></div>
<div class="ttc" id="anamespaceqr__algorithm_html_a6d3c7dce1f142141f509d09f6c0e25dc"><div class="ttname"><a href="#a6d3c7dce1f142141f509d09f6c0e25dc">qr_algorithm::vector_proj</a></div><div class="ttdeci">std::valarray&lt; T &gt; vector_proj(const std::valarray&lt; T &gt; &amp;a, const std::valarray&lt; T &gt; &amp;b)</div><div class="ttdef"><b>Definition</b> <a href="../../d4/d68/qr__decompose_8h_source.html#l00104">qr_decompose.h:104</a></div></div>
<div class="ttc" id="anamespaceqr__algorithm_html_ad16da2183db22378435042f26af43d5f"><div class="ttname"><a href="#ad16da2183db22378435042f26af43d5f">qr_algorithm::vector_mag</a></div><div class="ttdeci">double vector_mag(const std::valarray&lt; T &gt; &amp;a)</div><div class="ttdef"><b>Definition</b> <a href="../../d4/d68/qr__decompose_8h_source.html#l00092">qr_decompose.h:92</a></div></div>
<div class="ttc" id="avector__cross__product_8cpp_html_a4b2a9757a87c18e1642d72410ecfaba8"><div class="ttname"><a href="../../df/d66/vector__cross__product_8cpp.html#a4b2a9757a87c18e1642d72410ecfaba8">math::vector_cross::mag</a></div><div class="ttdeci">double mag(const std::array&lt; double, 3 &gt; &amp;vec)</div><div class="ttdoc">Calculates the magnitude of the mathematical vector from it's direction ratios.</div><div class="ttdef"><b>Definition</b> <a href="../../df/d66/vector__cross__product_8cpp_source.html#l00083">vector_cross_product.cpp:83</a></div></div>
<div class="ttc" id="avector__cross__product_8cpp_html_a4b2a9757a87c18e1642d72410ecfaba8"><div class="ttname"><a href="../../df/d66/vector__cross__product_8cpp.html#a4b2a9757a87c18e1642d72410ecfaba8">math::vector_cross::mag</a></div><div class="ttdeci">double mag(const std::array&lt; double, 3 &gt; &amp;vec)</div><div class="ttdoc">Calculates the magnitude of the mathematical vector from it&#39;s direction ratios.</div><div class="ttdef"><b>Definition</b> <a href="../../df/d66/vector__cross__product_8cpp_source.html#l00083">vector_cross_product.cpp:83</a></div></div>
</div><!-- fragment -->
</div>
</div>
@@ -481,7 +481,7 @@ template&lt;typename T &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -499,7 +499,7 @@ template&lt;typename T &gt; </div>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
@@ -523,7 +523,7 @@ template&lt;typename T &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -537,7 +537,7 @@ template&lt;typename T &gt; </div>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
@@ -560,7 +560,7 @@ template&lt;typename T &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname">std::valarray&lt; T &gt; qr_algorithm::vector_proj </td>
@@ -584,7 +584,7 @@ template&lt;typename T &gt; </div>
<div class="fragment"><div class="line"><span class="lineno"> 105</span> {</div>
<div class="line"><span class="lineno"> 106</span> <span class="keywordtype">double</span> num = <a class="code hl_function" href="#a8ea313a1a1b5f9d0e3e332c29c6446ec">vector_dot</a>(a, b);</div>
<div class="line"><span class="lineno"> 107</span> <span class="keywordtype">double</span> deno = <a class="code hl_function" href="#a8ea313a1a1b5f9d0e3e332c29c6446ec">vector_dot</a>(b, b);</div>
<div class="line"><span class="lineno"> 108</span> </div>
<div class="line"><span class="lineno"> 108</span></div>
<div class="line"><span class="lineno"> 110</span> <span class="keywordflow">if</span> (deno &lt;= std::numeric_limits&lt;double&gt;::epsilon()) {</div>
<div class="line"><span class="lineno"> 111</span> std::cerr &lt;&lt; <span class="stringliteral">&quot;[&quot;</span> &lt;&lt; __func__ &lt;&lt; <span class="stringliteral">&quot;] Possible division by zero\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 112</span> <span class="keywordflow">return</span> a; <span class="comment">// return vector a back</span></div>
@@ -603,7 +603,7 @@ template&lt;typename T &gt; </div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d2/d3b/namespaceqr__algorithm.html">qr_algorithm</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>