Project-5/docs/utils_8hpp.html
2024-01-02 13:25:52 +01:00

472 lines
25 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>Simulating the Schrödinger wave equation using the Crank-Nicolson method in 2+1 dimensions: include/utils.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="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"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.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">Simulating the Schrödinger wave equation using the Crank-Nicolson method in 2+1 dimensions
</div>
<div id="projectbrief">Simulating the Schrödinger wave equation using the Crank-Nicolson method in 2+1 dimensions</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&amp;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&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('utils_8hpp.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">
<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 class="header">
<div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">utils.hpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Function prototypes and macros that are useful.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;armadillo&gt;</code><br />
<code>#include &lt;iomanip&gt;</code><br />
<code>#include &lt;sstream&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &lt;sys/stat.h&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
</div>
<p><a href="utils_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="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:aecc1f7a8a2493b9e021e5bff76a00a5b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b">DEBUG</a>(msg)</td></tr>
<tr class="memdesc:aecc1f7a8a2493b9e021e5bff76a00a5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a debug message. <br /></td></tr>
<tr class="separator:aecc1f7a8a2493b9e021e5bff76a00a5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60dca3177fb9cb5256609adc7af55168"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168">__METHOD_NAME__</a>&#160;&#160;&#160;<a class="el" href="utils_8hpp.html#a178c4922157666a6e9c127c2ffd96346">details::methodName</a>(__PRETTY_FUNCTION__)</td></tr>
<tr class="memdesc:a60dca3177fb9cb5256609adc7af55168"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of the current method/function without the return type. <br /></td></tr>
<tr class="separator:a60dca3177fb9cb5256609adc7af55168"><td class="memSeparator" colspan="2">&#160;</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:a178c4922157666a6e9c127c2ffd96346"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8hpp.html#a178c4922157666a6e9c127c2ffd96346">details::methodName</a> (const std::string &amp;pretty_function)</td></tr>
<tr class="memdesc:a178c4922157666a6e9c127c2ffd96346"><td class="mdescLeft">&#160;</td><td class="mdescRight">Takes in the <b>PRETTY_FUNCTION</b> string and removes the return type. <br /></td></tr>
<tr class="separator:a178c4922157666a6e9c127c2ffd96346"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3529a74fd2a25d24de73d9d4e1c90835"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">utils::scientific_format</a> (double d, int width=20, int prec=10)</td></tr>
<tr class="memdesc:a3529a74fd2a25d24de73d9d4e1c90835"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turns a double into a string written in scientific format. <br /></td></tr>
<tr class="separator:a3529a74fd2a25d24de73d9d4e1c90835"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3e89176433ddc9ba721b2eba3d08357"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8hpp.html#ab3e89176433ddc9ba721b2eba3d08357">utils::scientific_format</a> (const std::vector&lt; double &gt; &amp;v, int width=20, int prec=10)</td></tr>
<tr class="memdesc:ab3e89176433ddc9ba721b2eba3d08357"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turns a vector of doubles into a string written in scientific format. <br /></td></tr>
<tr class="separator:ab3e89176433ddc9ba721b2eba3d08357"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b45adc86b70f42021582994e83fa00d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">utils::mkpath</a> (std::string path, int mode=0777)</td></tr>
<tr class="memdesc:a2b45adc86b70f42021582994e83fa00d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make path given. <br /></td></tr>
<tr class="separator:a2b45adc86b70f42021582994e83fa00d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed026119193a9bbe076671809ff0f430"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">utils::dirname</a> (const std::string &amp;path)</td></tr>
<tr class="memdesc:aed026119193a9bbe076671809ff0f430"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the directory name of the path. <br /></td></tr>
<tr class="separator:aed026119193a9bbe076671809ff0f430"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae91fad89394d745d544737e43524bde6"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8hpp.html#ae91fad89394d745d544737e43524bde6">utils::concatpath</a> (const std::string &amp;left, const std::string &amp;right)</td></tr>
<tr class="memdesc:ae91fad89394d745d544737e43524bde6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Take 2 strings and concatenate them and make sure there is a directory separator (/) between them. <br /></td></tr>
<tr class="separator:ae91fad89394d745d544737e43524bde6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb38a307ff812ce39c8961ab85670e79"><td class="memItemLeft" align="right" valign="top"><a id="aeb38a307ff812ce39c8961ab85670e79" name="aeb38a307ff812ce39c8961ab85670e79"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>utils::print_sp_matrix_structure</b> (const arma::sp_cx_mat &amp;A)</td></tr>
<tr class="separator:aeb38a307ff812ce39c8961ab85670e79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e03d1d2662965af5916d005bb457925"><td class="memItemLeft" align="right" valign="top"><a id="a6e03d1d2662965af5916d005bb457925" name="a6e03d1d2662965af5916d005bb457925"></a>
std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>utils::split</b> (const std::string &amp;s, char delim)</td></tr>
<tr class="separator:a6e03d1d2662965af5916d005bb457925"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2beadfd031dd575d913818017aafca77"><td class="memItemLeft" align="right" valign="top"><a id="a2beadfd031dd575d913818017aafca77" name="a2beadfd031dd575d913818017aafca77"></a>
std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>utils::ltrim</b> (std::string &amp;s, const char *t=&quot; \t\n\r\f\v&quot;)</td></tr>
<tr class="separator:a2beadfd031dd575d913818017aafca77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3471cd73c12207b224e19dc16ebc5515"><td class="memItemLeft" align="right" valign="top"><a id="a3471cd73c12207b224e19dc16ebc5515" name="a3471cd73c12207b224e19dc16ebc5515"></a>
std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>utils::rtrim</b> (std::string &amp;s, const char *t=&quot; \t\n\r\f\v&quot;)</td></tr>
<tr class="separator:a3471cd73c12207b224e19dc16ebc5515"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1467c057b964e71e8b0e41db26c23037"><td class="memItemLeft" align="right" valign="top"><a id="a1467c057b964e71e8b0e41db26c23037" name="a1467c057b964e71e8b0e41db26c23037"></a>
std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>utils::trim</b> (std::string &amp;s, const char *t=&quot; \t\n\r\f\v&quot;)</td></tr>
<tr class="separator:a1467c057b964e71e8b0e41db26c23037"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cfaa03c4fec38174b8d7cced86e9e92"><td class="memItemLeft" align="right" valign="top"><a id="a9cfaa03c4fec38174b8d7cced86e9e92" name="a9cfaa03c4fec38174b8d7cced86e9e92"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>utils::ltrim_copy</b> (std::string s, const char *t=&quot; \t\n\r\f\v&quot;)</td></tr>
<tr class="separator:a9cfaa03c4fec38174b8d7cced86e9e92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb333118c4afb654e9943057d81637cf"><td class="memItemLeft" align="right" valign="top"><a id="acb333118c4afb654e9943057d81637cf" name="acb333118c4afb654e9943057d81637cf"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>utils::rtrim_copy</b> (std::string s, const char *t=&quot; \t\n\r\f\v&quot;)</td></tr>
<tr class="separator:acb333118c4afb654e9943057d81637cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af939cf50f769899aacdccd37d322a603"><td class="memItemLeft" align="right" valign="top"><a id="af939cf50f769899aacdccd37d322a603" name="af939cf50f769899aacdccd37d322a603"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>utils::trim_copy</b> (std::string s, const char *t=&quot; \t\n\r\f\v&quot;)</td></tr>
<tr class="separator:af939cf50f769899aacdccd37d322a603"><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>Function prototypes and macros that are useful. </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="section version"><dt>Version</dt><dd>1.0</dd></dl>
<p>These utility function are mainly for convenience and aren't directly related to the project. Anything that is in the details namespace should not be used directly, or else it might cause undefined behavior if not used correctly.</p>
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000004">Bug:</a></b></dt><dd>No known bugs </dd></dl>
<p class="definition">Definition in file <a class="el" href="utils_8hpp_source.html">utils.hpp</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a60dca3177fb9cb5256609adc7af55168" name="a60dca3177fb9cb5256609adc7af55168"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a60dca3177fb9cb5256609adc7af55168">&#9670;&#160;</a></span>__METHOD_NAME__</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define __METHOD_NAME__&#160;&#160;&#160;<a class="el" href="utils_8hpp.html#a178c4922157666a6e9c127c2ffd96346">details::methodName</a>(__PRETTY_FUNCTION__)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the name of the current method/function without the return type. </p>
<p class="definition">Definition at line <a class="el" href="utils_8hpp_source.html#l00045">45</a> of file <a class="el" href="utils_8hpp_source.html">utils.hpp</a>.</p>
</div>
</div>
<a id="aecc1f7a8a2493b9e021e5bff76a00a5b" name="aecc1f7a8a2493b9e021e5bff76a00a5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aecc1f7a8a2493b9e021e5bff76a00a5b">&#9670;&#160;</a></span>DEBUG</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEBUG</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">msg</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes a debug message. </p>
<p>This macro writes a debug message that includes the filename, line number, and a custom message. The function is wrapped in an ifdef that checks if DBG is defined, so one can choose to display the debug messages by adding the -DDBG flag when compiling. </p>
<p class="definition">Definition at line <a class="el" href="utils_8hpp_source.html#l00039">39</a> of file <a class="el" href="utils_8hpp_source.html">utils.hpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ae91fad89394d745d544737e43524bde6" name="ae91fad89394d745d544737e43524bde6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae91fad89394d745d544737e43524bde6">&#9670;&#160;</a></span>concatpath()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string utils::concatpath </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>left</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>right</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Take 2 strings and concatenate them and make sure there is a directory separator (/) between them. </p>
<p>This function doesn't care whether or not the values given as parameters are valid path strings. It is the responsibility of the user to make sure that the values given are valid path strings. The function only guarantees that the output string is a valid path string.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">left</td><td>The left hand side of the result string </td></tr>
<tr><td class="paramname">right</td><td>The right hand side of the result string</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
</div>
</div>
<a id="aed026119193a9bbe076671809ff0f430" name="aed026119193a9bbe076671809ff0f430"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed026119193a9bbe076671809ff0f430">&#9670;&#160;</a></span>dirname()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string utils::dirname </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>path</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the directory name of the path. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">path</td><td>The path to use.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
</div>
</div>
<a id="a178c4922157666a6e9c127c2ffd96346" name="a178c4922157666a6e9c127c2ffd96346"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a178c4922157666a6e9c127c2ffd96346">&#9670;&#160;</a></span>methodName()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string details::methodName </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>pretty_function</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Takes in the <b>PRETTY_FUNCTION</b> string and removes the return type. </p>
<p>This function should only be used for the <b>METHOD_NAME</b> macro, since it takes the output from <b>PRETTY_FUNCTION</b> and strips the return type.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pretty_function</td><td>The string from <b>PRETTY_FUNCTION</b></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>std::string </dd></dl>
<p class="definition">Definition at line <a class="el" href="utils_8hpp_source.html#l00058">58</a> of file <a class="el" href="utils_8hpp_source.html">utils.hpp</a>.</p>
</div>
</div>
<a id="a2b45adc86b70f42021582994e83fa00d" name="a2b45adc86b70f42021582994e83fa00d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b45adc86b70f42021582994e83fa00d">&#9670;&#160;</a></span>mkpath()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool utils::mkpath </td>
<td>(</td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>mode</em> = <code>0777</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Make path given. </p>
<p>This tries to be the equivalent to "mkdir -p" and creates a new directory whenever it needs to.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">path</td><td>The path to be created </td></tr>
<tr><td class="paramname">mode</td><td>The mode/permissions for all the new directories</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>bool Success/Fail </dd></dl>
</div>
</div>
<a id="ab3e89176433ddc9ba721b2eba3d08357" name="ab3e89176433ddc9ba721b2eba3d08357"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3e89176433ddc9ba721b2eba3d08357">&#9670;&#160;</a></span>scientific_format() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string utils::scientific_format </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; double &gt; &amp;&#160;</td>
<td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>width</em> = <code>20</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>prec</em> = <code>10</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Turns a vector of doubles into a string written in scientific format. </p>
<p>The code is stolen from <a href="https://github.com/anderkve/FYS3150">https://github.com/anderkve/FYS3150</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">v</td><td>The vector to stringify </td></tr>
<tr><td class="paramname">width</td><td>The reserved width of the string </td></tr>
<tr><td class="paramname">prec</td><td>The precision of the stringified number</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>std::string </dd></dl>
</div>
</div>
<a id="a3529a74fd2a25d24de73d9d4e1c90835" name="a3529a74fd2a25d24de73d9d4e1c90835"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3529a74fd2a25d24de73d9d4e1c90835">&#9670;&#160;</a></span>scientific_format() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string utils::scientific_format </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>d</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>width</em> = <code>20</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>prec</em> = <code>10</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Turns a double into a string written in scientific format. </p>
<p>The code is stolen from <a href="https://github.com/anderkve/FYS3150">https://github.com/anderkve/FYS3150</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">d</td><td>The number to stringify </td></tr>
<tr><td class="paramname">width</td><td>The reserved width of the string </td></tr>
<tr><td class="paramname">prec</td><td>The precision of the stringified number</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>std::string </dd></dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="utils_8hpp.html">utils.hpp</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.6 </li>
</ul>
</div>
</body>
</html>