<!-- HTML header for doxygen 1.8.14-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.10.0"/>
    <meta name="viewport" content="width=device-width, initial-scale=1"/>
    <title>cmf: cmf::math Namespace 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>
    <script type="text/javascript" src="doxygen-awesome-darkmode-toggle.js"></script>
    <script type="text/javascript" src="doxygen-awesome-fragment-copy-button.js"></script>
    <script type="text/javascript">
        DoxygenAwesomeDarkModeToggle.init()
        DoxygenAwesomeFragmentCopyButton.init()
    </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>
<script type="text/javascript" src="cookie.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://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/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 style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="cmf-logo-2018.svg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
  <div id="projectnumber">2.0.0b10</div>
   <div id="projectbrief">catchment modelling framework</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<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');
  $(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 */
$(function(){initNavTree('namespacecmf_1_1math.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="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle"><div class="title">cmf::math Namespace Reference</div></div>
</div><!--header-->
<div class="contents">

<p>Contains classes for numerical solving of ODE's.  
<a href="#details">More...</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Contains classes for numerical solving of ODE's. </p>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1_b_d_f2.html">BDF2</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An order 2 BDF-Method with fixed-point iteration and variable step size.  <a href="classcmf_1_1math_1_1_b_d_f2.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1cubicspline.html">cubicspline</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interpolates points with a cubic spline interpolation.  <a href="classcmf_1_1math_1_1cubicspline.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1_c_vode_adams.html">CVodeAdams</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Explizit multistep solver using CVode.  <a href="classcmf_1_1math_1_1_c_vode_adams.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1_c_vode_banded.html">CVodeBanded</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">implicit BDF CVode solver with a banded Jacobian approximation  <a href="classcmf_1_1math_1_1_c_vode_banded.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1_c_vode_base.html">CVodeBase</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract base class for different modes of the CVode solver.  <a href="classcmf_1_1math_1_1_c_vode_base.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1_c_vode_dense.html">CVodeDense</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">implicit BDF CVode solver with full Jacobian approximation  <a href="classcmf_1_1math_1_1_c_vode_dense.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1_c_vode_diag.html">CVodeDiag</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">implicit BDF CVode solver with a one line diagonal Jacobian approximation  <a href="classcmf_1_1math_1_1_c_vode_diag.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcmf_1_1math_1_1_c_vode_info.html">CVodeInfo</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reports the current state of a CVode solver.  <a href="structcmf_1_1math_1_1_c_vode_info.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1_c_vode_krylov.html">CVodeKrylov</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">implicit BDF CVode solver with a Krylov preconditioner  <a href="classcmf_1_1math_1_1_c_vode_krylov.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcmf_1_1math_1_1_c_vode_options.html">CVodeOptions</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A set of options for all CVode3 solver.  <a href="structcmf_1_1math_1_1_c_vode_options.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcmf_1_1math_1_1_date.html">Date</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An absolute time, not for calculation. <a class="el" href="structcmf_1_1math_1_1_date.html" title="An absolute time, not for calculation. Date and Time are interchangable.">Date</a> and <a class="el" href="classcmf_1_1math_1_1_time.html" title="A time class, used to pass around current modelling times.">Time</a> are interchangable.  <a href="structcmf_1_1math_1_1_date.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1_explicit_euler__fixed.html">ExplicitEuler_fixed</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An explicit Euler integrator, with a fixed time step.  <a href="classcmf_1_1math_1_1_explicit_euler__fixed.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1_heun_integrator.html">HeunIntegrator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A simple predictor - corrector solver.  <a href="classcmf_1_1math_1_1_heun_integrator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1_implicit_euler.html">ImplicitEuler</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An implicit (backward) Euler integrator using fixpoint iteration.  <a href="classcmf_1_1math_1_1_implicit_euler.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1_integrator.html">Integrator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base class for any kind of integrator.  <a href="classcmf_1_1math_1_1_integrator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1_multi_integrator.html">MultiIntegrator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="classcmf_1_1math_1_1_multi_integrator.html" title="The MultiIntegrator is a wrapper for a bunch integrators. The states of the integrators should not ha...">MultiIntegrator</a> is a wrapper for a bunch integrators. The states of the integrators should not have direct connections over integrator boundaries.  <a href="classcmf_1_1math_1_1_multi_integrator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1num__array.html">num_array</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A valarray kind of vector implementation with OpenMP capabilities.  <a href="classcmf_1_1math_1_1num__array.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1_r_k_f_integrator.html">RKFIntegrator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Integrates a vector of <a class="el" href="classcmf_1_1math_1_1_state_variable.html" title="Abstract class state variable.">cmf::math::StateVariable</a> with the Runge-Kutta-Fehlberg (RKF54) method.  <a href="classcmf_1_1math_1_1_r_k_f_integrator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1_solute_water_integrator.html">SoluteWaterIntegrator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classcmf_1_1math_1_1_solute_water_integrator.html" title="A SoluteWaterIntegrator implements the cmf::math::Integrator interface, but consists of two independe...">SoluteWaterIntegrator</a> implements the <a class="el" href="classcmf_1_1math_1_1_integrator.html" title="Base class for any kind of integrator.">cmf::math::Integrator</a> interface, but consists of two independent ODE-solvers.  <a href="classcmf_1_1math_1_1_solute_water_integrator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1_state_variable.html">StateVariable</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract class state variable.  <a href="classcmf_1_1math_1_1_state_variable.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1_time.html">Time</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A time class, used to pass around current modelling times.  <a href="classcmf_1_1math_1_1_time.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmf_1_1math_1_1timeseries.html">timeseries</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A timeseries is a list of values, equally distributed over time.  <a href="classcmf_1_1math_1_1timeseries.html#details">More...</a><br /></td></tr>
<tr class="separator:"><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:aa5f3c19d12a056dd3166538834715c23" id="r_aa5f3c19d12a056dd3166538834715c23"><td class="memItemLeft" align="right" valign="top"><a id="aa5f3c19d12a056dd3166538834715c23" name="aa5f3c19d12a056dd3166538834715c23"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>get_parallel_threads</b> ()</td></tr>
<tr class="memdesc:aa5f3c19d12a056dd3166538834715c23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the max number of threads used by OpenMP in parallel sections of the code. <br /></td></tr>
<tr class="separator:aa5f3c19d12a056dd3166538834715c23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd2ff6bb516cbeb38944d88a973d0a79" id="r_afd2ff6bb516cbeb38944d88a973d0a79"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afd2ff6bb516cbeb38944d88a973d0a79">nash_sutcliffe</a> (const <a class="el" href="classcmf_1_1math_1_1timeseries.html">cmf::math::timeseries</a> &amp;model, const <a class="el" href="classcmf_1_1math_1_1timeseries.html">cmf::math::timeseries</a> &amp;observation)</td></tr>
<tr class="memdesc:afd2ff6bb516cbeb38944d88a973d0a79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the Nash-Sutcliffe efficiency of a modeled timeseries in comparison with an observed timeseries.  <br /></td></tr>
<tr class="separator:afd2ff6bb516cbeb38944d88a973d0a79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9baa6672e5e2b12e68342dcb244890b3" id="r_a9baa6672e5e2b12e68342dcb244890b3"><td class="memItemLeft" align="right" valign="top"><a id="a9baa6672e5e2b12e68342dcb244890b3" name="a9baa6672e5e2b12e68342dcb244890b3"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>set_parallel_threads</b> (int numthreads)</td></tr>
<tr class="memdesc:a9baa6672e5e2b12e68342dcb244890b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the number of threads used by OpenMP in parallel sections of the code. <br /></td></tr>
<tr class="separator:a9baa6672e5e2b12e68342dcb244890b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a0faf04a13a24c706e148abb6d5d14ef2" id="r_a0faf04a13a24c706e148abb6d5d14ef2"><td class="memItemLeft" align="right" valign="top"><a id="a0faf04a13a24c706e148abb6d5d14ef2" name="a0faf04a13a24c706e148abb6d5d14ef2"></a>
const <a class="el" href="classcmf_1_1math_1_1_time.html">Time</a>&#160;</td><td class="memItemRight" valign="bottom"><b>day</b> = 24 * <a class="el" href="#aebd6a0c9bfa3d592ffea7192ae537b36">h</a></td></tr>
<tr class="memdesc:a0faf04a13a24c706e148abb6d5d14ef2"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 day <br /></td></tr>
<tr class="separator:a0faf04a13a24c706e148abb6d5d14ef2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebd6a0c9bfa3d592ffea7192ae537b36" id="r_aebd6a0c9bfa3d592ffea7192ae537b36"><td class="memItemLeft" align="right" valign="top"><a id="aebd6a0c9bfa3d592ffea7192ae537b36" name="aebd6a0c9bfa3d592ffea7192ae537b36"></a>
const <a class="el" href="classcmf_1_1math_1_1_time.html">Time</a>&#160;</td><td class="memItemRight" valign="bottom"><b>h</b> = 60 * <a class="el" href="#a9bd5efcef1def41f072fd9c055e732e7">min</a></td></tr>
<tr class="memdesc:aebd6a0c9bfa3d592ffea7192ae537b36"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 hour <br /></td></tr>
<tr class="separator:aebd6a0c9bfa3d592ffea7192ae537b36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bd5efcef1def41f072fd9c055e732e7" id="r_a9bd5efcef1def41f072fd9c055e732e7"><td class="memItemLeft" align="right" valign="top"><a id="a9bd5efcef1def41f072fd9c055e732e7" name="a9bd5efcef1def41f072fd9c055e732e7"></a>
const <a class="el" href="classcmf_1_1math_1_1_time.html">Time</a>&#160;</td><td class="memItemRight" valign="bottom"><b>min</b> = 60 * <a class="el" href="#abc68390f9c78e13df9ce5b57cb9ee568">sec</a></td></tr>
<tr class="memdesc:a9bd5efcef1def41f072fd9c055e732e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 minute <br /></td></tr>
<tr class="separator:a9bd5efcef1def41f072fd9c055e732e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a79c3e0ea12fbf5cb3a774f9e283cea" id="r_a0a79c3e0ea12fbf5cb3a774f9e283cea"><td class="memItemLeft" align="right" valign="top"><a id="a0a79c3e0ea12fbf5cb3a774f9e283cea" name="a0a79c3e0ea12fbf5cb3a774f9e283cea"></a>
const <a class="el" href="classcmf_1_1math_1_1_time.html">Time</a>&#160;</td><td class="memItemRight" valign="bottom"><b>month</b> = <a class="el" href="#a61805d6198c0589b4751c8b3c0742bbc">year</a>/12</td></tr>
<tr class="memdesc:a0a79c3e0ea12fbf5cb3a774f9e283cea"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 month = 30*day+10*h <br /></td></tr>
<tr class="separator:a0a79c3e0ea12fbf5cb3a774f9e283cea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affa066a0e063e963859cb29f8c4e6da3" id="r_affa066a0e063e963859cb29f8c4e6da3"><td class="memItemLeft" align="right" valign="top"><a id="affa066a0e063e963859cb29f8c4e6da3" name="affa066a0e063e963859cb29f8c4e6da3"></a>
const <a class="el" href="classcmf_1_1math_1_1_time.html">Time</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ms</b> = timespan(1)</td></tr>
<tr class="memdesc:affa066a0e063e963859cb29f8c4e6da3"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 milli second <br /></td></tr>
<tr class="separator:affa066a0e063e963859cb29f8c4e6da3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0ac4011ef2a23a1e521caf66d812bc3" id="r_ae0ac4011ef2a23a1e521caf66d812bc3"><td class="memItemLeft" align="right" valign="top"><a id="ae0ac4011ef2a23a1e521caf66d812bc3" name="ae0ac4011ef2a23a1e521caf66d812bc3"></a>
const <a class="el" href="classcmf_1_1math_1_1_time.html">Time</a>&#160;</td><td class="memItemRight" valign="bottom"><b>never</b> =<a class="el" href="classcmf_1_1math_1_1_time.html">Time</a>(0,0,-9999)</td></tr>
<tr class="memdesc:ae0ac4011ef2a23a1e521caf66d812bc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">A date long before our time to indicate 'never'. <br /></td></tr>
<tr class="separator:ae0ac4011ef2a23a1e521caf66d812bc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc68390f9c78e13df9ce5b57cb9ee568" id="r_abc68390f9c78e13df9ce5b57cb9ee568"><td class="memItemLeft" align="right" valign="top"><a id="abc68390f9c78e13df9ce5b57cb9ee568" name="abc68390f9c78e13df9ce5b57cb9ee568"></a>
const <a class="el" href="classcmf_1_1math_1_1_time.html">Time</a>&#160;</td><td class="memItemRight" valign="bottom"><b>sec</b> = 1000 * <a class="el" href="#affa066a0e063e963859cb29f8c4e6da3">ms</a></td></tr>
<tr class="memdesc:abc68390f9c78e13df9ce5b57cb9ee568"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 second <br /></td></tr>
<tr class="separator:abc68390f9c78e13df9ce5b57cb9ee568"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afca842c41eb4e1cf8286e8d8e3c93814" id="r_afca842c41eb4e1cf8286e8d8e3c93814"><td class="memItemLeft" align="right" valign="top"><a id="afca842c41eb4e1cf8286e8d8e3c93814" name="afca842c41eb4e1cf8286e8d8e3c93814"></a>
const <a class="el" href="classcmf_1_1math_1_1_time.html">Time</a>&#160;</td><td class="memItemRight" valign="bottom"><b>week</b> = 7 * <a class="el" href="#a0faf04a13a24c706e148abb6d5d14ef2">day</a></td></tr>
<tr class="memdesc:afca842c41eb4e1cf8286e8d8e3c93814"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 week <br /></td></tr>
<tr class="separator:afca842c41eb4e1cf8286e8d8e3c93814"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61805d6198c0589b4751c8b3c0742bbc" id="r_a61805d6198c0589b4751c8b3c0742bbc"><td class="memItemLeft" align="right" valign="top"><a id="a61805d6198c0589b4751c8b3c0742bbc" name="a61805d6198c0589b4751c8b3c0742bbc"></a>
const <a class="el" href="classcmf_1_1math_1_1_time.html">Time</a>&#160;</td><td class="memItemRight" valign="bottom"><b>year</b> = 365 * <a class="el" href="#a0faf04a13a24c706e148abb6d5d14ef2">day</a></td></tr>
<tr class="memdesc:a61805d6198c0589b4751c8b3c0742bbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 year = 365*day <br /></td></tr>
<tr class="separator:a61805d6198c0589b4751c8b3c0742bbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="afd2ff6bb516cbeb38944d88a973d0a79" name="afd2ff6bb516cbeb38944d88a973d0a79"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd2ff6bb516cbeb38944d88a973d0a79">&#9670;&#160;</a></span>nash_sutcliffe()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double nash_sutcliffe </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcmf_1_1math_1_1timeseries.html">cmf::math::timeseries</a> &amp;</td>          <td class="paramname"><span class="paramname"><em>model</em>, </span></td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcmf_1_1math_1_1timeseries.html">cmf::math::timeseries</a> &amp;</td>          <td class="paramname"><span class="paramname"><em>observation</em></span>&#160;)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Calculates the Nash-Sutcliffe efficiency of a modeled timeseries in comparison with an observed timeseries. </p>
<p>The Nash-Sutcliffe efficiancy is defined as: </p><p class="formulaDsp">
\[ E = 1 - \frac{\sum_{t=1}^{T}(M_t - O_t)^2}{\sum_{t=1}^{T}(O_t - \overline{O})^2}\]
</p>
<p> where</p><ul>
<li>\(T\) is the number of observation time steps</li>
<li>\(M\) is the timeseries of model results matchinig O</li>
<li>\(O\) is the timeseries containing observations</li>
<li>\(\overline{O}\) is the arithmetic mean of observations </li>
</ul>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<hr class="footer"/><address class="footer"><small>
<div>&copy 2008-2017 by 
<a class="el" href="http://www.uni-giessen.de/hydro/kraft"> Philipp Kraft</a> and
<a class="el" href="http://www.uni-giessen.de/hydro"> 
Institute of Landscape Ecology and Resources Management,University of Gie&szlig;en</a>
</h3></td>
<td>Generated: Fri Jan 19 2024 16:10:56</td>
</tr></table>
</small></address>
</body>
</html>