Documentation for 2a076c1b03

This commit is contained in:
github-actions
2022-06-09 15:19:34 +00:00
parent 44595908ec
commit a0e8991686
4173 changed files with 15438 additions and 15542 deletions

View File

@@ -3,9 +3,9 @@
<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.9.3"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: linear_algebra/gram_schmidt.cpp File Reference</title>
<title>Algorithms_in_C++: numerical_methods/gram_schmidt.cpp 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>
@@ -41,7 +41,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.3 -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
@@ -113,8 +113,8 @@ Include dependency graph for gram_schmidt.cpp:</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:d3/d78/namespacelinear__algebra"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d78/namespacelinear__algebra.html">linear_algebra</a></td></tr>
<tr class="memdesc:d3/d78/namespacelinear__algebra"><td class="mdescLeft">&#160;</td><td class="mdescRight">for io operations <br /></td></tr>
<tr class="memitem:d1/de0/namespacenumerical__methods"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/de0/namespacenumerical__methods.html">numerical_methods</a></td></tr>
<tr class="memdesc:d1/de0/namespacenumerical__methods"><td class="mdescLeft">&#160;</td><td class="mdescRight">for assert <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:d4/d0f/namespacegram__schmidt"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d0f/namespacegram__schmidt.html">gram_schmidt</a></td></tr>
<tr class="memdesc:d4/d0f/namespacegram__schmidt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for <a href="https://en.wikipedia.org/wiki/Gram%E2%80%93Schmidt_process" target="_blank">Gram Schmidt Orthogonalisation Process</a> <br /></td></tr>
@@ -122,14 +122,14 @@ Namespaces</h2></td></tr>
</table><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:aed4d308f46ca1d91e348ca260ec1d2fb"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d33/gram__schmidt_8cpp.html#aed4d308f46ca1d91e348ca260ec1d2fb">linear_algebra::gram_schmidt::dot_product</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 10 &gt; &amp;x, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 10 &gt; &amp;y, const int &amp;c)</td></tr>
<tr class="separator:aed4d308f46ca1d91e348ca260ec1d2fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46e459aff5eafffb5ad9ceb129b4d274"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d33/gram__schmidt_8cpp.html#a46e459aff5eafffb5ad9ceb129b4d274">linear_algebra::gram_schmidt::projection</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 10 &gt; &amp;x, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 10 &gt; &amp;y, const int &amp;c)</td></tr>
<tr class="separator:a46e459aff5eafffb5ad9ceb129b4d274"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6b70f9680752e9fe2ac4e2cce158c40"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d33/gram__schmidt_8cpp.html#ab6b70f9680752e9fe2ac4e2cce158c40">linear_algebra::gram_schmidt::display</a> (const int &amp;r, const int &amp;c, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 10 &gt;, 20 &gt; &amp;B)</td></tr>
<tr class="separator:ab6b70f9680752e9fe2ac4e2cce158c40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa31ca28f60c880802462335eedc5d91f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d33/gram__schmidt_8cpp.html#aa31ca28f60c880802462335eedc5d91f">linear_algebra::gram_schmidt::gram_schmidt</a> (int r, const int &amp;c, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 10 &gt;, 20 &gt; &amp;A, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 10 &gt;, 20 &gt; B)</td></tr>
<tr class="separator:aa31ca28f60c880802462335eedc5d91f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4a4504924ecc9f12a2ebd80788ec01d"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d33/gram__schmidt_8cpp.html#ac4a4504924ecc9f12a2ebd80788ec01d">numerical_methods::gram_schmidt::dot_product</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 10 &gt; &amp;x, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 10 &gt; &amp;y, const int &amp;c)</td></tr>
<tr class="separator:ac4a4504924ecc9f12a2ebd80788ec01d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8eeaafdde8b56f459aadc6013cf078bc"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d33/gram__schmidt_8cpp.html#a8eeaafdde8b56f459aadc6013cf078bc">numerical_methods::gram_schmidt::projection</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 10 &gt; &amp;x, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 10 &gt; &amp;y, const int &amp;c)</td></tr>
<tr class="separator:a8eeaafdde8b56f459aadc6013cf078bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6b496dce691e04f7f95ba0f0d33a289"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d33/gram__schmidt_8cpp.html#ae6b496dce691e04f7f95ba0f0d33a289">numerical_methods::gram_schmidt::display</a> (const int &amp;r, const int &amp;c, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 10 &gt;, 20 &gt; &amp;B)</td></tr>
<tr class="separator:ae6b496dce691e04f7f95ba0f0d33a289"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0837468e1a653ed056e2cce3c914afa5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d33/gram__schmidt_8cpp.html#a0837468e1a653ed056e2cce3c914afa5">numerical_methods::gram_schmidt::gram_schmidt</a> (int r, const int &amp;c, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 10 &gt;, 20 &gt; &amp;A, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 10 &gt;, 20 &gt; B)</td></tr>
<tr class="separator:a0837468e1a653ed056e2cce3c914afa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d33/gram__schmidt_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="separator:aa8dca7b867074164d5f45b0f3851269d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d33/gram__schmidt_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
@@ -139,21 +139,21 @@ Functions</h2></td></tr>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p ><a href="https://en.wikipedia.org/wiki/Gram%E2%80%93Schmidt_process" target="_blank">Gram Schmidt Orthogonalisation Process</a> </p>
<p >Takes the input of Linearly Independent Vectors, returns vectors orthogonal to each other.</p>
<h3><a class="anchor" id="autotoc_md83"></a>
<h3><a class="anchor" id="autotoc_md86"></a>
Algorithm</h3>
<p >Take the first vector of given LI vectors as first vector of Orthogonal vectors. Take projection of second input vector on the first vector of Orthogonal vector and subtract it from the 2nd LI vector. Take projection of third vector on the second vector of Othogonal vectors and subtract it from the 3rd LI vector. Keep repeating the above process until all the vectors in the given input array are exhausted.</p>
<p >For Example: In R2, Input LI Vectors={(3,1),(2,2)} then Orthogonal Vectors= {(3, 1),(-0.4, 1.2)}</p>
<p >Have defined maximum dimension of vectors to be 10 and number of vectors taken is 20. Please do not give linearly dependent vectors</p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/Akanksha-Gupta920" target="_blank">Akanksha Gupta</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="ab6b70f9680752e9fe2ac4e2cce158c40" name="ab6b70f9680752e9fe2ac4e2cce158c40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab6b70f9680752e9fe2ac4e2cce158c40">&#9670;&nbsp;</a></span>display()</h2>
<a id="ae6b496dce691e04f7f95ba0f0d33a289" name="ae6b496dce691e04f7f95ba0f0d33a289"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae6b496dce691e04f7f95ba0f0d33a289">&#9670;&nbsp;</a></span>display()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void linear_algebra::gram_schmidt::display </td>
<td class="memname">void numerical_methods::gram_schmidt::display </td>
<td>(</td>
<td class="paramtype">const int &amp;&#160;</td>
<td class="paramname"><em>r</em>, </td>
@@ -200,14 +200,14 @@ Algorithm</h3>
</div><!-- fragment -->
</div>
</div>
<a id="aed4d308f46ca1d91e348ca260ec1d2fb" name="aed4d308f46ca1d91e348ca260ec1d2fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed4d308f46ca1d91e348ca260ec1d2fb">&#9670;&nbsp;</a></span>dot_product()</h2>
<a id="ac4a4504924ecc9f12a2ebd80788ec01d" name="ac4a4504924ecc9f12a2ebd80788ec01d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac4a4504924ecc9f12a2ebd80788ec01d">&#9670;&nbsp;</a></span>dot_product()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double linear_algebra::gram_schmidt::dot_product </td>
<td class="memname">double numerical_methods::gram_schmidt::dot_product </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 10 &gt; &amp;&#160;</td>
<td class="paramname"><em>x</em>, </td>
@@ -251,20 +251,20 @@ Algorithm</h3>
</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="../../d5/d33/gram__schmidt_8cpp_aed4d308f46ca1d91e348ca260ec1d2fb_cgraph.svg" width="366" height="76"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d5/d33/gram__schmidt_8cpp_ac4a4504924ecc9f12a2ebd80788ec01d_cgraph.svg" width="395" height="76"><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="aa31ca28f60c880802462335eedc5d91f" name="aa31ca28f60c880802462335eedc5d91f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa31ca28f60c880802462335eedc5d91f">&#9670;&nbsp;</a></span>gram_schmidt()</h2>
<a id="a0837468e1a653ed056e2cce3c914afa5" name="a0837468e1a653ed056e2cce3c914afa5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0837468e1a653ed056e2cce3c914afa5">&#9670;&nbsp;</a></span>gram_schmidt()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void linear_algebra::gram_schmidt::gram_schmidt </td>
<td class="memname">void numerical_methods::gram_schmidt::gram_schmidt </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>r</em>, </td>
@@ -342,7 +342,7 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 149</span> temp{}; <span class="comment">/// to store previous projected array</span></div>
<div class="line"><span class="lineno"> 150</span> <span class="keywordtype">double</span> factor = NAN; <span class="comment">/// to store the factor by which the</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 151</span><span class="comment"> /// previous array will change</span></div>
<div class="line"><span class="lineno"> 152</span><span class="comment"></span> factor = <a class="code hl_function" href="../../d5/d33/gram__schmidt_8cpp.html#a46e459aff5eafffb5ad9ceb129b4d274">projection</a>(A[k - 1], B[l - 1], c);</div>
<div class="line"><span class="lineno"> 152</span><span class="comment"></span> factor = <a class="code hl_function" href="../../d5/d33/gram__schmidt_8cpp.html#a8eeaafdde8b56f459aadc6013cf078bc">projection</a>(A[k - 1], B[l - 1], c);</div>
<div class="line"><span class="lineno"> 153</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; c; ++i) {</div>
<div class="line"><span class="lineno"> 154</span> temp[i] = B[<a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a6d8df83a6f26ce24a75d3b358b7f5b8a">l</a> - 1][i] * factor; <span class="comment">/// projected array created</span></div>
<div class="line"><span class="lineno"> 155</span> }</div>
@@ -368,11 +368,11 @@ Here is the call graph for this function:</div>
<div class="ttc" id="aarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a></div></div>
<div class="ttc" id="acomposite__simpson__rule_8cpp_html_a1b74d828b33760094906797042b89442"><div class="ttname"><a href="../../d4/d18/composite__simpson__rule_8cpp.html#a1b74d828b33760094906797042b89442">numerical_methods::simpson_method::k</a></div><div class="ttdeci">double k(double x)</div><div class="ttdoc">Another test function.</div><div class="ttdef"><b>Definition:</b> composite_simpson_rule.cpp:117</div></div>
<div class="ttc" id="acomposite__simpson__rule_8cpp_html_a6d8df83a6f26ce24a75d3b358b7f5b8a"><div class="ttname"><a href="../../d4/d18/composite__simpson__rule_8cpp.html#a6d8df83a6f26ce24a75d3b358b7f5b8a">numerical_methods::simpson_method::l</a></div><div class="ttdeci">double l(double x)</div><div class="ttdoc">Another test function.</div><div class="ttdef"><b>Definition:</b> composite_simpson_rule.cpp:119</div></div>
<div class="ttc" id="agram__schmidt_8cpp_html_a46e459aff5eafffb5ad9ceb129b4d274"><div class="ttname"><a href="../../d5/d33/gram__schmidt_8cpp.html#a46e459aff5eafffb5ad9ceb129b4d274">linear_algebra::gram_schmidt::projection</a></div><div class="ttdeci">double projection(const std::array&lt; double, 10 &gt; &amp;x, const std::array&lt; double, 10 &gt; &amp;y, const int &amp;c)</div><div class="ttdef"><b>Definition:</b> gram_schmidt.cpp:79</div></div>
<div class="ttc" id="agram__schmidt_8cpp_html_a8eeaafdde8b56f459aadc6013cf078bc"><div class="ttname"><a href="../../d5/d33/gram__schmidt_8cpp.html#a8eeaafdde8b56f459aadc6013cf078bc">numerical_methods::gram_schmidt::projection</a></div><div class="ttdeci">double projection(const std::array&lt; double, 10 &gt; &amp;x, const std::array&lt; double, 10 &gt; &amp;y, const int &amp;c)</div><div class="ttdef"><b>Definition:</b> gram_schmidt.cpp:79</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../d5/d33/gram__schmidt_8cpp_aa31ca28f60c880802462335eedc5d91f_cgraph.svg" width="100%" height="300"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../d5/d33/gram__schmidt_8cpp_a0837468e1a653ed056e2cce3c914afa5_cgraph.svg" width="100%" height="300"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
@@ -425,14 +425,14 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 268</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div>
<div class="line"><span class="lineno"> 269</span> }</div>
<div class="line"><span class="lineno"> 270</span> </div>
<div class="line"><span class="lineno"> 271</span> <a class="code hl_function" href="../../d5/d33/gram__schmidt_8cpp.html#aa31ca28f60c880802462335eedc5d91f">linear_algebra::gram_schmidt::gram_schmidt</a>(r, c, A, B);</div>
<div class="line"><span class="lineno"> 271</span> <a class="code hl_function" href="../../d5/d33/gram__schmidt_8cpp.html#a0837468e1a653ed056e2cce3c914afa5">numerical_methods::gram_schmidt::gram_schmidt</a>(r, c, A, B);</div>
<div class="line"><span class="lineno"> 272</span> </div>
<div class="line"><span class="lineno"> 273</span> <span class="keywordtype">double</span> dot = 0;</div>
<div class="line"><span class="lineno"> 274</span> <span class="keywordtype">int</span> flag = 1; <span class="comment">/// To check whether vectors are orthogonal or not</span></div>
<div class="line"><span class="lineno"> 275</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; r - 1; ++i) {</div>
<div class="line"><span class="lineno"> 276</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = i + 1; j &lt; r; ++j) {</div>
<div class="line"><span class="lineno"> 277</span> dot =</div>
<div class="line"><span class="lineno"> 278</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/fabs.html">fabs</a>(linear_algebra::gram_schmidt::dot_product(B[i], B[j], c));</div>
<div class="line"><span class="lineno"> 277</span> dot = <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/fabs.html">fabs</a>(</div>
<div class="line"><span class="lineno"> 278</span> numerical_methods::gram_schmidt::dot_product(B[i], B[j], c));</div>
<div class="line"><span class="lineno"> 279</span> <span class="keywordflow">if</span> (dot &gt; 0.1) <span class="comment">/// take make the process numerically stable, upper</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 280</span><span class="comment"> /// bound for the dot product take 0.1</span></div>
<div class="line"><span class="lineno"> 281</span><span class="comment"></span> {</div>
@@ -447,7 +447,7 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 290</span>}</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="afabs_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/fabs.html">std::fabs</a></div><div class="ttdeci">T fabs(T... args)</div></div>
<div class="ttc" id="agram__schmidt_8cpp_html_aa31ca28f60c880802462335eedc5d91f"><div class="ttname"><a href="../../d5/d33/gram__schmidt_8cpp.html#aa31ca28f60c880802462335eedc5d91f">linear_algebra::gram_schmidt::gram_schmidt</a></div><div class="ttdeci">void gram_schmidt(int r, const int &amp;c, const std::array&lt; std::array&lt; double, 10 &gt;, 20 &gt; &amp;A, std::array&lt; std::array&lt; double, 10 &gt;, 20 &gt; B)</div><div class="ttdef"><b>Definition:</b> gram_schmidt.cpp:121</div></div>
<div class="ttc" id="agram__schmidt_8cpp_html_a0837468e1a653ed056e2cce3c914afa5"><div class="ttname"><a href="../../d5/d33/gram__schmidt_8cpp.html#a0837468e1a653ed056e2cce3c914afa5">numerical_methods::gram_schmidt::gram_schmidt</a></div><div class="ttdeci">void gram_schmidt(int r, const int &amp;c, const std::array&lt; std::array&lt; double, 10 &gt;, 20 &gt; &amp;A, std::array&lt; std::array&lt; double, 10 &gt;, 20 &gt; B)</div><div class="ttdef"><b>Definition:</b> gram_schmidt.cpp:121</div></div>
<div class="ttc" id="agram__schmidt_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../d5/d33/gram__schmidt_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdef"><b>Definition:</b> gram_schmidt.cpp:181</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -458,14 +458,14 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a46e459aff5eafffb5ad9ceb129b4d274" name="a46e459aff5eafffb5ad9ceb129b4d274"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46e459aff5eafffb5ad9ceb129b4d274">&#9670;&nbsp;</a></span>projection()</h2>
<a id="a8eeaafdde8b56f459aadc6013cf078bc" name="a8eeaafdde8b56f459aadc6013cf078bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8eeaafdde8b56f459aadc6013cf078bc">&#9670;&nbsp;</a></span>projection()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double linear_algebra::gram_schmidt::projection </td>
<td class="memname">double numerical_methods::gram_schmidt::projection </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 10 &gt; &amp;&#160;</td>
<td class="paramname"><em>x</em>, </td>
@@ -504,20 +504,20 @@ Here is the call graph for this function:</div>
<p >multiply that factor with every element in a 3rd vector, whose initial values are same as the 2nd vector.</p>
<div class="fragment"><div class="line"><span class="lineno"> 80</span> {</div>
<div class="line"><span class="lineno"> 81</span> <span class="keywordtype">double</span> dot =</div>
<div class="line"><span class="lineno"> 82</span> <a class="code hl_function" href="../../d5/d33/gram__schmidt_8cpp.html#aed4d308f46ca1d91e348ca260ec1d2fb">dot_product</a>(x, y, c); <span class="comment">/// The dot product of two vectors is taken</span></div>
<div class="line"><span class="lineno"> 82</span> <a class="code hl_function" href="../../d5/d33/gram__schmidt_8cpp.html#ac4a4504924ecc9f12a2ebd80788ec01d">dot_product</a>(x, y, c); <span class="comment">/// The dot product of two vectors is taken</span></div>
<div class="line"><span class="lineno"> 83</span> <span class="keywordtype">double</span> anorm =</div>
<div class="line"><span class="lineno"> 84</span> <a class="code hl_function" href="../../d5/d33/gram__schmidt_8cpp.html#aed4d308f46ca1d91e348ca260ec1d2fb">dot_product</a>(y, y, c); <span class="comment">/// The norm of the second vector is taken.</span></div>
<div class="line"><span class="lineno"> 84</span> <a class="code hl_function" href="../../d5/d33/gram__schmidt_8cpp.html#ac4a4504924ecc9f12a2ebd80788ec01d">dot_product</a>(y, y, c); <span class="comment">/// The norm of the second vector is taken.</span></div>
<div class="line"><span class="lineno"> 85</span> <span class="keywordtype">double</span> factor =</div>
<div class="line"><span class="lineno"> 86</span> dot /</div>
<div class="line"><span class="lineno"> 87</span> anorm; <span class="comment">/// multiply that factor with every element in a 3rd vector,</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 88</span><span class="comment"> /// whose initial values are same as the 2nd vector.</span></div>
<div class="line"><span class="lineno"> 89</span><span class="comment"></span> <span class="keywordflow">return</span> factor;</div>
<div class="line"><span class="lineno"> 90</span>}</div>
<div class="ttc" id="agram__schmidt_8cpp_html_aed4d308f46ca1d91e348ca260ec1d2fb"><div class="ttname"><a href="../../d5/d33/gram__schmidt_8cpp.html#aed4d308f46ca1d91e348ca260ec1d2fb">linear_algebra::gram_schmidt::dot_product</a></div><div class="ttdeci">double dot_product(const std::array&lt; double, 10 &gt; &amp;x, const std::array&lt; double, 10 &gt; &amp;y, const int &amp;c)</div><div class="ttdef"><b>Definition:</b> gram_schmidt.cpp:59</div></div>
<div class="ttc" id="agram__schmidt_8cpp_html_ac4a4504924ecc9f12a2ebd80788ec01d"><div class="ttname"><a href="../../d5/d33/gram__schmidt_8cpp.html#ac4a4504924ecc9f12a2ebd80788ec01d">numerical_methods::gram_schmidt::dot_product</a></div><div class="ttdeci">double dot_product(const std::array&lt; double, 10 &gt; &amp;x, const std::array&lt; double, 10 &gt; &amp;y, const int &amp;c)</div><div class="ttdef"><b>Definition:</b> gram_schmidt.cpp:59</div></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="../../d5/d33/gram__schmidt_8cpp_a46e459aff5eafffb5ad9ceb129b4d274_cgraph.svg" width="552" height="76"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d5/d33/gram__schmidt_8cpp_a8eeaafdde8b56f459aadc6013cf078bc_cgraph.svg" width="611" height="76"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
@@ -551,12 +551,12 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 183</span> {{1, 0, 1, 0}, {1, 1, 1, 1}, {0, 1, 2, 1}}};</div>
<div class="line"><span class="lineno"> 184</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;std::array&lt;double, 10&gt;</a>, 20&gt; b1 = {{0}};</div>
<div class="line"><span class="lineno"> 185</span> <span class="keywordtype">double</span> dot1 = 0;</div>
<div class="line"><span class="lineno"> 186</span> <a class="code hl_function" href="../../d5/d33/gram__schmidt_8cpp.html#aa31ca28f60c880802462335eedc5d91f">linear_algebra::gram_schmidt::gram_schmidt</a>(3, 4, a1, b1);</div>
<div class="line"><span class="lineno"> 186</span> <a class="code hl_function" href="../../d5/d33/gram__schmidt_8cpp.html#a0837468e1a653ed056e2cce3c914afa5">numerical_methods::gram_schmidt::gram_schmidt</a>(3, 4, a1, b1);</div>
<div class="line"><span class="lineno"> 187</span> <span class="keywordtype">int</span> flag = 1;</div>
<div class="line"><span class="lineno"> 188</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i) {</div>
<div class="line"><span class="lineno"> 189</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = i + 1; j &lt; 3; ++j) {</div>
<div class="line"><span class="lineno"> 190</span> dot1 = <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/fabs.html">fabs</a>(</div>
<div class="line"><span class="lineno"> 191</span> linear_algebra::gram_schmidt::dot_product(b1[i], b1[j], 4));</div>
<div class="line"><span class="lineno"> 191</span> numerical_methods::gram_schmidt::dot_product(b1[i], b1[j], 4));</div>
<div class="line"><span class="lineno"> 192</span> <span class="keywordflow">if</span> (dot1 &gt; 0.1) {</div>
<div class="line"><span class="lineno"> 193</span> flag = 0;</div>
<div class="line"><span class="lineno"> 194</span> <span class="keywordflow">break</span>;</div>
@@ -571,12 +571,12 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 203</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;std::array&lt;double, 10&gt;</a>, 20&gt; a2 = {{{3, 1}, {2, 2}}};</div>
<div class="line"><span class="lineno"> 204</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;std::array&lt;double, 10&gt;</a>, 20&gt; b2 = {{0}};</div>
<div class="line"><span class="lineno"> 205</span> <span class="keywordtype">double</span> dot2 = 0;</div>
<div class="line"><span class="lineno"> 206</span> <a class="code hl_function" href="../../d5/d33/gram__schmidt_8cpp.html#aa31ca28f60c880802462335eedc5d91f">linear_algebra::gram_schmidt::gram_schmidt</a>(2, 2, a2, b2);</div>
<div class="line"><span class="lineno"> 206</span> <a class="code hl_function" href="../../d5/d33/gram__schmidt_8cpp.html#a0837468e1a653ed056e2cce3c914afa5">numerical_methods::gram_schmidt::gram_schmidt</a>(2, 2, a2, b2);</div>
<div class="line"><span class="lineno"> 207</span> flag = 1;</div>
<div class="line"><span class="lineno"> 208</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 1; ++i) {</div>
<div class="line"><span class="lineno"> 209</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = i + 1; j &lt; 2; ++j) {</div>
<div class="line"><span class="lineno"> 210</span> dot2 = <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/fabs.html">fabs</a>(</div>
<div class="line"><span class="lineno"> 211</span> linear_algebra::gram_schmidt::dot_product(b2[i], b2[j], 2));</div>
<div class="line"><span class="lineno"> 211</span> numerical_methods::gram_schmidt::dot_product(b2[i], b2[j], 2));</div>
<div class="line"><span class="lineno"> 212</span> <span class="keywordflow">if</span> (dot2 &gt; 0.1) {</div>
<div class="line"><span class="lineno"> 213</span> flag = 0;</div>
<div class="line"><span class="lineno"> 214</span> <span class="keywordflow">break</span>;</div>
@@ -591,12 +591,12 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 223</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;std::array&lt;double, 10&gt;</a>, 20&gt; a3 = {{{1, 2, 2}, {-4, 3, 2}}};</div>
<div class="line"><span class="lineno"> 224</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;std::array&lt;double, 10&gt;</a>, 20&gt; b3 = {{0}};</div>
<div class="line"><span class="lineno"> 225</span> <span class="keywordtype">double</span> dot3 = 0;</div>
<div class="line"><span class="lineno"> 226</span> <a class="code hl_function" href="../../d5/d33/gram__schmidt_8cpp.html#aa31ca28f60c880802462335eedc5d91f">linear_algebra::gram_schmidt::gram_schmidt</a>(2, 3, a3, b3);</div>
<div class="line"><span class="lineno"> 226</span> <a class="code hl_function" href="../../d5/d33/gram__schmidt_8cpp.html#a0837468e1a653ed056e2cce3c914afa5">numerical_methods::gram_schmidt::gram_schmidt</a>(2, 3, a3, b3);</div>
<div class="line"><span class="lineno"> 227</span> flag = 1;</div>
<div class="line"><span class="lineno"> 228</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 1; ++i) {</div>
<div class="line"><span class="lineno"> 229</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = i + 1; j &lt; 2; ++j) {</div>
<div class="line"><span class="lineno"> 230</span> dot3 = <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/fabs.html">fabs</a>(</div>
<div class="line"><span class="lineno"> 231</span> linear_algebra::gram_schmidt::dot_product(b3[i], b3[j], 3));</div>
<div class="line"><span class="lineno"> 231</span> numerical_methods::gram_schmidt::dot_product(b3[i], b3[j], 3));</div>
<div class="line"><span class="lineno"> 232</span> <span class="keywordflow">if</span> (dot3 &gt; 0.1) {</div>
<div class="line"><span class="lineno"> 233</span> flag = 0;</div>
<div class="line"><span class="lineno"> 234</span> <span class="keywordflow">break</span>;</div>
@@ -616,8 +616,8 @@ Here is the call graph for this function:</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_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="../../d5/d33/gram__schmidt_8cpp.html">gram_schmidt.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3 </li>
<li class="navelem"><a class="el" href="../../dir_9c6faab82c22511b50177aa2e38e2780.html">numerical_methods</a></li><li class="navelem"><a class="el" href="../../d5/d33/gram__schmidt_8cpp.html">gram_schmidt.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>