<!-- 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&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'); $(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&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> | <a href="#func-members">Functions</a> | <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  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </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"> </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"> </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 </td><td class="memItemRight" valign="bottom"><b>get_parallel_threads</b> ()</td></tr> <tr class="memdesc:aa5f3c19d12a056dd3166538834715c23"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:afd2ff6bb516cbeb38944d88a973d0a79" id="r_afd2ff6bb516cbeb38944d88a973d0a79"><td class="memItemLeft" align="right" valign="top">double </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> &model, const <a class="el" href="classcmf_1_1math_1_1timeseries.html">cmf::math::timeseries</a> &observation)</td></tr> <tr class="memdesc:afd2ff6bb516cbeb38944d88a973d0a79"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:a9baa6672e5e2b12e68342dcb244890b3" id="r_a9baa6672e5e2b12e68342dcb244890b3"><td class="memItemLeft" align="right" valign="top"><a id="a9baa6672e5e2b12e68342dcb244890b3" name="a9baa6672e5e2b12e68342dcb244890b3"></a> int </td><td class="memItemRight" valign="bottom"><b>set_parallel_threads</b> (int numthreads)</td></tr> <tr class="memdesc:a9baa6672e5e2b12e68342dcb244890b3"><td class="mdescLeft"> </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"> </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> </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"> </td><td class="mdescRight">1 day <br /></td></tr> <tr class="separator:a0faf04a13a24c706e148abb6d5d14ef2"><td class="memSeparator" colspan="2"> </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> </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"> </td><td class="mdescRight">1 hour <br /></td></tr> <tr class="separator:aebd6a0c9bfa3d592ffea7192ae537b36"><td class="memSeparator" colspan="2"> </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> </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"> </td><td class="mdescRight">1 minute <br /></td></tr> <tr class="separator:a9bd5efcef1def41f072fd9c055e732e7"><td class="memSeparator" colspan="2"> </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> </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"> </td><td class="mdescRight">1 month = 30*day+10*h <br /></td></tr> <tr class="separator:a0a79c3e0ea12fbf5cb3a774f9e283cea"><td class="memSeparator" colspan="2"> </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> </td><td class="memItemRight" valign="bottom"><b>ms</b> = timespan(1)</td></tr> <tr class="memdesc:affa066a0e063e963859cb29f8c4e6da3"><td class="mdescLeft"> </td><td class="mdescRight">1 milli second <br /></td></tr> <tr class="separator:affa066a0e063e963859cb29f8c4e6da3"><td class="memSeparator" colspan="2"> </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> </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"> </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"> </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> </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"> </td><td class="mdescRight">1 second <br /></td></tr> <tr class="separator:abc68390f9c78e13df9ce5b57cb9ee568"><td class="memSeparator" colspan="2"> </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> </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"> </td><td class="mdescRight">1 week <br /></td></tr> <tr class="separator:afca842c41eb4e1cf8286e8d8e3c93814"><td class="memSeparator" colspan="2"> </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> </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"> </td><td class="mdescRight">1 year = 365*day <br /></td></tr> <tr class="separator:a61805d6198c0589b4751c8b3c0742bbc"><td class="memSeparator" colspan="2"> </td></tr> </table> <h2 class="groupheader">Function Documentation</h2> <a id="afd2ff6bb516cbeb38944d88a973d0a79" name="afd2ff6bb516cbeb38944d88a973d0a79"></a> <h2 class="memtitle"><span class="permalink"><a href="#afd2ff6bb516cbeb38944d88a973d0a79">◆ </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> &</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> &</td> <td class="paramname"><span class="paramname"><em>observation</em></span> )</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>© 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ßen</a> </h3></td> <td>Generated: Fri Jan 19 2024 16:10:56</td> </tr></table> </small></address> </body> </html>