309 lines
14 KiB
HTML
309 lines
14 KiB
HTML
<!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" lang="en-US">
|
|
<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.6"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>FYS3150: Project 2: /home/coryab/uio/FYS3150/projects/Project-2/include/matrix.hpp 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="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>
|
|
<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 id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">FYS3150: Project 2
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.9.6 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
<!-- 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">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#func-members">Functions</a> </div>
|
|
<div class="headertitle"><div class="title">matrix.hpp File Reference</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Function prototypes for creating tridiagonal matrices.
|
|
<a href="#details">More...</a></p>
|
|
<div class="textblock"><code>#include <armadillo></code><br />
|
|
<code>#include <omp.h></code><br />
|
|
</div>
|
|
<p><a href="matrix_8hpp_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 id="func-members" name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:aa524feaf9f44790470df4cb99bb714af"><td class="memItemLeft" align="right" valign="top">arma::mat </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8hpp.html#aa524feaf9f44790470df4cb99bb714af">create_tridiagonal</a> (const arma::vec &a, const arma::vec &d, const arma::vec &e)</td></tr>
|
|
<tr class="memdesc:aa524feaf9f44790470df4cb99bb714af"><td class="mdescLeft"> </td><td class="mdescRight">Create a tridiagonal matrix. <br /></td></tr>
|
|
<tr class="separator:aa524feaf9f44790470df4cb99bb714af"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a65fae0d4bec72cf4f66764ed100f20ca"><td class="memItemLeft" align="right" valign="top">arma::mat </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8hpp.html#a65fae0d4bec72cf4f66764ed100f20ca">create_tridiagonal</a> (int n, double a, double d, double e)</td></tr>
|
|
<tr class="memdesc:a65fae0d4bec72cf4f66764ed100f20ca"><td class="mdescLeft"> </td><td class="mdescRight">Create a tridiagonal matrix. <br /></td></tr>
|
|
<tr class="separator:a65fae0d4bec72cf4f66764ed100f20ca"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a564688c96a8e4282e995a0663545d627"><td class="memItemLeft" align="right" valign="top">arma::mat </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8hpp.html#a564688c96a8e4282e995a0663545d627">create_symmetric_tridiagonal</a> (int n, double a, double d)</td></tr>
|
|
<tr class="memdesc:a564688c96a8e4282e995a0663545d627"><td class="mdescLeft"> </td><td class="mdescRight">Create a symmetric tridiagonal matrix. <br /></td></tr>
|
|
<tr class="separator:a564688c96a8e4282e995a0663545d627"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af42e501cbf71bec9c77ececc22723df9"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8hpp.html#af42e501cbf71bec9c77ececc22723df9">max_offdiag_symmetric</a> (arma::mat &A, int &k, int &l)</td></tr>
|
|
<tr class="memdesc:af42e501cbf71bec9c77ececc22723df9"><td class="mdescLeft"> </td><td class="mdescRight">Find the off-diagonal element with the largest absolute value. <br /></td></tr>
|
|
<tr class="separator:af42e501cbf71bec9c77ececc22723df9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>Function prototypes for creating tridiagonal matrices. </p>
|
|
<dl class="section author"><dt>Author</dt><dd>Cory Alexander Balaton (coryab) </dd>
|
|
<dd>
|
|
Janita Ovidie Sandtrøen Willumsen (janitaws) </dd></dl>
|
|
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000007">Bug:</a></b></dt><dd>No known bugs </dd></dl>
|
|
</div><h2 class="groupheader">Function Documentation</h2>
|
|
<a id="a564688c96a8e4282e995a0663545d627" name="a564688c96a8e4282e995a0663545d627"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a564688c96a8e4282e995a0663545d627">◆ </a></span>create_symmetric_tridiagonal()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">arma::mat create_symmetric_tridiagonal </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>n</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>d</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Create a symmetric tridiagonal matrix. </p>
|
|
<p>create_symmetric_tridiagonal creates a symmetric tridiagonal matrix by calling create_tridiagonal with the same signature for the off-diagonals.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">n</td><td>The dimensions of the tridiagonal matrix </td></tr>
|
|
<tr><td class="paramname">a</td><td>The signature for the off diagonals </td></tr>
|
|
<tr><td class="paramname">d</td><td>The signature for the main diagonal</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>arma::matrix </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aa524feaf9f44790470df4cb99bb714af" name="aa524feaf9f44790470df4cb99bb714af"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa524feaf9f44790470df4cb99bb714af">◆ </a></span>create_tridiagonal() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">arma::mat create_tridiagonal </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const arma::vec & </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const arma::vec & </td>
|
|
<td class="paramname"><em>d</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const arma::vec & </td>
|
|
<td class="paramname"><em>e</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Create a tridiagonal matrix. </p>
|
|
<p>create_tridiagonal creates a tridiagonal matrix by first creating a matrix, filled with zeros, of size NxN where N is the size of the main diagonal matrix. Then it will fill all the values from the vector parameters into the matrix and return it.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">a</td><td>Vector for the lower diagonal of size N-1 </td></tr>
|
|
<tr><td class="paramname">d</td><td>Vector for the main diagonal of size N </td></tr>
|
|
<tr><td class="paramname">e</td><td>Vector for the upper diagonal of size N-1</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>arma::matrix </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a65fae0d4bec72cf4f66764ed100f20ca" name="a65fae0d4bec72cf4f66764ed100f20ca"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a65fae0d4bec72cf4f66764ed100f20ca">◆ </a></span>create_tridiagonal() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">arma::mat create_tridiagonal </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>n</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>d</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>e</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Create a tridiagonal matrix. </p>
|
|
<p>This is an overload that takes doubles for the diagonals instead of vectors. It will create 3 vectors that are filled with the signature provided in the arguments, and then call create_tridiagonal with the vectors as the arguments.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">n</td><td>The dimensions of the tridiagonal matrix </td></tr>
|
|
<tr><td class="paramname">a</td><td>The signature for the lower diagonal </td></tr>
|
|
<tr><td class="paramname">d</td><td>The signature for the main diagonal </td></tr>
|
|
<tr><td class="paramname">e</td><td>The signature for the upper diagonal</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>arma::matrix </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="af42e501cbf71bec9c77ececc22723df9" name="af42e501cbf71bec9c77ececc22723df9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af42e501cbf71bec9c77ececc22723df9">◆ </a></span>max_offdiag_symmetric()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">double max_offdiag_symmetric </td>
|
|
<td>(</td>
|
|
<td class="paramtype">arma::mat & </td>
|
|
<td class="paramname"><em>A</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int & </td>
|
|
<td class="paramname"><em>k</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int & </td>
|
|
<td class="paramname"><em>l</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Find the off-diagonal element with the largest absolute value. </p>
|
|
<p>max_offdiag_symmetric find the element with the largest absolute value that isn't in the diagonal. Since this function assumes that the matrix that is given is symmetrical, we only need to loop through the upper diagonals of the matrix.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">A</td><td>Symmetric matrix </td></tr>
|
|
<tr><td class="paramname">k</td><td>Variable to store the row of the return value </td></tr>
|
|
<tr><td class="paramname">l</td><td>Variable to store the column of the return value</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Double </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
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.6
|
|
</small></address>
|
|
</body>
|
|
</html>
|