diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-06-25 22:59:01 +0000 |
---|---|---|
committer | <> | 2013-09-27 11:49:28 +0000 |
commit | 8c4528713d907ee2cfd3bfcbbad272c749867f84 (patch) | |
tree | c09e2ce80f47b90c85cc720f5139089ad9c8cfff /libs/numeric/odeint/doc/html | |
download | boost-tarball-8c4528713d907ee2cfd3bfcbbad272c749867f84.tar.gz |
Imported from /home/lorry/working-area/delta_boost-tarball/boost_1_54_0.tar.bz2.boost_1_54_0baserock/morph
Diffstat (limited to 'libs/numeric/odeint/doc/html')
151 files changed, 37566 insertions, 0 deletions
diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/adams_bashforth.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/adams_bashforth.html new file mode 100644 index 000000000..a8c1c65dc --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/adams_bashforth.html @@ -0,0 +1,528 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template adams_bashforth</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_hpp.html" title="Header <boost/numeric/odeint/stepper/adams_bashforth.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_hpp.html" title="Header <boost/numeric/odeint/stepper/adams_bashforth.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_moulton_hpp.html" title="Header <boost/numeric/odeint/stepper/adams_bashforth_moulton.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_moulton_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.adams_bashforth"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template adams_bashforth</span></h2> +<p>boost::numeric::odeint::adams_bashforth — The Adams-Bashforth multistep algorithm. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_hpp.html" title="Header <boost/numeric/odeint/stepper/adams_bashforth.hpp>">boost/numeric/odeint/stepper/adams_bashforth.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="identifier">size_t</span> Steps<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">,</span> + <span class="keyword">typename</span> InitializingStepper <span class="special">=</span> <a class="link" href="runge_kutta4.html" title="Class template runge_kutta4">runge_kutta4</a><span class="special"><</span> <span class="identifier">State</span> <span class="special">,</span> <span class="identifier">Value</span> <span class="special">,</span> <span class="identifier">Deriv</span> <span class="special">,</span> <span class="identifier">Time</span> <span class="special">,</span> <span class="identifier">Algebra</span> <span class="special">,</span> <span class="identifier">Operations</span><span class="special">,</span> <span class="identifier">Resizer</span> <span class="special">></span> <span class="special">></span> +<span class="keyword">class</span> <a class="link" href="adams_bashforth.html" title="Class template adams_bashforth">adams_bashforth</a> <span class="special">:</span> + <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">algebra_stepper_base</span><span class="special"><</span> <span class="identifier">Algebra</span><span class="special">,</span> <span class="identifier">Operations</span> <span class="special">></span> +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">State</span> <a name="boost.numeric.odeint.adams_bashforth.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <a name="boost.numeric.odeint.adams_bashforth.wrapped_state_type"></a><span class="identifier">wrapped_state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Value</span> <a name="boost.numeric.odeint.adams_bashforth.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Deriv</span> <a name="boost.numeric.odeint.adams_bashforth.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">deriv_type</span> <span class="special">></span> <a name="boost.numeric.odeint.adams_bashforth.wrapped_deriv_type"></a><span class="identifier">wrapped_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Time</span> <a name="boost.numeric.odeint.adams_bashforth.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Resizer</span> <a name="boost.numeric.odeint.adams_bashforth.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_tag</span> <a name="boost.numeric.odeint.adams_bashforth.stepper_category"></a><span class="identifier">stepper_category</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">InitializingStepper</span> <a name="boost.numeric.odeint.adams_bashforth.initializing_stepper_type"></a><span class="identifier">initializing_stepper_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="algebra_stepper_base.html" title="Class template algebra_stepper_base">algebra_stepper_base</a><span class="special"><</span> <span class="identifier">Algebra</span><span class="special">,</span> <span class="identifier">Operations</span> <span class="special">></span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.adams_bashforth.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="algebra_stepper_base.html" title="Class template algebra_stepper_base">algebra_stepper_base</a><span class="special"><</span> <span class="identifier">Algebra</span><span class="special">,</span> <span class="identifier">Operations</span> <span class="special">></span><span class="special">::</span><span class="identifier">operations_type</span> <a name="boost.numeric.odeint.adams_bashforth.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> <a name="boost.numeric.odeint.adams_bashforth.order_type"></a><span class="identifier">order_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="boost.numeric.odeint.adams_bashforth.step_storage_type"></a><span class="identifier">step_storage_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="adams_bashforth.html#boost.numeric.odeint.adams_bashforthconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="adams_bashforth.html#idp19661776-bb"><span class="identifier">adams_bashforth</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="adams_bashforth.html#idp19663408-bb"><span class="identifier">adams_bashforth</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="adams_bashforth.html" title="Class template adams_bashforth">adams_bashforth</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + adams_bashforth& <a class="link" href="adams_bashforth.html#idp19664032-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="adams_bashforth.html" title="Class template adams_bashforth">adams_bashforth</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="adams_bashforth.html#idp19624000-bb">public member functions</a></span> + <span class="identifier">order_type</span> <a class="link" href="adams_bashforth.html#idp19624208-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="adams_bashforth.html#idp19625648-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="adams_bashforth.html#idp19629648-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="adams_bashforth.html#idp19632384-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="adams_bashforth.html#idp19637216-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a class="link" href="adams_bashforth.html#idp19640560-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">step_storage_type</span> <span class="special">&</span> <a class="link" href="adams_bashforth.html#idp19642464-bb"><span class="identifier">step_storage</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">step_storage_type</span> <span class="special">&</span> <a class="link" href="adams_bashforth.html#idp19643904-bb"><span class="identifier">step_storage</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ExplicitStepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="adams_bashforth.html#idp19645344-bb"><span class="identifier">initialize</span></a><span class="special">(</span><span class="identifier">ExplicitStepper</span><span class="special">,</span> <span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="adams_bashforth.html#idp19650240-bb"><span class="identifier">initialize</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="adams_bashforth.html#idp19654544-bb"><span class="identifier">reset</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="adams_bashforth.html#idp19655520-bb"><span class="identifier">is_initialized</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">initializing_stepper_type</span> <span class="special">&</span> <a class="link" href="adams_bashforth.html#idp19656976-bb"><span class="identifier">initializing_stepper</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">initializing_stepper_type</span> <span class="special">&</span> <a class="link" href="adams_bashforth.html#idp19658448-bb"><span class="identifier">initializing_stepper</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="adams_bashforth.html#idp19659904-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="adams_bashforth.html#idp19660832-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="adams_bashforth.html#idp19664784-bb">private member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="adams_bashforth.html#idp19664992-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="adams_bashforth.html#idp19668096-bb"><span class="identifier">resize_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// public data members</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">steps</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">order_type</span> <span class="identifier">order_value</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp28946928"></a><h2>Description</h2> +<p>The Adams-Bashforth method is a multi-step algorithm with configurable step number. The step number is specified as template parameter Steps and it then uses the result from the previous Steps steps. See also <a href="http://en.wikipedia.org/wiki/Linear_multistep_method" target="_top">en.wikipedia.org/wiki/Linear_multistep_method</a>. Currently, a maximum of Steps=8 is supported. The method is explicit and fulfills the Stepper concept. Step size control or continuous output are not provided.</p> +<p>This class derives from algebra_base and inherits its interface via CRTP (current recurring template pattern). For more details see <a class="link" href="algebra_stepper_base.html" title="Class template algebra_stepper_base">algebra_stepper_base</a>.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp28949008"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">size_t</span> Steps</pre> +<p>The number of steps (maximal 8). </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> State</pre> +<p>The state type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span></pre> +<p>The value type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span></pre> +<p>The type representing the time derivative of the state. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span></pre> +<p>The time representing the independent variable - the time. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span></pre> +<p>The algebra type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span></pre> +<p>The operations type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span></pre> +<p>The resizer policy type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> InitializingStepper <span class="special">=</span> <a class="link" href="runge_kutta4.html" title="Class template runge_kutta4">runge_kutta4</a><span class="special"><</span> <span class="identifier">State</span> <span class="special">,</span> <span class="identifier">Value</span> <span class="special">,</span> <span class="identifier">Deriv</span> <span class="special">,</span> <span class="identifier">Time</span> <span class="special">,</span> <span class="identifier">Algebra</span> <span class="special">,</span> <span class="identifier">Operations</span><span class="special">,</span> <span class="identifier">Resizer</span> <span class="special">></span></pre> +<p>The stepper for the first two steps. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp28967952"></a><h3> +<a name="boost.numeric.odeint.adams_bashforthconstruct-copy-destruct"></a><code class="computeroutput">adams_bashforth</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><a name="idp19661776-bb"></a><span class="identifier">adams_bashforth</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs the <code class="computeroutput"><a class="link" href="adams_bashforth.html" title="Class template adams_bashforth">adams_bashforth</a></code> class. This constructor can be used as a default constructor if the algebra has a default constructor. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"><pre class="literallayout"><a name="idp19663408-bb"></a><span class="identifier">adams_bashforth</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="adams_bashforth.html" title="Class template adams_bashforth">adams_bashforth</a> <span class="special">&</span> stepper<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout">adams_bashforth& <a name="idp19664032-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="adams_bashforth.html" title="Class template adams_bashforth">adams_bashforth</a> <span class="special">&</span> stepper<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp28981696"></a><h3> +<a name="idp19624000-bb"></a><code class="computeroutput">adams_bashforth</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp19624208-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the order of the algorithm, which is equal to the number of steps. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>order of the method. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19625648-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. It transforms the result in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19629648-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19632384-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19637216-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a name="idp19640560-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">step_storage_type</span> <span class="special">&</span> <a name="idp19642464-bb"></a><span class="identifier">step_storage</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the storage of intermediate results. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The storage of intermediate results. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">step_storage_type</span> <span class="special">&</span> <a name="idp19643904-bb"></a><span class="identifier">step_storage</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre>Returns the storage of intermediate results. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The storage of intermediate results. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ExplicitStepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">></span> + <span class="keyword">void</span> <a name="idp19645344-bb"></a><span class="identifier">initialize</span><span class="special">(</span><span class="identifier">ExplicitStepper</span> explicit_stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> + <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Initialized the stepper. Does Steps-1 steps with the explicit_stepper to fill the buffer. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">explicit_stepper</code></span></p></td> +<td><p>the stepper used to fill the buffer of previous step results </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">></span> + <span class="keyword">void</span> <a name="idp19650240-bb"></a><span class="identifier">initialize</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Initialized the stepper. Does Steps-1 steps with an internal instance of InitializingStepper to fill the buffer. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>The state x and time t are updated to the values after Steps-1 initial steps. </p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The initial value of the time, updated in this method. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The initial state of the ODE which should be solved, updated in this method. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">void</span> <a name="idp19654544-bb"></a><span class="identifier">reset</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre>Resets the internal buffer of the stepper. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">bool</span> <a name="idp19655520-bb"></a><span class="identifier">is_initialized</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns true if the stepper has been initialized. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>bool true if stepper is initialized, false otherwise </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">initializing_stepper_type</span> <span class="special">&</span> <a name="idp19656976-bb"></a><span class="identifier">initializing_stepper</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the internal initializing stepper instance. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>initializing_stepper </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">initializing_stepper_type</span> <span class="special">&</span> <a name="idp19658448-bb"></a><span class="identifier">initializing_stepper</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre>Returns the internal initializing stepper instance. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>initializing_stepper </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp19659904-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp19660832-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp29086016"></a><h3> +<a name="idp19664784-bb"></a><code class="computeroutput">adams_bashforth</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19664992-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp19668096-bb"></a><span class="identifier">resize_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_moulton_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/adams_bashforth_moulton.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/adams_bashforth_moulton.html new file mode 100644 index 000000000..7c00b8538 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/adams_bashforth_moulton.html @@ -0,0 +1,392 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template adams_bashforth_moulton</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_moulton_hpp.html" title="Header <boost/numeric/odeint/stepper/adams_bashforth_moulton.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_moulton_hpp.html" title="Header <boost/numeric/odeint/stepper/adams_bashforth_moulton.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/adams_moulton_hpp.html" title="Header <boost/numeric/odeint/stepper/adams_moulton.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_moulton_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_moulton_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/adams_moulton_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.adams_bashforth_moulton"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template adams_bashforth_moulton</span></h2> +<p>boost::numeric::odeint::adams_bashforth_moulton — The Adams-Bashforth-Moulton multistep algorithm. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_moulton_hpp.html" title="Header <boost/numeric/odeint/stepper/adams_bashforth_moulton.hpp>">boost/numeric/odeint/stepper/adams_bashforth_moulton.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="identifier">size_t</span> Steps<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton">adams_bashforth_moulton</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">State</span> <a name="boost.numeric.odeint.adams_bashforth_moulton.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <a name="boost.numeric.odeint.adams_bashforth_moulton.wrapped_state_type"></a><span class="identifier">wrapped_state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Value</span> <a name="boost.numeric.odeint.adams_bashforth_moulton.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Deriv</span> <a name="boost.numeric.odeint.adams_bashforth_moulton.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">deriv_type</span> <span class="special">></span> <a name="boost.numeric.odeint.adams_bashforth_moulton.wrapped_deriv_type"></a><span class="identifier">wrapped_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Time</span> <a name="boost.numeric.odeint.adams_bashforth_moulton.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Algebra</span> <a name="boost.numeric.odeint.adams_bashforth_moulton.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Operations</span> <a name="boost.numeric.odeint.adams_bashforth_moulton.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Resizer</span> <a name="boost.numeric.odeint.adams_bashforth_moulton.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_tag</span> <a name="boost.numeric.odeint.adams_bashforth_moulton.stepper_category"></a><span class="identifier">stepper_category</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> <a name="boost.numeric.odeint.adams_bashforth_moulton.order_type"></a><span class="identifier">order_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="adams_bashforth_moulton.html#boost.numeric.odeint.adams_bashforth_moultonconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="adams_bashforth_moulton.html#idp19710352-bb"><span class="identifier">adams_bashforth_moulton</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="adams_bashforth_moulton.html#idp19711280-bb"><span class="identifier">adams_bashforth_moulton</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="adams_bashforth_moulton.html#idp19682320-bb">public member functions</a></span> + <span class="identifier">order_type</span> <a class="link" href="adams_bashforth_moulton.html#idp19682528-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="adams_bashforth_moulton.html#idp19683968-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="adams_bashforth_moulton.html#idp19687968-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="adams_bashforth_moulton.html#idp19690704-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="adams_bashforth_moulton.html#idp19695552-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a class="link" href="adams_bashforth_moulton.html#idp19698880-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ExplicitStepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="adams_bashforth_moulton.html#idp19700784-bb"><span class="identifier">initialize</span></a><span class="special">(</span><span class="identifier">ExplicitStepper</span><span class="special">,</span> <span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="adams_bashforth_moulton.html#idp19705936-bb"><span class="identifier">initialize</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// public data members</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">steps</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">order_type</span> <span class="identifier">order_value</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp29209184"></a><h2>Description</h2> +<p>The Adams-Bashforth method is a multi-step predictor-corrector algorithm with configurable step number. The step number is specified as template parameter Steps and it then uses the result from the previous Steps steps. See also <a href="http://en.wikipedia.org/wiki/Linear_multistep_method" target="_top">en.wikipedia.org/wiki/Linear_multistep_method</a>. Currently, a maximum of Steps=8 is supported. The method is explicit and fulfills the Stepper concept. Step size control or continuous output are not provided.</p> +<p>This class derives from algebra_base and inherits its interface via CRTP (current recurring template pattern). For more details see <a class="link" href="algebra_stepper_base.html" title="Class template algebra_stepper_base">algebra_stepper_base</a>.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp29211280"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">size_t</span> Steps</pre> +<p>The number of steps (maximal 8). </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> State</pre> +<p>The state type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span></pre> +<p>The value type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span></pre> +<p>The type representing the time derivative of the state. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span></pre> +<p>The time representing the independent variable - the time. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span></pre> +<p>The algebra type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span></pre> +<p>The operations type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span></pre> +<p>The resizer policy type. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp29223632"></a><h3> +<a name="boost.numeric.odeint.adams_bashforth_moultonconstruct-copy-destruct"></a><code class="computeroutput">adams_bashforth_moulton</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><a name="idp19710352-bb"></a><span class="identifier">adams_bashforth_moulton</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre>Constructs the <code class="computeroutput"><a class="link" href="adams_bashforth.html" title="Class template adams_bashforth">adams_bashforth</a></code> class. </li> +<li class="listitem"> +<pre class="literallayout"><a name="idp19711280-bb"></a><span class="identifier">adams_bashforth_moulton</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra<span class="special">)</span><span class="special">;</span></pre>Constructs the <code class="computeroutput"><a class="link" href="adams_bashforth.html" title="Class template adams_bashforth">adams_bashforth</a></code> class. This constructor can be used as a default constructor if the algebra has a default constructor. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp29233056"></a><h3> +<a name="idp19682320-bb"></a><code class="computeroutput">adams_bashforth_moulton</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp19682528-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the order of the algorithm, which is equal to the number of steps+1. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>order of the method. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19683968-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. It transforms the result in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19687968-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19690704-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19695552-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a name="idp19698880-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ExplicitStepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">></span> + <span class="keyword">void</span> <a name="idp19700784-bb"></a><span class="identifier">initialize</span><span class="special">(</span><span class="identifier">ExplicitStepper</span> explicit_stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> + <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Initialized the stepper. Does Steps-1 steps with the explicit_stepper to fill the buffer. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>The state x and time t are updated to the values after Steps-1 initial steps. </p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">explicit_stepper</code></span></p></td> +<td><p>the stepper used to fill the buffer of previous step results </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The initial time, updated in this method. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The initial state of the ODE which should be solved, updated after in this method. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">></span> + <span class="keyword">void</span> <a name="idp19705936-bb"></a><span class="identifier">initialize</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Initialized the stepper. Does Steps-1 steps using the standard initializing stepper of the underlying <code class="computeroutput"><a class="link" href="adams_bashforth.html" title="Class template adams_bashforth">adams_bashforth</a></code> stepper. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_moulton_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_moulton_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/adams_moulton_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/adams_moulton.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/adams_moulton.html new file mode 100644 index 000000000..ce67a30fd --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/adams_moulton.html @@ -0,0 +1,143 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template adams_moulton</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/adams_moulton_hpp.html" title="Header <boost/numeric/odeint/stepper/adams_moulton.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/adams_moulton_hpp.html" title="Header <boost/numeric/odeint/stepper/adams_moulton.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/base/algebra_stepper_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/algebra_stepper_base.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/adams_moulton_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/adams_moulton_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/base/algebra_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.adams_moulton"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template adams_moulton</span></h2> +<p>boost::numeric::odeint::adams_moulton</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/adams_moulton_hpp.html" title="Header <boost/numeric/odeint/stepper/adams_moulton.hpp>">boost/numeric/odeint/stepper/adams_moulton.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="identifier">size_t</span> Steps<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="adams_moulton.html" title="Class template adams_moulton">adams_moulton</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">State</span> <a name="boost.numeric.odeint.adams_moulton.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <a name="boost.numeric.odeint.adams_moulton.wrapped_state_type"></a><span class="identifier">wrapped_state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Value</span> <a name="boost.numeric.odeint.adams_moulton.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Deriv</span> <a name="boost.numeric.odeint.adams_moulton.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">deriv_type</span> <span class="special">></span> <a name="boost.numeric.odeint.adams_moulton.wrapped_deriv_type"></a><span class="identifier">wrapped_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Time</span> <a name="boost.numeric.odeint.adams_moulton.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Algebra</span> <a name="boost.numeric.odeint.adams_moulton.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Operations</span> <a name="boost.numeric.odeint.adams_moulton.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Resizer</span> <a name="boost.numeric.odeint.adams_moulton.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_tag</span> <a name="boost.numeric.odeint.adams_moulton.stepper_category"></a><span class="identifier">stepper_category</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">adams_moulton</span><span class="special"><</span> <span class="identifier">Steps</span><span class="special">,</span> <span class="identifier">State</span><span class="special">,</span> <span class="identifier">Value</span><span class="special">,</span> <span class="identifier">Deriv</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> <span class="identifier">Algebra</span><span class="special">,</span> <span class="identifier">Operations</span><span class="special">,</span> <span class="identifier">Resizer</span> <span class="special">></span> <a name="boost.numeric.odeint.adams_moulton.stepper_type"></a><span class="identifier">stepper_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> <a name="boost.numeric.odeint.adams_moulton.order_type"></a><span class="identifier">order_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="boost.numeric.odeint.adams_moulton.step_storage_type"></a><span class="identifier">step_storage_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="adams_moulton.html#boost.numeric.odeint.adams_moultonconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="adams_moulton.html#idp19739504-bb"><span class="identifier">adams_moulton</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="adams_moulton.html#idp19739568-bb"><span class="identifier">adams_moulton</span></a><span class="special">(</span><span class="identifier">algebra_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + adams_moulton& <a class="link" href="adams_moulton.html#idp19739968-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">adams_moulton</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="adams_moulton.html#idp19722656-bb">public member functions</a></span> + <span class="identifier">order_type</span> <a class="link" href="adams_moulton.html#idp19722864-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> ABBuf<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="adams_moulton.html#idp19723664-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ABBuf</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> ABBuf<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="adams_moulton.html#idp19726768-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">ABBuf</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> + <span class="keyword">typename</span> ABBuf<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="adams_moulton.html#idp19729888-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">ABBuf</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> + <span class="keyword">typename</span> ABBuf<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="adams_moulton.html#idp19733600-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ABBuf</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a class="link" href="adams_moulton.html#idp19737328-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="adams_moulton.html#idp19738560-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="adams_moulton.html#idp19739024-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="adams_moulton.html#idp19740512-bb">private member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="adams_moulton.html#idp19740720-bb"><span class="identifier">resize_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// public data members</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">steps</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">order_type</span> <span class="identifier">order_value</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp29431392"></a><h2>Description</h2> +<div class="refsect2"> +<a name="idp29431600"></a><h3> +<a name="boost.numeric.odeint.adams_moultonconstruct-copy-destruct"></a><code class="computeroutput">adams_moulton</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><a name="idp19739504-bb"></a><span class="identifier">adams_moulton</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a name="idp19739568-bb"></a><span class="identifier">adams_moulton</span><span class="special">(</span><span class="identifier">algebra_type</span> <span class="special">&</span> algebra<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout">adams_moulton& <a name="idp19739968-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">adams_moulton</span> <span class="special">&</span> stepper<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp29440112"></a><h3> +<a name="idp19722656-bb"></a><code class="computeroutput">adams_moulton</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="identifier">order_type</span> <a name="idp19722864-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> ABBuf<span class="special">></span> + <span class="keyword">void</span> <a name="idp19723664-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">ABBuf</span> <span class="special">&</span> buf<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> ABBuf<span class="special">></span> + <span class="keyword">void</span> <a name="idp19726768-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ABBuf</span> <span class="special">&</span> buf<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> ABBuf<span class="special">></span> + <span class="keyword">void</span> <a name="idp19729888-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ABBuf</span> <span class="special">&</span> buf<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> ABBuf<span class="special">></span> + <span class="keyword">void</span> <a name="idp19733600-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ABBuf</span> <span class="special">&</span> buf<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a name="idp19737328-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp19738560-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp19739024-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp29493168"></a><h3> +<a name="idp19740512-bb"></a><code class="computeroutput">adams_moulton</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp19740720-bb"></a><span class="identifier">resize_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/adams_moulton_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/adams_moulton_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/base/algebra_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/algebra_stepper_base.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/algebra_stepper_base.html new file mode 100644 index 000000000..502692f2c --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/algebra_stepper_base.html @@ -0,0 +1,147 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template algebra_stepper_base</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/base/algebra_stepper_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/algebra_stepper_base.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/base/algebra_stepper_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/algebra_stepper_base.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/explicit_error_stepper_base.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/base/algebra_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/base/algebra_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.algebra_stepper_base"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template algebra_stepper_base</span></h2> +<p>boost::numeric::odeint::algebra_stepper_base — Base class for all steppers with algebra and operations. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/base/algebra_stepper_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/algebra_stepper_base.hpp>">boost/numeric/odeint/stepper/base/algebra_stepper_base.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Algebra<span class="special">,</span> <span class="keyword">typename</span> Operations<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="algebra_stepper_base.html" title="Class template algebra_stepper_base">algebra_stepper_base</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">Algebra</span> <a name="boost.numeric.odeint.algebra_stepper_base.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Operations</span> <a name="boost.numeric.odeint.algebra_stepper_base.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="algebra_stepper_base.html#boost.numeric.odeint.algebra_stepper_baseconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="algebra_stepper_base.html#idp19747776-bb"><span class="identifier">algebra_stepper_base</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="algebra_stepper_base.html#idp19745696-bb">public member functions</a></span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="algebra_stepper_base.html#idp19745904-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="algebra_stepper_base.html#idp19746832-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp29527072"></a><h2>Description</h2> +<p>This class serves a base class for all steppers with algebra and operations. It holds the algebra and provides access to the algebra. The operations are not instantiated, since they are static classes inside the operations class.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp29527776"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra</pre> +<p>The type of the algebra. Must fulfill the Algebra Concept, at least partially to work with the stepper. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations</pre> +<p>The type of the operations. Must fulfill the Operations Concept, at least partially to work with the stepper. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp29530528"></a><h3> +<a name="boost.numeric.odeint.algebra_stepper_baseconstruct-copy-destruct"></a><code class="computeroutput">algebra_stepper_base</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp19747776-bb"></a><span class="identifier">algebra_stepper_base</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs a <code class="computeroutput"><a class="link" href="algebra_stepper_base.html" title="Class template algebra_stepper_base">algebra_stepper_base</a></code> and creates the algebra. This constructor can be used as a default constructor if the algebra has a default constructor. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>The <code class="computeroutput"><a class="link" href="algebra_stepper_base.html" title="Class template algebra_stepper_base">algebra_stepper_base</a></code> stores and uses a copy of algebra. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp29538880"></a><h3> +<a name="idp19745696-bb"></a><code class="computeroutput">algebra_stepper_base</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp19745904-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp19746832-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/base/algebra_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/base/algebra_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag.html new file mode 100644 index 000000000..bec9934cc --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag.html @@ -0,0 +1,52 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct template base_tag</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="prev" href="dense_output_stepper_tag.html" title="Struct dense_output_stepper_tag"> +<link rel="next" href="base_tag_stepp_idp21295584.html" title="Struct base_tag<stepper_tag>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="dense_output_stepper_tag.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag_stepp_idp21295584.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.base_tag"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template base_tag</span></h2> +<p>boost::numeric::odeint::base_tag</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>">boost/numeric/odeint/stepper/stepper_categories.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> tag<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="base_tag.html" title="Struct template base_tag">base_tag</a> <span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="dense_output_stepper_tag.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag_stepp_idp21295584.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_contr_idp21299152.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_contr_idp21299152.html new file mode 100644 index 000000000..d76c0f39e --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_contr_idp21299152.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct base_tag<controlled_stepper_tag></title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="prev" href="base_tag_expli_idp21298256.html" title="Struct base_tag<explicit_error_stepper_fsal_tag>"> +<link rel="next" href="base_tag_expli_idp21300064.html" title="Struct base_tag<explicit_controlled_stepper_tag>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="base_tag_expli_idp21298256.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag_expli_idp21300064.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.base_tag_contr_idp21299152"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct base_tag<controlled_stepper_tag></span></h2> +<p>boost::numeric::odeint::base_tag<controlled_stepper_tag></p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>">boost/numeric/odeint/stepper/stepper_categories.hpp</a>> + +</span> +<span class="keyword">struct</span> <a class="link" href="base_tag_contr_idp21299152.html" title="Struct base_tag<controlled_stepper_tag>">base_tag</a><span class="special"><</span><span class="identifier">controlled_stepper_tag</span><span class="special">></span> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">controlled_stepper_tag</span> <a name="boost.numeric.odeint.base_tag_contr_idp21299152.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="base_tag_expli_idp21298256.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag_expli_idp21300064.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_dense_idp21301904.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_dense_idp21301904.html new file mode 100644 index 000000000..da44dde93 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_dense_idp21301904.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct base_tag<dense_output_stepper_tag></title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="prev" href="base_tag_expli_idp21300976.html" title="Struct base_tag<explicit_controlled_stepper_fsal_tag>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/symplectic_euler_hpp.html" title="Header <boost/numeric/odeint/stepper/symplectic_euler.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="base_tag_expli_idp21300976.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/symplectic_euler_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.base_tag_dense_idp21301904"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct base_tag<dense_output_stepper_tag></span></h2> +<p>boost::numeric::odeint::base_tag<dense_output_stepper_tag></p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>">boost/numeric/odeint/stepper/stepper_categories.hpp</a>> + +</span> +<span class="keyword">struct</span> <a class="link" href="base_tag_dense_idp21301904.html" title="Struct base_tag<dense_output_stepper_tag>">base_tag</a><span class="special"><</span><span class="identifier">dense_output_stepper_tag</span><span class="special">></span> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">dense_output_stepper_tag</span> <a name="boost.numeric.odeint.base_tag_dense_idp21301904.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="base_tag_expli_idp21300976.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/symplectic_euler_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_error_idp21296464.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_error_idp21296464.html new file mode 100644 index 000000000..1db009143 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_error_idp21296464.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct base_tag<error_stepper_tag></title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="prev" href="base_tag_stepp_idp21295584.html" title="Struct base_tag<stepper_tag>"> +<link rel="next" href="base_tag_expli_idp21297360.html" title="Struct base_tag<explicit_error_stepper_tag>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="base_tag_stepp_idp21295584.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag_expli_idp21297360.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.base_tag_error_idp21296464"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct base_tag<error_stepper_tag></span></h2> +<p>boost::numeric::odeint::base_tag<error_stepper_tag></p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>">boost/numeric/odeint/stepper/stepper_categories.hpp</a>> + +</span> +<span class="keyword">struct</span> <a class="link" href="base_tag_error_idp21296464.html" title="Struct base_tag<error_stepper_tag>">base_tag</a><span class="special"><</span><span class="identifier">error_stepper_tag</span><span class="special">></span> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_tag</span> <a name="boost.numeric.odeint.base_tag_error_idp21296464.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="base_tag_stepp_idp21295584.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag_expli_idp21297360.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_expli_idp21297360.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_expli_idp21297360.html new file mode 100644 index 000000000..068483fdb --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_expli_idp21297360.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct base_tag<explicit_error_stepper_tag></title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="prev" href="base_tag_error_idp21296464.html" title="Struct base_tag<error_stepper_tag>"> +<link rel="next" href="base_tag_expli_idp21298256.html" title="Struct base_tag<explicit_error_stepper_fsal_tag>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="base_tag_error_idp21296464.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag_expli_idp21298256.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.base_tag_expli_idp21297360"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct base_tag<explicit_error_stepper_tag></span></h2> +<p>boost::numeric::odeint::base_tag<explicit_error_stepper_tag></p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>">boost/numeric/odeint/stepper/stepper_categories.hpp</a>> + +</span> +<span class="keyword">struct</span> <a class="link" href="base_tag_expli_idp21297360.html" title="Struct base_tag<explicit_error_stepper_tag>">base_tag</a><span class="special"><</span><span class="identifier">explicit_error_stepper_tag</span><span class="special">></span> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_tag</span> <a name="boost.numeric.odeint.base_tag_expli_idp21297360.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="base_tag_error_idp21296464.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag_expli_idp21298256.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_expli_idp21298256.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_expli_idp21298256.html new file mode 100644 index 000000000..68d2ef70d --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_expli_idp21298256.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct base_tag<explicit_error_stepper_fsal_tag></title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="prev" href="base_tag_expli_idp21297360.html" title="Struct base_tag<explicit_error_stepper_tag>"> +<link rel="next" href="base_tag_contr_idp21299152.html" title="Struct base_tag<controlled_stepper_tag>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="base_tag_expli_idp21297360.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag_contr_idp21299152.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.base_tag_expli_idp21298256"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct base_tag<explicit_error_stepper_fsal_tag></span></h2> +<p>boost::numeric::odeint::base_tag<explicit_error_stepper_fsal_tag></p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>">boost/numeric/odeint/stepper/stepper_categories.hpp</a>> + +</span> +<span class="keyword">struct</span> <a class="link" href="base_tag_expli_idp21298256.html" title="Struct base_tag<explicit_error_stepper_fsal_tag>">base_tag</a><span class="special"><</span><span class="identifier">explicit_error_stepper_fsal_tag</span><span class="special">></span> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_tag</span> <a name="boost.numeric.odeint.base_tag_expli_idp21298256.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="base_tag_expli_idp21297360.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag_contr_idp21299152.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_expli_idp21300064.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_expli_idp21300064.html new file mode 100644 index 000000000..1ebdee958 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_expli_idp21300064.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct base_tag<explicit_controlled_stepper_tag></title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="prev" href="base_tag_contr_idp21299152.html" title="Struct base_tag<controlled_stepper_tag>"> +<link rel="next" href="base_tag_expli_idp21300976.html" title="Struct base_tag<explicit_controlled_stepper_fsal_tag>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="base_tag_contr_idp21299152.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag_expli_idp21300976.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.base_tag_expli_idp21300064"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct base_tag<explicit_controlled_stepper_tag></span></h2> +<p>boost::numeric::odeint::base_tag<explicit_controlled_stepper_tag></p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>">boost/numeric/odeint/stepper/stepper_categories.hpp</a>> + +</span> +<span class="keyword">struct</span> <a class="link" href="base_tag_expli_idp21300064.html" title="Struct base_tag<explicit_controlled_stepper_tag>">base_tag</a><span class="special"><</span><span class="identifier">explicit_controlled_stepper_tag</span><span class="special">></span> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">controlled_stepper_tag</span> <a name="boost.numeric.odeint.base_tag_expli_idp21300064.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="base_tag_contr_idp21299152.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag_expli_idp21300976.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_expli_idp21300976.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_expli_idp21300976.html new file mode 100644 index 000000000..430a6c1b4 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_expli_idp21300976.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct base_tag<explicit_controlled_stepper_fsal_tag></title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="prev" href="base_tag_expli_idp21300064.html" title="Struct base_tag<explicit_controlled_stepper_tag>"> +<link rel="next" href="base_tag_dense_idp21301904.html" title="Struct base_tag<dense_output_stepper_tag>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="base_tag_expli_idp21300064.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag_dense_idp21301904.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.base_tag_expli_idp21300976"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct base_tag<explicit_controlled_stepper_fsal_tag></span></h2> +<p>boost::numeric::odeint::base_tag<explicit_controlled_stepper_fsal_tag></p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>">boost/numeric/odeint/stepper/stepper_categories.hpp</a>> + +</span> +<span class="keyword">struct</span> <a class="link" href="base_tag_expli_idp21300976.html" title="Struct base_tag<explicit_controlled_stepper_fsal_tag>">base_tag</a><span class="special"><</span><span class="identifier">explicit_controlled_stepper_fsal_tag</span><span class="special">></span> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">controlled_stepper_tag</span> <a name="boost.numeric.odeint.base_tag_expli_idp21300976.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="base_tag_expli_idp21300064.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag_dense_idp21301904.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_stepp_idp21295584.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_stepp_idp21295584.html new file mode 100644 index 000000000..6f6d717bc --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/base_tag_stepp_idp21295584.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct base_tag<stepper_tag></title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="prev" href="base_tag.html" title="Struct template base_tag"> +<link rel="next" href="base_tag_error_idp21296464.html" title="Struct base_tag<error_stepper_tag>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="base_tag.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag_error_idp21296464.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.base_tag_stepp_idp21295584"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct base_tag<stepper_tag></span></h2> +<p>boost::numeric::odeint::base_tag<stepper_tag></p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>">boost/numeric/odeint/stepper/stepper_categories.hpp</a>> + +</span> +<span class="keyword">struct</span> <a class="link" href="base_tag_stepp_idp21295584.html" title="Struct base_tag<stepper_tag>">base_tag</a><span class="special"><</span><span class="identifier">stepper_tag</span><span class="special">></span> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_tag</span> <a name="boost.numeric.odeint.base_tag_stepp_idp21295584.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="base_tag.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag_error_idp21296464.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/bulirsch_stoer.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/bulirsch_stoer.html new file mode 100644 index 000000000..b71b0d3ad --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/bulirsch_stoer.html @@ -0,0 +1,463 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template bulirsch_stoer</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_hpp.html" title="Header <boost/numeric/odeint/stepper/bulirsch_stoer.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_hpp.html" title="Header <boost/numeric/odeint/stepper/bulirsch_stoer.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out_hpp.html" title="Header <boost/numeric/odeint/stepper/bulirsch_stoer_dense_out.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.bulirsch_stoer"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template bulirsch_stoer</span></h2> +<p>boost::numeric::odeint::bulirsch_stoer — The Bulirsch-Stoer algorithm. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_hpp.html" title="Header <boost/numeric/odeint/stepper/bulirsch_stoer.hpp>">boost/numeric/odeint/stepper/bulirsch_stoer.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> + <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="bulirsch_stoer.html" title="Class template bulirsch_stoer">bulirsch_stoer</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">State</span> <a name="boost.numeric.odeint.bulirsch_stoer.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Value</span> <a name="boost.numeric.odeint.bulirsch_stoer.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Deriv</span> <a name="boost.numeric.odeint.bulirsch_stoer.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Time</span> <a name="boost.numeric.odeint.bulirsch_stoer.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Algebra</span> <a name="boost.numeric.odeint.bulirsch_stoer.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Operations</span> <a name="boost.numeric.odeint.bulirsch_stoer.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Resizer</span> <a name="boost.numeric.odeint.bulirsch_stoer.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="bulirsch_stoer.html#boost.numeric.odeint.bulirsch_stoerconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="bulirsch_stoer.html#idp20123456-bb"><span class="identifier">bulirsch_stoer</span></a><span class="special">(</span><span class="identifier">value_type</span> <span class="special">=</span> <span class="number">1E</span><span class="special">-</span><span class="number">6</span><span class="special">,</span> <span class="identifier">value_type</span> <span class="special">=</span> <span class="number">1E</span><span class="special">-</span><span class="number">6</span><span class="special">,</span> <span class="identifier">value_type</span> <span class="special">=</span> <span class="number">1</span><span class="special">.</span><span class="number">0</span><span class="special">,</span> + <span class="identifier">value_type</span> <span class="special">=</span> <span class="number">1</span><span class="special">.</span><span class="number">0</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="bulirsch_stoer.html#idp20095232-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a class="link" href="bulirsch_stoer.html#idp20095440-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a class="link" href="bulirsch_stoer.html#idp20100224-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a class="link" href="bulirsch_stoer.html#idp20102976-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="identifier">controlled_step_result</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="bulirsch_stoer.html#idp20108592-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a class="link" href="bulirsch_stoer.html#idp20114512-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="bulirsch_stoer.html#idp20120928-bb"><span class="identifier">reset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="bulirsch_stoer.html#idp20121568-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="bulirsch_stoer.html#idp20127152-bb">private member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="bulirsch_stoer.html#idp20127360-bb"><span class="identifier">resize_m_dxdt</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="bulirsch_stoer.html#idp20128576-bb"><span class="identifier">resize_m_xnew</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="bulirsch_stoer.html#idp20129792-bb"><span class="identifier">resize_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a class="link" href="bulirsch_stoer.html#idp20131008-bb"><span class="identifier">try_step_v1</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="bulirsch_stoer.html#idp20133520-bb"><span class="identifier">extrapolate</span></a><span class="special">(</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">state_table_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_matrix</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">time_type</span> <a class="link" href="bulirsch_stoer.html#idp20135776-bb"><span class="identifier">calc_h_opt</span></a><span class="special">(</span><span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">value_type</span><span class="special">,</span> <span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">controlled_step_result</span> + <a class="link" href="bulirsch_stoer.html#idp20137248-bb"><span class="identifier">set_k_opt</span></a><span class="special">(</span><span class="identifier">size_t</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">inv_time_vector</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">time_vector</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="bulirsch_stoer.html#idp20139104-bb"><span class="identifier">in_convergence_window</span></a><span class="special">(</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="bulirsch_stoer.html#idp20139920-bb"><span class="identifier">should_reject</span></a><span class="special">(</span><span class="identifier">value_type</span><span class="special">,</span> <span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// public data members</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">m_k_max</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp31319888"></a><h2>Description</h2> +<p>The Bulirsch-Stoer is a controlled stepper that adjusts both step size and order of the method. The algorithm uses the modified midpoint and a polynomial extrapolation compute the solution.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp31320544"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> State</pre> +<p>The state type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span></pre> +<p>The value type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span></pre> +<p>The type representing the time derivative of the state. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span></pre> +<p>The time representing the independent variable - the time. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span></pre> +<p>The algebra type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span></pre> +<p>The operations type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span></pre> +<p>The resizer policy type. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp31331904"></a><h3> +<a name="boost.numeric.odeint.bulirsch_stoerconstruct-copy-destruct"></a><code class="computeroutput">bulirsch_stoer</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp20123456-bb"></a><span class="identifier">bulirsch_stoer</span><span class="special">(</span><span class="identifier">value_type</span> eps_abs <span class="special">=</span> <span class="number">1E</span><span class="special">-</span><span class="number">6</span><span class="special">,</span> <span class="identifier">value_type</span> eps_rel <span class="special">=</span> <span class="number">1E</span><span class="special">-</span><span class="number">6</span><span class="special">,</span> + <span class="identifier">value_type</span> factor_x <span class="special">=</span> <span class="number">1</span><span class="special">.</span><span class="number">0</span><span class="special">,</span> <span class="identifier">value_type</span> factor_dxdt <span class="special">=</span> <span class="number">1</span><span class="special">.</span><span class="number">0</span><span class="special">)</span><span class="special">;</span></pre>Constructs the <code class="computeroutput"><a class="link" href="bulirsch_stoer.html" title="Class template bulirsch_stoer">bulirsch_stoer</a></code> class, including initialization of the error bounds. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">eps_abs</code></span></p></td> +<td><p>Absolute tolerance level. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">eps_rel</code></span></p></td> +<td><p>Relative tolerance level. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">factor_dxdt</code></span></p></td> +<td><p>Factor for the weight of the derivative. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">factor_x</code></span></p></td> +<td><p>Factor for the weight of the state. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp31346032"></a><h3> +<a name="idp20095232-bb"></a><code class="computeroutput">bulirsch_stoer</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a name="idp20095440-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre>Tries to perform one step. <p>This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed. Also, the internal order of the stepper is adjusted if required.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. Updated. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time. Updated if the step is successful. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. Overwritten if the step is successful. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>success if the step was accepted, fail otherwise. </p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a name="idp20100224-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be used with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a name="idp20102976-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> + <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre>Tries to perform one step. <p>This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed. Also, the internal order of the stepper is adjusted if required.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. Updated. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of state. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time. Updated if the step is successful. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. Overwritten if the step is successful. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>success if the step was accepted, fail otherwise. </p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="identifier">controlled_step_result</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp20108592-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre>Tries to perform one step. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method is disabled if state_type=time_type to avoid ambiguity.</p></td></tr> +</table></div> +<p> +This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed. Also, the internal order of the stepper is adjusted if required.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. Updated. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>Used to store the result of the step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time. Updated if the step is successful. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>success if the step was accepted, fail otherwise. </p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a name="idp20114512-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre>Tries to perform one step. <p>This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed. Also, the internal order of the stepper is adjusted if required.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. Updated. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of state. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>Used to store the result of the step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time. Updated if the step is successful. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>success if the step was accepted, fail otherwise. </p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">void</span> <a name="idp20120928-bb"></a><span class="identifier">reset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>Resets the internal state of the stepper. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a name="idp20121568-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp31426176"></a><h3> +<a name="idp20127152-bb"></a><code class="computeroutput">bulirsch_stoer</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20127360-bb"></a><span class="identifier">resize_m_dxdt</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20128576-bb"></a><span class="identifier">resize_m_xnew</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20129792-bb"></a><span class="identifier">resize_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a name="idp20131008-bb"></a><span class="identifier">try_step_v1</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20133520-bb"></a><span class="identifier">extrapolate</span><span class="special">(</span><span class="identifier">size_t</span> k<span class="special">,</span> <span class="identifier">state_table_type</span> <span class="special">&</span> table<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">value_matrix</span> <span class="special">&</span> coeff<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> xest<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">time_type</span> <a name="idp20135776-bb"></a><span class="identifier">calc_h_opt</span><span class="special">(</span><span class="identifier">time_type</span> h<span class="special">,</span> <span class="identifier">value_type</span> error<span class="special">,</span> <span class="identifier">size_t</span> k<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">controlled_step_result</span> +<a name="idp20137248-bb"></a><span class="identifier">set_k_opt</span><span class="special">(</span><span class="identifier">size_t</span> k<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">inv_time_vector</span> <span class="special">&</span> work<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">time_vector</span> <span class="special">&</span> h_opt<span class="special">,</span> + <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">bool</span> <a name="idp20139104-bb"></a><span class="identifier">in_convergence_window</span><span class="special">(</span><span class="identifier">size_t</span> k<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">bool</span> <a name="idp20139920-bb"></a><span class="identifier">should_reject</span><span class="special">(</span><span class="identifier">value_type</span> error<span class="special">,</span> <span class="identifier">size_t</span> k<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/bulirsch_stoer_dense_out.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/bulirsch_stoer_dense_out.html new file mode 100644 index 000000000..df468517b --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/bulirsch_stoer_dense_out.html @@ -0,0 +1,509 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template bulirsch_stoer_dense_out</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out_hpp.html" title="Header <boost/numeric/odeint/stepper/bulirsch_stoer_dense_out.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out_hpp.html" title="Header <boost/numeric/odeint/stepper/bulirsch_stoer_dense_out.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.bulirsch_stoer_dense_out"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template bulirsch_stoer_dense_out</span></h2> +<p>boost::numeric::odeint::bulirsch_stoer_dense_out — The Bulirsch-Stoer algorithm. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out_hpp.html" title="Header <boost/numeric/odeint/stepper/bulirsch_stoer_dense_out.hpp>">boost/numeric/odeint/stepper/bulirsch_stoer_dense_out.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> + <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out">bulirsch_stoer_dense_out</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">State</span> <a name="boost.numeric.odeint.bulirsch_stoer_dense_out.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Value</span> <a name="boost.numeric.odeint.bulirsch_stoer_dense_out.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Deriv</span> <a name="boost.numeric.odeint.bulirsch_stoer_dense_out.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Time</span> <a name="boost.numeric.odeint.bulirsch_stoer_dense_out.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Algebra</span> <a name="boost.numeric.odeint.bulirsch_stoer_dense_out.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Operations</span> <a name="boost.numeric.odeint.bulirsch_stoer_dense_out.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Resizer</span> <a name="boost.numeric.odeint.bulirsch_stoer_dense_out.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">dense_output_stepper_tag</span> <a name="boost.numeric.odeint.bulirsch_stoer_dense_out.stepper_category"></a><span class="identifier">stepper_category</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="bulirsch_stoer_dense_out.html#boost.numeric.odeint.bulirsch_stoer_dense_outconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="bulirsch_stoer_dense_out.html#idp20175568-bb"><span class="identifier">bulirsch_stoer_dense_out</span></a><span class="special">(</span><span class="identifier">value_type</span> <span class="special">=</span> <span class="number">1E</span><span class="special">-</span><span class="number">6</span><span class="special">,</span> <span class="identifier">value_type</span> <span class="special">=</span> <span class="number">1E</span><span class="special">-</span><span class="number">6</span><span class="special">,</span> + <span class="identifier">value_type</span> <span class="special">=</span> <span class="number">1</span><span class="special">.</span><span class="number">0</span><span class="special">,</span> <span class="identifier">value_type</span> <span class="special">=</span> <span class="number">1</span><span class="special">.</span><span class="number">0</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">=</span> <span class="keyword">false</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="bulirsch_stoer_dense_out.html#idp20150576-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> DerivOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a class="link" href="bulirsch_stoer_dense_out.html#idp20150784-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">DerivOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20157808-bb"><span class="identifier">initialize</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20160800-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">></span> <span class="keyword">void</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20163392-bb"><span class="identifier">calc_state</span></a><span class="special">(</span><span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20165904-bb"><span class="identifier">current_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">time_type</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20167344-bb"><span class="identifier">current_time</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20168768-bb"><span class="identifier">previous_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">time_type</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20170208-bb"><span class="identifier">previous_time</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">time_type</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20171632-bb"><span class="identifier">current_time_step</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20173040-bb"><span class="identifier">reset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20173680-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="bulirsch_stoer_dense_out.html#idp20180032-bb">private member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> StateVector<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20180240-bb"><span class="identifier">extrapolate</span></a><span class="special">(</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">StateVector</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_matrix</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">size_t</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateVector<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20183248-bb"><span class="identifier">extrapolate_dense_out</span></a><span class="special">(</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">StateVector</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_matrix</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">size_t</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">time_type</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20185664-bb"><span class="identifier">calc_h_opt</span></a><span class="special">(</span><span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">value_type</span><span class="special">,</span> <span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20187136-bb"><span class="identifier">in_convergence_window</span></a><span class="special">(</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20187952-bb"><span class="identifier">should_reject</span></a><span class="special">(</span><span class="identifier">value_type</span><span class="special">,</span> <span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn1<span class="special">,</span> <span class="keyword">typename</span> DerivIn1<span class="special">,</span> <span class="keyword">typename</span> StateIn2<span class="special">,</span> + <span class="keyword">typename</span> DerivIn2<span class="special">></span> + <span class="identifier">value_type</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20189088-bb"><span class="identifier">prepare_dense_output</span></a><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn1</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn1</span> <span class="special">&</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">StateIn2</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn2</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20192880-bb"><span class="identifier">calculate_finite_difference</span></a><span class="special">(</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">value_type</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20195120-bb"><span class="identifier">do_interpolation</span></a><span class="special">(</span><span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20196688-bb"><span class="identifier">resize_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20197904-bb"><span class="identifier">get_current_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20198720-bb"><span class="identifier">get_current_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20199552-bb"><span class="identifier">get_old_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20200352-bb"><span class="identifier">get_old_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">deriv_type</span> <span class="special">&</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20201168-bb"><span class="identifier">get_current_deriv</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">deriv_type</span> <span class="special">&</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20201984-bb"><span class="identifier">get_current_deriv</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">deriv_type</span> <span class="special">&</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20202816-bb"><span class="identifier">get_old_deriv</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">deriv_type</span> <span class="special">&</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20203616-bb"><span class="identifier">get_old_deriv</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="bulirsch_stoer_dense_out.html#idp20204432-bb"><span class="identifier">toggle_current_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// public data members</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">m_k_max</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp31647792"></a><h2>Description</h2> +<p>The Bulirsch-Stoer is a controlled stepper that adjusts both step size and order of the method. The algorithm uses the modified midpoint and a polynomial extrapolation compute the solution. This class also provides dense output facility.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp31648496"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> State</pre> +<p>The state type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span></pre> +<p>The value type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span></pre> +<p>The type representing the time derivative of the state. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span></pre> +<p>The time representing the independent variable - the time. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span></pre> +<p>The algebra type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span></pre> +<p>The operations type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span></pre> +<p>The resizer policy type. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp31659856"></a><h3> +<a name="boost.numeric.odeint.bulirsch_stoer_dense_outconstruct-copy-destruct"></a><code class="computeroutput">bulirsch_stoer_dense_out</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp20175568-bb"></a><span class="identifier">bulirsch_stoer_dense_out</span><span class="special">(</span><span class="identifier">value_type</span> eps_abs <span class="special">=</span> <span class="number">1E</span><span class="special">-</span><span class="number">6</span><span class="special">,</span> <span class="identifier">value_type</span> eps_rel <span class="special">=</span> <span class="number">1E</span><span class="special">-</span><span class="number">6</span><span class="special">,</span> + <span class="identifier">value_type</span> factor_x <span class="special">=</span> <span class="number">1</span><span class="special">.</span><span class="number">0</span><span class="special">,</span> + <span class="identifier">value_type</span> factor_dxdt <span class="special">=</span> <span class="number">1</span><span class="special">.</span><span class="number">0</span><span class="special">,</span> + <span class="keyword">bool</span> control_interpolation <span class="special">=</span> <span class="keyword">false</span><span class="special">)</span><span class="special">;</span></pre>Constructs the <code class="computeroutput"><a class="link" href="bulirsch_stoer.html" title="Class template bulirsch_stoer">bulirsch_stoer</a></code> class, including initialization of the error bounds. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">control_interpolation</code></span></p></td> +<td><p>Set true to additionally control the error of the interpolation. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">eps_abs</code></span></p></td> +<td><p>Absolute tolerance level. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">eps_rel</code></span></p></td> +<td><p>Relative tolerance level. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">factor_dxdt</code></span></p></td> +<td><p>Factor for the weight of the derivative. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">factor_x</code></span></p></td> +<td><p>Factor for the weight of the state. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp31675984"></a><h3> +<a name="idp20150576-bb"></a><code class="computeroutput">bulirsch_stoer_dense_out</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> DerivOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a name="idp20150784-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">DerivOut</span> <span class="special">&</span> dxdt_new<span class="special">,</span> + <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre>Tries to perform one step. <p>This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed. Also, the internal order of the stepper is adjusted if required.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. Updated. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of state. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>Used to store the result of the step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time. Updated if the step is successful. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>success if the step was accepted, fail otherwise. </p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> + <span class="keyword">void</span> <a name="idp20157808-bb"></a><span class="identifier">initialize</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x0<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">time_type</span> <span class="special">&</span> t0<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">time_type</span> <span class="special">&</span> dt0<span class="special">)</span><span class="special">;</span></pre>Initializes the dense output stepper. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt0</code></span></p></td> +<td><p>The initial time step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t0</code></span></p></td> +<td><p>The initial time. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x0</code></span></p></td> +<td><p>The initial state. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span> <a name="idp20160800-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">)</span><span class="special">;</span></pre>Does one time step. This is the main method that should be used to integrate an ODE with this stepper. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>initialize has to be called before using this method to set the initial conditions x,t and the stepsize. </p></td></tr> +</table></div> +<p> + + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr></tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Pair with start and end time of the integration step. </p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">></span> <span class="keyword">void</span> <a name="idp20163392-bb"></a><span class="identifier">calc_state</span><span class="special">(</span><span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> x<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Calculates the solution at an intermediate point within the last step. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The time at which the solution should be calculated, has to be in the current time interval. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The output variable where the result is written into. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20165904-bb"></a><span class="identifier">current_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the current state of the solution. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The current state of the solution x(t). </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">time_type</span> <a name="idp20167344-bb"></a><span class="identifier">current_time</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the current time of the solution. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The current time of the solution t. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20168768-bb"></a><span class="identifier">previous_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the last state of the solution. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The last state of the solution x(t-dt). </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">time_type</span> <a name="idp20170208-bb"></a><span class="identifier">previous_time</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the last time of the solution. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The last time of the solution t-dt. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">time_type</span> <a name="idp20171632-bb"></a><span class="identifier">current_time_step</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the current step size. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The current step size. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">void</span> <a name="idp20173040-bb"></a><span class="identifier">reset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>Resets the internal state of the stepper. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a name="idp20173680-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp31750144"></a><h3> +<a name="idp20180032-bb"></a><code class="computeroutput">bulirsch_stoer_dense_out</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> StateVector<span class="special">></span> + <span class="keyword">void</span> <a name="idp20180240-bb"></a><span class="identifier">extrapolate</span><span class="special">(</span><span class="identifier">size_t</span> k<span class="special">,</span> <span class="identifier">StateVector</span> <span class="special">&</span> table<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_matrix</span> <span class="special">&</span> coeff<span class="special">,</span> + <span class="identifier">StateInOut</span> <span class="special">&</span> xest<span class="special">,</span> <span class="identifier">size_t</span> order_start_index <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateVector<span class="special">></span> + <span class="keyword">void</span> <a name="idp20183248-bb"></a><span class="identifier">extrapolate_dense_out</span><span class="special">(</span><span class="identifier">size_t</span> k<span class="special">,</span> <span class="identifier">StateVector</span> <span class="special">&</span> table<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">value_matrix</span> <span class="special">&</span> coeff<span class="special">,</span> + <span class="identifier">size_t</span> order_start_index <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">time_type</span> <a name="idp20185664-bb"></a><span class="identifier">calc_h_opt</span><span class="special">(</span><span class="identifier">time_type</span> h<span class="special">,</span> <span class="identifier">value_type</span> error<span class="special">,</span> <span class="identifier">size_t</span> k<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">bool</span> <a name="idp20187136-bb"></a><span class="identifier">in_convergence_window</span><span class="special">(</span><span class="identifier">size_t</span> k<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">bool</span> <a name="idp20187952-bb"></a><span class="identifier">should_reject</span><span class="special">(</span><span class="identifier">value_type</span> error<span class="special">,</span> <span class="identifier">size_t</span> k<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn1<span class="special">,</span> <span class="keyword">typename</span> DerivIn1<span class="special">,</span> <span class="keyword">typename</span> StateIn2<span class="special">,</span> + <span class="keyword">typename</span> DerivIn2<span class="special">></span> + <span class="identifier">value_type</span> <a name="idp20189088-bb"></a><span class="identifier">prepare_dense_output</span><span class="special">(</span><span class="keyword">int</span> k<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn1</span> <span class="special">&</span> x_start<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">DerivIn1</span> <span class="special">&</span> dxdt_start<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">StateIn2</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn2</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="keyword">void</span> <a name="idp20192880-bb"></a><span class="identifier">calculate_finite_difference</span><span class="special">(</span><span class="identifier">size_t</span> j<span class="special">,</span> <span class="identifier">size_t</span> kappa<span class="special">,</span> <span class="identifier">value_type</span> fac<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20195120-bb"></a><span class="identifier">do_interpolation</span><span class="special">(</span><span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20196688-bb"></a><span class="identifier">resize_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20197904-bb"></a><span class="identifier">get_current_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20198720-bb"></a><span class="identifier">get_current_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20199552-bb"></a><span class="identifier">get_old_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20200352-bb"></a><span class="identifier">get_old_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">deriv_type</span> <span class="special">&</span> <a name="idp20201168-bb"></a><span class="identifier">get_current_deriv</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">deriv_type</span> <span class="special">&</span> <a name="idp20201984-bb"></a><span class="identifier">get_current_deriv</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">deriv_type</span> <span class="special">&</span> <a name="idp20202816-bb"></a><span class="identifier">get_old_deriv</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">deriv_type</span> <span class="special">&</span> <a name="idp20203616-bb"></a><span class="identifier">get_old_deriv</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idp20204432-bb"></a><span class="identifier">toggle_current_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/controlled_run_idp20221056.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/controlled_run_idp20221056.html new file mode 100644 index 000000000..558f826d1 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/controlled_run_idp20221056.html @@ -0,0 +1,493 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>"> +<link rel="prev" href="controlled_runge_kutta.html" title="Class template controlled_runge_kutta"> +<link rel="next" href="controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="controlled_runge_kutta.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="controlled_run_idp20285920.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.controlled_run_idp20221056"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></h2> +<p>boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag> — Implements step size control for Runge-Kutta steppers with error estimation. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>">boost/numeric/odeint/stepper/controlled_runge_kutta.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ErrorStepper<span class="special">,</span> <span class="keyword">typename</span> ErrorChecker<span class="special">,</span> <span class="keyword">typename</span> Resizer<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>">controlled_runge_kutta</a><span class="special"><</span><span class="identifier">ErrorStepper</span><span class="special">,</span> <span class="identifier">ErrorChecker</span><span class="special">,</span> <span class="identifier">Resizer</span><span class="special">,</span> <span class="identifier">explicit_error_stepper_tag</span><span class="special">></span> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">ErrorStepper</span> <a name="boost.numeric.odeint.controlled_run_idp20221056.stepper_type"></a><span class="identifier">stepper_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">state_type</span> <a name="boost.numeric.odeint.controlled_run_idp20221056.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.controlled_run_idp20221056.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">deriv_type</span> <a name="boost.numeric.odeint.controlled_run_idp20221056.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">time_type</span> <a name="boost.numeric.odeint.controlled_run_idp20221056.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.controlled_run_idp20221056.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">operations_type</span> <a name="boost.numeric.odeint.controlled_run_idp20221056.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Resizer</span> <a name="boost.numeric.odeint.controlled_run_idp20221056.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">ErrorChecker</span> <a name="boost.numeric.odeint.controlled_run_idp20221056.error_checker_type"></a><span class="identifier">error_checker_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">explicit_controlled_stepper_tag</span> <a name="boost.numeric.odeint.controlled_run_idp20221056.stepper_category"></a><span class="identifier">stepper_category</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="controlled_run_idp20221056.html#boost.numeric.odeint.controlled_run_idp20221056construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="controlled_run_idp20221056.html#idp20277568-bb"><span class="identifier">controlled_runge_kutta</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">error_checker_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">error_checker_type</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">stepper_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="controlled_run_idp20221056.html#idp20244032-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a class="link" href="controlled_run_idp20221056.html#idp20244240-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a class="link" href="controlled_run_idp20221056.html#idp20248960-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a class="link" href="controlled_run_idp20221056.html#idp20253792-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="identifier">controlled_step_result</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="controlled_run_idp20221056.html#idp20259344-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a class="link" href="controlled_run_idp20221056.html#idp20265200-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">value_type</span> <a class="link" href="controlled_run_idp20221056.html#idp20271552-bb"><span class="identifier">last_error</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a class="link" href="controlled_run_idp20221056.html#idp20272768-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">stepper_type</span> <span class="special">&</span> <a class="link" href="controlled_run_idp20221056.html#idp20274672-bb"><span class="identifier">stepper</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> <a class="link" href="controlled_run_idp20221056.html#idp20276112-bb"><span class="identifier">stepper</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="controlled_run_idp20221056.html#idp20279504-bb">private member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a class="link" href="controlled_run_idp20221056.html#idp20279712-bb"><span class="identifier">try_step_v1</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="controlled_run_idp20221056.html#idp20282224-bb"><span class="identifier">resize_m_xerr_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="controlled_run_idp20221056.html#idp20283456-bb"><span class="identifier">resize_m_dxdt_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="controlled_run_idp20221056.html#idp20284688-bb"><span class="identifier">resize_m_xnew_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp32109840"></a><h2>Description</h2> +<p>This class implements the step size control for standard Runge-Kutta steppers with error estimation.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp32110416"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> ErrorStepper</pre> +<p>The stepper type with error estimation, has to fulfill the ErrorStepper concept. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> ErrorChecker</pre> +<p>The error checker </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer</pre> +<p>The resizer policy type. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp32114096"></a><h3> +<a name="boost.numeric.odeint.controlled_run_idp20221056construct-copy-destruct"></a><code class="computeroutput">controlled_runge_kutta</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp20277568-bb"></a><span class="identifier">controlled_runge_kutta</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">error_checker_type</span> <span class="special">&</span> error_checker <span class="special">=</span> <span class="identifier">error_checker_type</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> stepper <span class="special">=</span> <span class="identifier">stepper_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs the controlled Runge-Kutta stepper. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">error_checker</code></span></p></td> +<td><p>An instance of the error checker. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">stepper</code></span></p></td> +<td><p>An instance of the underlying stepper. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp32124240"></a><h3> +<a name="idp20244032-bb"></a><code class="computeroutput">controlled_runge_kutta</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a name="idp20244240-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre>Tries to perform one step. <p>This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. Updated. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time. Updated if the step is successful. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. Overwritten if the step is successful. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>success if the step was accepted, fail otherwise. </p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a name="idp20248960-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre>Tries to perform one step. Solves the forwarding problem and allows for using boost range as state_type. <p>This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. Updated. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time. Updated if the step is successful. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. Overwritten if the step is successful. Can be a boost range. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>success if the step was accepted, fail otherwise. </p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a name="idp20253792-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> + <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre>Tries to perform one step. <p>This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. Updated. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of state. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time. Updated if the step is successful. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. Overwritten if the step is successful. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>success if the step was accepted, fail otherwise. </p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="identifier">controlled_step_result</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp20259344-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre>Tries to perform one step. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method is disabled if state_type=time_type to avoid ambiguity.</p></td></tr> +</table></div> +<p> +This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. Updated. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>Used to store the result of the step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time. Updated if the step is successful. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>success if the step was accepted, fail otherwise. </p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a name="idp20265200-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre>Tries to perform one step. <p>This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. Updated. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of state. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>Used to store the result of the step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time. Updated if the step is successful. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>success if the step was accepted, fail otherwise. </p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">value_type</span> <a name="idp20271552-bb"></a><span class="identifier">last_error</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the error of the last step. <p>returns The last error of the step. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a name="idp20272768-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">stepper_type</span> <span class="special">&</span> <a name="idp20274672-bb"></a><span class="identifier">stepper</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre>Returns the instance of the underlying stepper. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The instance of the underlying stepper. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> <a name="idp20276112-bb"></a><span class="identifier">stepper</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the instance of the underlying stepper. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The instance of the underlying stepper. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp32218560"></a><h3> +<a name="idp20279504-bb"></a><code class="computeroutput">controlled_runge_kutta</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a name="idp20279712-bb"></a><span class="identifier">try_step_v1</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20282224-bb"></a><span class="identifier">resize_m_xerr_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20283456-bb"></a><span class="identifier">resize_m_dxdt_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20284688-bb"></a><span class="identifier">resize_m_xnew_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="controlled_runge_kutta.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="controlled_run_idp20285920.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/controlled_run_idp20285920.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/controlled_run_idp20285920.html new file mode 100644 index 000000000..597b33e14 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/controlled_run_idp20285920.html @@ -0,0 +1,566 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>"> +<link rel="prev" href="controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/controlled_step_result_hpp.html" title="Header <boost/numeric/odeint/stepper/controlled_step_result.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="controlled_run_idp20221056.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/controlled_step_result_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.controlled_run_idp20285920"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></h2> +<p>boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag> — Implements step size control for Runge-Kutta FSAL steppers with error estimation. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>">boost/numeric/odeint/stepper/controlled_runge_kutta.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ErrorStepper<span class="special">,</span> <span class="keyword">typename</span> ErrorChecker<span class="special">,</span> <span class="keyword">typename</span> Resizer<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>">controlled_runge_kutta</a><span class="special"><</span><span class="identifier">ErrorStepper</span><span class="special">,</span> <span class="identifier">ErrorChecker</span><span class="special">,</span> <span class="identifier">Resizer</span><span class="special">,</span> <span class="identifier">explicit_error_stepper_fsal_tag</span><span class="special">></span> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">ErrorStepper</span> <a name="boost.numeric.odeint.controlled_run_idp20285920.stepper_type"></a><span class="identifier">stepper_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">state_type</span> <a name="boost.numeric.odeint.controlled_run_idp20285920.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.controlled_run_idp20285920.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">deriv_type</span> <a name="boost.numeric.odeint.controlled_run_idp20285920.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">time_type</span> <a name="boost.numeric.odeint.controlled_run_idp20285920.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.controlled_run_idp20285920.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">operations_type</span> <a name="boost.numeric.odeint.controlled_run_idp20285920.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Resizer</span> <a name="boost.numeric.odeint.controlled_run_idp20285920.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">ErrorChecker</span> <a name="boost.numeric.odeint.controlled_run_idp20285920.error_checker_type"></a><span class="identifier">error_checker_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">explicit_controlled_stepper_fsal_tag</span> <a name="boost.numeric.odeint.controlled_run_idp20285920.stepper_category"></a><span class="identifier">stepper_category</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="controlled_run_idp20285920.html#boost.numeric.odeint.controlled_run_idp20285920construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="controlled_run_idp20285920.html#idp20333072-bb"><span class="identifier">controlled_runge_kutta</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">error_checker_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">error_checker_type</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">stepper_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="controlled_run_idp20285920.html#idp20292672-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a class="link" href="controlled_run_idp20285920.html#idp20292880-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a class="link" href="controlled_run_idp20285920.html#idp20297600-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="identifier">controlled_step_result</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="controlled_run_idp20285920.html#idp20302432-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a class="link" href="controlled_run_idp20285920.html#idp20308288-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">DerivInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> DerivOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a class="link" href="controlled_run_idp20285920.html#idp20313840-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">DerivOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="controlled_run_idp20285920.html#idp20320576-bb"><span class="identifier">reset</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> DerivIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="controlled_run_idp20285920.html#idp20321568-bb"><span class="identifier">initialize</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="controlled_run_idp20285920.html#idp20323440-bb"><span class="identifier">initialize</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="controlled_run_idp20285920.html#idp20326800-bb"><span class="identifier">is_initialized</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a class="link" href="controlled_run_idp20285920.html#idp20328272-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">stepper_type</span> <span class="special">&</span> <a class="link" href="controlled_run_idp20285920.html#idp20330176-bb"><span class="identifier">stepper</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> <a class="link" href="controlled_run_idp20285920.html#idp20331616-bb"><span class="identifier">stepper</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="controlled_run_idp20285920.html#idp20335008-bb">private member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="controlled_run_idp20285920.html#idp20335216-bb"><span class="identifier">resize_m_xerr_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="controlled_run_idp20285920.html#idp20336448-bb"><span class="identifier">resize_m_dxdt_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="controlled_run_idp20285920.html#idp20337680-bb"><span class="identifier">resize_m_dxdt_new_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="controlled_run_idp20285920.html#idp20338912-bb"><span class="identifier">resize_m_xnew_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a class="link" href="controlled_run_idp20285920.html#idp20340144-bb"><span class="identifier">try_step_v1</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp32372784"></a><h2>Description</h2> +<p>This class implements the step size control for FSAL Runge-Kutta steppers with error estimation.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp32373360"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> ErrorStepper</pre> +<p>The stepper type with error estimation, has to fulfill the ErrorStepper concept. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> ErrorChecker</pre> +<p>The error checker </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer</pre> +<p>The resizer policy type. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp32377040"></a><h3> +<a name="boost.numeric.odeint.controlled_run_idp20285920construct-copy-destruct"></a><code class="computeroutput">controlled_runge_kutta</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp20333072-bb"></a><span class="identifier">controlled_runge_kutta</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">error_checker_type</span> <span class="special">&</span> error_checker <span class="special">=</span> <span class="identifier">error_checker_type</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> stepper <span class="special">=</span> <span class="identifier">stepper_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs the controlled Runge-Kutta stepper. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">error_checker</code></span></p></td> +<td><p>An instance of the error checker. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">stepper</code></span></p></td> +<td><p>An instance of the underlying stepper. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp32387184"></a><h3> +<a name="idp20292672-bb"></a><code class="computeroutput">controlled_runge_kutta</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a name="idp20292880-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre>Tries to perform one step. <p>This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. Updated. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time. Updated if the step is successful. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. Overwritten if the step is successful. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>success if the step was accepted, fail otherwise. </p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a name="idp20297600-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre>Tries to perform one step. Solves the forwarding problem and allows for using boost range as state_type. <p>This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. Updated. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time. Updated if the step is successful. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. Overwritten if the step is successful. Can be a boost range. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>success if the step was accepted, fail otherwise. </p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="identifier">controlled_step_result</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp20302432-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre>Tries to perform one step. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method is disabled if state_type=time_type to avoid ambiguity.</p></td></tr> +</table></div> +<p> +This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. Updated. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>Used to store the result of the step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time. Updated if the step is successful. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>success if the step was accepted, fail otherwise. </p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a name="idp20308288-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">DerivInOut</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> + <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre>Tries to perform one step. <p>This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. Updated. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of state. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time. Updated if the step is successful. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. Overwritten if the step is successful. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>success if the step was accepted, fail otherwise. </p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> DerivOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a name="idp20313840-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt_in<span class="special">,</span> + <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">DerivOut</span> <span class="special">&</span> dxdt_out<span class="special">,</span> + <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre>Tries to perform one step. <p>This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. Updated. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>Used to store the result of the step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time. Updated if the step is successful. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>success if the step was accepted, fail otherwise. </p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">void</span> <a name="idp20320576-bb"></a><span class="identifier">reset</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre>Resets the internal state of the underlying FSAL stepper. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> DerivIn<span class="special">></span> <span class="keyword">void</span> <a name="idp20321568-bb"></a><span class="identifier">initialize</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> deriv<span class="special">)</span><span class="special">;</span></pre>Initializes the internal state storing an internal copy of the derivative. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">deriv</code></span></p></td> +<td><p>The initial derivative of the ODE. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">></span> + <span class="keyword">void</span> <a name="idp20323440-bb"></a><span class="identifier">initialize</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">)</span><span class="special">;</span></pre>Initializes the internal state storing an internal copy of the derivative. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The initial time. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The initial state of the ODE which should be solved. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">bool</span> <a name="idp20326800-bb"></a><span class="identifier">is_initialized</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns true if the stepper has been initialized, false otherwise. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>true, if the stepper has been initialized, false otherwise. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a name="idp20328272-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">stepper_type</span> <span class="special">&</span> <a name="idp20330176-bb"></a><span class="identifier">stepper</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre>Returns the instance of the underlying stepper. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The instance of the underlying stepper. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> <a name="idp20331616-bb"></a><span class="identifier">stepper</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the instance of the underlying stepper. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The instance of the underlying stepper. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp32501120"></a><h3> +<a name="idp20335008-bb"></a><code class="computeroutput">controlled_runge_kutta</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20335216-bb"></a><span class="identifier">resize_m_xerr_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20336448-bb"></a><span class="identifier">resize_m_dxdt_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20337680-bb"></a><span class="identifier">resize_m_dxdt_new_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20338912-bb"></a><span class="identifier">resize_m_xnew_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="identifier">controlled_step_result</span> + <a name="idp20340144-bb"></a><span class="identifier">try_step_v1</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="controlled_run_idp20221056.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/controlled_step_result_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/controlled_runge_kutta.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/controlled_runge_kutta.html new file mode 100644 index 000000000..60cf2d3ac --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/controlled_runge_kutta.html @@ -0,0 +1,65 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template controlled_runge_kutta</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>"> +<link rel="prev" href="default_error_checker.html" title="Class template default_error_checker"> +<link rel="next" href="controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="default_error_checker.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="controlled_run_idp20221056.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.controlled_runge_kutta"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template controlled_runge_kutta</span></h2> +<p>boost::numeric::odeint::controlled_runge_kutta</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>">boost/numeric/odeint/stepper/controlled_runge_kutta.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ErrorStepper<span class="special">,</span> + <span class="keyword">typename</span> ErrorChecker <span class="special">=</span> <a class="link" href="default_error_checker.html" title="Class template default_error_checker">default_error_checker</a><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">ErrorStepper</span><span class="special">::</span><span class="identifier">value_type</span> <span class="special">,</span><span class="keyword">typename</span> <span class="identifier">ErrorStepper</span><span class="special">::</span><span class="identifier">algebra_type</span> <span class="special">,</span><span class="keyword">typename</span> <span class="identifier">ErrorStepper</span><span class="special">::</span><span class="identifier">operations_type</span> <span class="special">></span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="keyword">typename</span> <span class="identifier">ErrorStepper</span><span class="special">::</span><span class="identifier">resizer_type</span><span class="special">,</span> + <span class="keyword">typename</span> ErrorStepperCategory <span class="special">=</span> <span class="keyword">typename</span> <span class="identifier">ErrorStepper</span><span class="special">::</span><span class="identifier">stepper_category</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="controlled_runge_kutta.html" title="Class template controlled_runge_kutta">controlled_runge_kutta</a> <span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp31975824"></a><h2>Description</h2> +<div class="refsect2"> +<a name="idp31976032"></a><h3>Specializations</h3> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"><p><a class="link" href="controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></a></p></li> +<li class="listitem"><p><a class="link" href="controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></a></p></li> +</ul></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="default_error_checker.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="controlled_run_idp20221056.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/controlled_stepper_tag.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/controlled_stepper_tag.html new file mode 100644 index 000000000..36f69f255 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/controlled_stepper_tag.html @@ -0,0 +1,52 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct controlled_stepper_tag</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="prev" href="explicit_error_idp21293008.html" title="Struct explicit_error_stepper_fsal_tag"> +<link rel="next" href="explicit_contr_idp21293728.html" title="Struct explicit_controlled_stepper_tag"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="explicit_error_idp21293008.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="explicit_contr_idp21293728.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.controlled_stepper_tag"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct controlled_stepper_tag</span></h2> +<p>boost::numeric::odeint::controlled_stepper_tag</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>">boost/numeric/odeint/stepper/stepper_categories.hpp</a>> + +</span> +<span class="keyword">struct</span> <a class="link" href="controlled_stepper_tag.html" title="Struct controlled_stepper_tag">controlled_stepper_tag</a> <span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="explicit_error_idp21293008.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="explicit_contr_idp21293728.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/default_error_checker.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/default_error_checker.html new file mode 100644 index 000000000..f56dade91 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/default_error_checker.html @@ -0,0 +1,116 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template default_error_checker</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>"> +<link rel="next" href="controlled_runge_kutta.html" title="Class template controlled_runge_kutta"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="controlled_runge_kutta.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.default_error_checker"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template default_error_checker</span></h2> +<p>boost::numeric::odeint::default_error_checker — The default error checker to be used with Runge-Kutta error steppers. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>">boost/numeric/odeint/stepper/controlled_runge_kutta.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Value<span class="special">,</span> <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="default_error_checker.html" title="Class template default_error_checker">default_error_checker</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">Value</span> <a name="boost.numeric.odeint.default_error_checker.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Algebra</span> <a name="boost.numeric.odeint.default_error_checker.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Operations</span> <a name="boost.numeric.odeint.default_error_checker.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="default_error_checker.html#boost.numeric.odeint.default_error_checkerconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="default_error_checker.html#idp20216592-bb"><span class="identifier">default_error_checker</span></a><span class="special">(</span><span class="identifier">value_type</span> <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span><span class="special">(</span><span class="number">1</span><span class="special">.</span><span class="number">0e</span><span class="special">-</span><span class="number">6</span><span class="special">)</span><span class="special">,</span> + <span class="identifier">value_type</span> <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span><span class="special">(</span><span class="number">1</span><span class="special">.</span><span class="number">0e</span><span class="special">-</span><span class="number">6</span><span class="special">)</span><span class="special">,</span> + <span class="identifier">value_type</span> <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span><span class="special">(</span><span class="number">1</span><span class="special">)</span><span class="special">,</span> + <span class="identifier">value_type</span> <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span><span class="special">(</span><span class="number">1</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="default_error_checker.html#idp20209968-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Deriv<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">></span> + <span class="identifier">value_type</span> <a class="link" href="default_error_checker.html#idp20210176-bb"><span class="identifier">error</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Deriv</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Deriv<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">></span> + <span class="identifier">value_type</span> <a class="link" href="default_error_checker.html#idp20213216-bb"><span class="identifier">error</span></a><span class="special">(</span><span class="identifier">algebra_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Deriv</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">Time</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp31916720"></a><h2>Description</h2> +<p>This class provides the default mechanism to compare the error estimates reported by Runge-Kutta error steppers with user defined error bounds. It is used by the controlled_runge_kutta steppers.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp31917392"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value</pre> +<p>The value type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span></pre> +<p>The algebra type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span></pre> +<p>The operations type. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp31922208"></a><h3> +<a name="boost.numeric.odeint.default_error_checkerconstruct-copy-destruct"></a><code class="computeroutput">default_error_checker</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><a name="idp20216592-bb"></a><span class="identifier">default_error_checker</span><span class="special">(</span><span class="identifier">value_type</span> eps_abs <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span><span class="special">(</span><span class="number">1</span><span class="special">.</span><span class="number">0e</span><span class="special">-</span><span class="number">6</span><span class="special">)</span><span class="special">,</span> + <span class="identifier">value_type</span> eps_rel <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span><span class="special">(</span><span class="number">1</span><span class="special">.</span><span class="number">0e</span><span class="special">-</span><span class="number">6</span><span class="special">)</span><span class="special">,</span> + <span class="identifier">value_type</span> a_x <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span><span class="special">(</span><span class="number">1</span><span class="special">)</span><span class="special">,</span> + <span class="identifier">value_type</span> a_dxdt <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span><span class="special">(</span><span class="number">1</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +<div class="refsect2"> +<a name="idp31938832"></a><h3> +<a name="idp20209968-bb"></a><code class="computeroutput">default_error_checker</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Deriv<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">></span> + <span class="identifier">value_type</span> <a name="idp20210176-bb"></a><span class="identifier">error</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span> x_old<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Deriv</span> <span class="special">&</span> dxdt_old<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> x_err<span class="special">,</span> + <span class="identifier">Time</span> dt<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Deriv<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">></span> + <span class="identifier">value_type</span> <a name="idp20213216-bb"></a><span class="identifier">error</span><span class="special">(</span><span class="identifier">algebra_type</span> <span class="special">&</span> algebra<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span> x_old<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">Deriv</span> <span class="special">&</span> dxdt_old<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> x_err<span class="special">,</span> <span class="identifier">Time</span> dt<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="controlled_runge_kutta.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/default_rosenb_idp20694128.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/default_rosenb_idp20694128.html new file mode 100644 index 000000000..62d2b8956 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/default_rosenb_idp20694128.html @@ -0,0 +1,115 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct template default_rosenbrock_coefficients</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html" title="Header <boost/numeric/odeint/stepper/rosenbrock4.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html" title="Header <boost/numeric/odeint/stepper/rosenbrock4.hpp>"> +<link rel="next" href="rosenbrock4.html" title="Class template rosenbrock4"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rosenbrock4.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.default_rosenb_idp20694128"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template default_rosenbrock_coefficients</span></h2> +<p>boost::numeric::odeint::default_rosenbrock_coefficients</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html" title="Header <boost/numeric/odeint/stepper/rosenbrock4.hpp>">boost/numeric/odeint/stepper/rosenbrock4.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Value<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="default_rosenb_idp20694128.html" title="Struct template default_rosenbrock_coefficients">default_rosenbrock_coefficients</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">Value</span> <a name="boost.numeric.odeint.default_rosenb_idp20694128.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> <a name="boost.numeric.odeint.default_rosenb_idp20694128.order_type"></a><span class="identifier">order_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="default_rosenb_idp20694128.html#boost.numeric.odeint.default_rosenb_idp20694128construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="default_rosenb_idp20694128.html#idp20711728-bb"><span class="identifier">default_rosenbrock_coefficients</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// public data members</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">gamma</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">d1</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">d2</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">d3</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">d4</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c2</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c3</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c4</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c21</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">a21</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c31</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c32</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">a31</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">a32</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c41</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c42</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c43</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">a41</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">a42</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">a43</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c51</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c52</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c53</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c54</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">a51</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">a52</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">a53</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">a54</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c61</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c62</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c63</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c64</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">c65</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">d21</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">d22</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">d23</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">d24</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">d25</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">d31</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">d32</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">d33</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">d34</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">d35</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">order_type</span> <span class="identifier">stepper_order</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">order_type</span> <span class="identifier">error_order</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp34525104"></a><h2>Description</h2> +<div class="refsect2"> +<a name="idp34525312"></a><h3> +<a name="boost.numeric.odeint.default_rosenb_idp20694128construct-copy-destruct"></a><code class="computeroutput">default_rosenbrock_coefficients</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><a name="idp20711728-bb"></a><span class="identifier">default_rosenbrock_coefficients</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rosenbrock4.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/dense_output_r_idp20346736.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/dense_output_r_idp20346736.html new file mode 100644 index 000000000..6d9c2f8df --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/dense_output_r_idp20346736.html @@ -0,0 +1,369 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template dense_output_runge_kutta<Stepper, stepper_tag></title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp>"> +<link rel="prev" href="dense_output_runge_kutta.html" title="Class template dense_output_runge_kutta"> +<link rel="next" href="dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="dense_output_runge_kutta.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dense_output_r_idp20378576.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.dense_output_r_idp20346736"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></h2> +<p>boost::numeric::odeint::dense_output_runge_kutta<Stepper, stepper_tag> — The class representing dense-output Runge-Kutta steppers. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp>">boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>">dense_output_runge_kutta</a><span class="special"><</span><span class="identifier">Stepper</span><span class="special">,</span> <span class="identifier">stepper_tag</span><span class="special">></span> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">Stepper</span> <a name="boost.numeric.odeint.dense_output_r_idp20346736.stepper_type"></a><span class="identifier">stepper_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">state_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20346736.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">wrapped_state_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20346736.wrapped_state_type"></a><span class="identifier">wrapped_state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20346736.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">deriv_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20346736.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">wrapped_deriv_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20346736.wrapped_deriv_type"></a><span class="identifier">wrapped_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">time_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20346736.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20346736.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">operations_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20346736.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">resizer_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20346736.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">dense_output_stepper_tag</span> <a name="boost.numeric.odeint.dense_output_r_idp20346736.stepper_category"></a><span class="identifier">stepper_category</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">dense_output_runge_kutta</span><span class="special"><</span> <span class="identifier">Stepper</span> <span class="special">></span> <a name="boost.numeric.odeint.dense_output_r_idp20346736.dense_output_stepper_type"></a><span class="identifier">dense_output_stepper_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="dense_output_r_idp20346736.html#boost.numeric.odeint.dense_output_r_idp20346736construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="dense_output_r_idp20346736.html#idp20371824-bb"><span class="identifier">dense_output_runge_kutta</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">stepper_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="dense_output_r_idp20346736.html#idp20353328-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="dense_output_r_idp20346736.html#idp20353536-bb"><span class="identifier">initialize</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span> <a class="link" href="dense_output_r_idp20346736.html#idp20356624-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">></span> <span class="keyword">void</span> <a class="link" href="dense_output_r_idp20346736.html#idp20359136-bb"><span class="identifier">calc_state</span></a><span class="special">(</span><span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="dense_output_r_idp20346736.html#idp20361632-bb"><span class="identifier">calc_state</span></a><span class="special">(</span><span class="identifier">time_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a class="link" href="dense_output_r_idp20346736.html#idp20364192-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="dense_output_r_idp20346736.html#idp20366096-bb"><span class="identifier">current_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">time_type</span> <a class="link" href="dense_output_r_idp20346736.html#idp20367536-bb"><span class="identifier">current_time</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="dense_output_r_idp20346736.html#idp20368960-bb"><span class="identifier">previous_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">time_type</span> <a class="link" href="dense_output_r_idp20346736.html#idp20370400-bb"><span class="identifier">previous_time</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="dense_output_r_idp20346736.html#idp20373072-bb">private member functions</a></span> + <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="dense_output_r_idp20346736.html#idp20373280-bb"><span class="identifier">get_current_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="dense_output_r_idp20346736.html#idp20374096-bb"><span class="identifier">get_current_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="dense_output_r_idp20346736.html#idp20374928-bb"><span class="identifier">get_old_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="dense_output_r_idp20346736.html#idp20375728-bb"><span class="identifier">get_old_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="dense_output_r_idp20346736.html#idp20376544-bb"><span class="identifier">toggle_current_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="dense_output_r_idp20346736.html#idp20377360-bb"><span class="identifier">resize_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp32651360"></a><h2>Description</h2> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>In this stepper, the initialize method has to be called before using the do_step method.</p></td></tr> +</table></div> +<p> +The dense-output functionality allows to interpolate the solution between subsequent integration points using intermediate results obtained during the computation. This version works based on a normal stepper without step-size control.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp32652352"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Stepper</pre> +<p>The stepper type of the underlying algorithm. </p> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp32653936"></a><h3> +<a name="boost.numeric.odeint.dense_output_r_idp20346736construct-copy-destruct"></a><code class="computeroutput">dense_output_runge_kutta</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp20371824-bb"></a><span class="identifier">dense_output_runge_kutta</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> stepper <span class="special">=</span> <span class="identifier">stepper_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs the dense_output_runge_kutta class. An instance of the underlying stepper can be provided. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">stepper</code></span></p></td> +<td><p>An instance of the underlying stepper. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp32661024"></a><h3> +<a name="idp20353328-bb"></a><code class="computeroutput">dense_output_runge_kutta</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> + <span class="keyword">void</span> <a name="idp20353536-bb"></a><span class="identifier">initialize</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x0<span class="special">,</span> <span class="identifier">time_type</span> t0<span class="special">,</span> <span class="identifier">time_type</span> dt0<span class="special">)</span><span class="special">;</span></pre>Initializes the stepper. Has to be called before do_step can be used to set the initial conditions and the step size. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt0</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t0</code></span></p></td> +<td><p>The initial time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x0</code></span></p></td> +<td><p>The initial state of the ODE which should be solved. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span> <a name="idp20356624-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">)</span><span class="special">;</span></pre>Does one time step. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>initialize has to be called before using this method to set the initial conditions x,t and the stepsize. </p></td></tr> +</table></div> +<p> + + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr></tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Pair with start and end time of the integration step. </p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">></span> <span class="keyword">void</span> <a name="idp20359136-bb"></a><span class="identifier">calc_state</span><span class="special">(</span><span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> x<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Calculates the solution at an intermediate point. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The time at which the solution should be calculated, has to be in the current time interval. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The output variable where the result is written into. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20361632-bb"></a><span class="identifier">calc_state</span><span class="special">(</span><span class="identifier">time_type</span> t<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateOut</span> <span class="special">&</span> x<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Calculates the solution at an intermediate point. Solves the forwarding problem. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The time at which the solution should be calculated, has to be in the current time interval. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The output variable where the result is written into, can be a boost range. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a name="idp20364192-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20366096-bb"></a><span class="identifier">current_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the current state of the solution. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The current state of the solution x(t). </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">time_type</span> <a name="idp20367536-bb"></a><span class="identifier">current_time</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the current time of the solution. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The current time of the solution t. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20368960-bb"></a><span class="identifier">previous_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the last state of the solution. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The last state of the solution x(t-dt). </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">time_type</span> <a name="idp20370400-bb"></a><span class="identifier">previous_time</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the last time of the solution. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The last time of the solution t-dt. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp32716688"></a><h3> +<a name="idp20373072-bb"></a><code class="computeroutput">dense_output_runge_kutta</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20373280-bb"></a><span class="identifier">get_current_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20374096-bb"></a><span class="identifier">get_current_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20374928-bb"></a><span class="identifier">get_old_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20375728-bb"></a><span class="identifier">get_old_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idp20376544-bb"></a><span class="identifier">toggle_current_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20377360-bb"></a><span class="identifier">resize_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="dense_output_runge_kutta.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dense_output_r_idp20378576.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/dense_output_r_idp20378576.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/dense_output_r_idp20378576.html new file mode 100644 index 000000000..643f9d658 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/dense_output_r_idp20378576.html @@ -0,0 +1,151 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp>"> +<link rel="prev" href="dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/euler_hpp.html" title="Header <boost/numeric/odeint/stepper/euler.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="dense_output_r_idp20346736.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/euler_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.dense_output_r_idp20378576"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></h2> +<p>boost::numeric::odeint::dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag> — The class representing dense-output Runge-Kutta steppers with FSAL property. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp>">boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>">dense_output_runge_kutta</a><span class="special"><</span><span class="identifier">Stepper</span><span class="special">,</span> <span class="identifier">explicit_controlled_stepper_fsal_tag</span><span class="special">></span> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">Stepper</span> <a name="boost.numeric.odeint.dense_output_r_idp20378576.controlled_stepper_type"></a><span class="identifier">controlled_stepper_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">controlled_stepper_type</span><span class="special">::</span><span class="identifier">stepper_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20378576.stepper_type"></a><span class="identifier">stepper_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">state_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20378576.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">wrapped_state_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20378576.wrapped_state_type"></a><span class="identifier">wrapped_state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20378576.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">deriv_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20378576.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">wrapped_deriv_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20378576.wrapped_deriv_type"></a><span class="identifier">wrapped_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">time_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20378576.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20378576.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">operations_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20378576.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">resizer_type</span> <a name="boost.numeric.odeint.dense_output_r_idp20378576.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">dense_output_stepper_tag</span> <a name="boost.numeric.odeint.dense_output_r_idp20378576.stepper_category"></a><span class="identifier">stepper_category</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">dense_output_runge_kutta</span><span class="special"><</span> <span class="identifier">Stepper</span> <span class="special">></span> <a name="boost.numeric.odeint.dense_output_r_idp20378576.dense_output_stepper_type"></a><span class="identifier">dense_output_stepper_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="dense_output_r_idp20378576.html#boost.numeric.odeint.dense_output_r_idp20378576construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="dense_output_r_idp20378576.html#idp20398640-bb"><span class="identifier">dense_output_runge_kutta</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">controlled_stepper_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">controlled_stepper_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="dense_output_r_idp20378576.html#idp20385664-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="dense_output_r_idp20378576.html#idp20385872-bb"><span class="identifier">initialize</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span> <a class="link" href="dense_output_r_idp20378576.html#idp20387776-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">></span> <span class="keyword">void</span> <a class="link" href="dense_output_r_idp20378576.html#idp20389024-bb"><span class="identifier">calc_state</span></a><span class="special">(</span><span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="dense_output_r_idp20378576.html#idp20390576-bb"><span class="identifier">calc_state</span></a><span class="special">(</span><span class="identifier">time_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="dense_output_r_idp20378576.html#idp20392144-bb"><span class="identifier">resize</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a class="link" href="dense_output_r_idp20378576.html#idp20393360-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="dense_output_r_idp20378576.html#idp20394592-bb"><span class="identifier">current_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">time_type</span> <a class="link" href="dense_output_r_idp20378576.html#idp20395408-bb"><span class="identifier">current_time</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="dense_output_r_idp20378576.html#idp20396208-bb"><span class="identifier">previous_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">time_type</span> <a class="link" href="dense_output_r_idp20378576.html#idp20397024-bb"><span class="identifier">previous_time</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">time_type</span> <a class="link" href="dense_output_r_idp20378576.html#idp20397824-bb"><span class="identifier">current_time_step</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="dense_output_r_idp20378576.html#idp20399216-bb">private member functions</a></span> + <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="dense_output_r_idp20378576.html#idp20399424-bb"><span class="identifier">get_current_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="dense_output_r_idp20378576.html#idp20400240-bb"><span class="identifier">get_current_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="dense_output_r_idp20378576.html#idp20401072-bb"><span class="identifier">get_old_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="dense_output_r_idp20378576.html#idp20401872-bb"><span class="identifier">get_old_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">deriv_type</span> <span class="special">&</span> <a class="link" href="dense_output_r_idp20378576.html#idp20402688-bb"><span class="identifier">get_current_deriv</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">deriv_type</span> <span class="special">&</span> <a class="link" href="dense_output_r_idp20378576.html#idp20403504-bb"><span class="identifier">get_current_deriv</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">deriv_type</span> <span class="special">&</span> <a class="link" href="dense_output_r_idp20378576.html#idp20404336-bb"><span class="identifier">get_old_deriv</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">deriv_type</span> <span class="special">&</span> <a class="link" href="dense_output_r_idp20378576.html#idp20405136-bb"><span class="identifier">get_old_deriv</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="dense_output_r_idp20378576.html#idp20405952-bb"><span class="identifier">toggle_current_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp32843376"></a><h2>Description</h2> +<p>The interface is the same as for <a class="link" href="dense_output_runge_kutta.html" title="Class template dense_output_runge_kutta">dense_output_runge_kutta< Stepper , stepper_tag ></a>. This class provides dense output functionality based on methods with step size controlled</p> +<p> +</p> +<div class="refsect2"> +<a name="idp32844576"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Stepper</pre> +<p>The stepper type of the underlying algorithm. </p> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp32846080"></a><h3> +<a name="boost.numeric.odeint.dense_output_r_idp20378576construct-copy-destruct"></a><code class="computeroutput">dense_output_runge_kutta</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><a name="idp20398640-bb"></a><span class="identifier">dense_output_runge_kutta</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">controlled_stepper_type</span> <span class="special">&</span> stepper <span class="special">=</span> <span class="identifier">controlled_stepper_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +<div class="refsect2"> +<a name="idp32851264"></a><h3> +<a name="idp20385664-bb"></a><code class="computeroutput">dense_output_runge_kutta</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> + <span class="keyword">void</span> <a name="idp20385872-bb"></a><span class="identifier">initialize</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x0<span class="special">,</span> <span class="identifier">time_type</span> t0<span class="special">,</span> <span class="identifier">time_type</span> dt0<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span> <a name="idp20387776-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">></span> <span class="keyword">void</span> <a name="idp20389024-bb"></a><span class="identifier">calc_state</span><span class="special">(</span><span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> x<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20390576-bb"></a><span class="identifier">calc_state</span><span class="special">(</span><span class="identifier">time_type</span> t<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateOut</span> <span class="special">&</span> x<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20392144-bb"></a><span class="identifier">resize</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a name="idp20393360-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20394592-bb"></a><span class="identifier">current_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">time_type</span> <a name="idp20395408-bb"></a><span class="identifier">current_time</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20396208-bb"></a><span class="identifier">previous_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">time_type</span> <a name="idp20397024-bb"></a><span class="identifier">previous_time</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">time_type</span> <a name="idp20397824-bb"></a><span class="identifier">current_time_step</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp32897600"></a><h3> +<a name="idp20399216-bb"></a><code class="computeroutput">dense_output_runge_kutta</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20399424-bb"></a><span class="identifier">get_current_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20400240-bb"></a><span class="identifier">get_current_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20401072-bb"></a><span class="identifier">get_old_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20401872-bb"></a><span class="identifier">get_old_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">deriv_type</span> <span class="special">&</span> <a name="idp20402688-bb"></a><span class="identifier">get_current_deriv</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">deriv_type</span> <span class="special">&</span> <a name="idp20403504-bb"></a><span class="identifier">get_current_deriv</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">deriv_type</span> <span class="special">&</span> <a name="idp20404336-bb"></a><span class="identifier">get_old_deriv</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">deriv_type</span> <span class="special">&</span> <a name="idp20405136-bb"></a><span class="identifier">get_old_deriv</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idp20405952-bb"></a><span class="identifier">toggle_current_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="dense_output_r_idp20346736.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/euler_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/dense_output_runge_kutta.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/dense_output_runge_kutta.html new file mode 100644 index 000000000..890a65b3b --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/dense_output_runge_kutta.html @@ -0,0 +1,63 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template dense_output_runge_kutta</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp>"> +<link rel="next" href="dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dense_output_r_idp20346736.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.dense_output_runge_kutta"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template dense_output_runge_kutta</span></h2> +<p>boost::numeric::odeint::dense_output_runge_kutta</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp>">boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> + <span class="keyword">typename</span> StepperCategory <span class="special">=</span> <span class="keyword">typename</span> <span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">stepper_category</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="dense_output_runge_kutta.html" title="Class template dense_output_runge_kutta">dense_output_runge_kutta</a> <span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp32558640"></a><h2>Description</h2> +<div class="refsect2"> +<a name="idp32558848"></a><h3>Specializations</h3> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"><p><a class="link" href="dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>">Class template dense_output_runge_kutta<Stepper, stepper_tag></a></p></li> +<li class="listitem"><p><a class="link" href="dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></a></p></li> +</ul></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dense_output_r_idp20346736.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/dense_output_stepper_tag.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/dense_output_stepper_tag.html new file mode 100644 index 000000000..4e01a8841 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/dense_output_stepper_tag.html @@ -0,0 +1,52 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct dense_output_stepper_tag</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="prev" href="explicit_contr_idp21294240.html" title="Struct explicit_controlled_stepper_fsal_tag"> +<link rel="next" href="base_tag.html" title="Struct template base_tag"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="explicit_contr_idp21294240.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.dense_output_stepper_tag"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct dense_output_stepper_tag</span></h2> +<p>boost::numeric::odeint::dense_output_stepper_tag</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>">boost/numeric/odeint/stepper/stepper_categories.hpp</a>> + +</span> +<span class="keyword">struct</span> <a class="link" href="dense_output_stepper_tag.html" title="Struct dense_output_stepper_tag">dense_output_stepper_tag</a> <span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="explicit_contr_idp21294240.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tag.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/error_stepper_tag.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/error_stepper_tag.html new file mode 100644 index 000000000..92ea440a4 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/error_stepper_tag.html @@ -0,0 +1,52 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct error_stepper_tag</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="prev" href="stepper_tag.html" title="Struct stepper_tag"> +<link rel="next" href="explicit_error_stepper_tag.html" title="Struct explicit_error_stepper_tag"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="stepper_tag.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="explicit_error_stepper_tag.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.error_stepper_tag"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct error_stepper_tag</span></h2> +<p>boost::numeric::odeint::error_stepper_tag</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>">boost/numeric/odeint/stepper/stepper_categories.hpp</a>> + +</span> +<span class="keyword">struct</span> <a class="link" href="error_stepper_tag.html" title="Struct error_stepper_tag">error_stepper_tag</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">stepper_tag</span> <span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="stepper_tag.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="explicit_error_stepper_tag.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/euler.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/euler.html new file mode 100644 index 000000000..1c55fe59d --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/euler.html @@ -0,0 +1,522 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template euler</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/euler_hpp.html" title="Header <boost/numeric/odeint/stepper/euler.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/euler_hpp.html" title="Header <boost/numeric/odeint/stepper/euler.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/explicit_error_generic_rk_hpp.html" title="Header <boost/numeric/odeint/stepper/explicit_error_generic_rk.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/euler_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/euler_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/explicit_error_generic_rk_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.euler"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template euler</span></h2> +<p>boost::numeric::odeint::euler — An implementation of the Euler method. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/euler_hpp.html" title="Header <boost/numeric/odeint/stepper/euler.hpp>">boost/numeric/odeint/stepper/euler.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> + <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="euler.html" title="Class template euler">euler</a> <span class="special">:</span> <span class="keyword">public</span> boost::numeric::odeint::explicit_stepper_base< Stepper, Order, State, Value, Deriv, Time, Algebra, Operations, Resizer > +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a><span class="special"><</span> <a class="link" href="euler.html" title="Class template euler">euler</a><span class="special"><</span> <span class="special">...</span> <span class="special">></span><span class="special">,</span><span class="special">...</span> <span class="special">></span> <a name="boost.numeric.odeint.euler.stepper_base_type"></a><span class="identifier">stepper_base_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">state_type</span> <a name="boost.numeric.odeint.euler.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.euler.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">deriv_type</span> <a name="boost.numeric.odeint.euler.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">time_type</span> <a name="boost.numeric.odeint.euler.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.euler.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">operations_type</span> <a name="boost.numeric.odeint.euler.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">resizer_type</span> <a name="boost.numeric.odeint.euler.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="euler.html#boost.numeric.odeint.eulerconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="euler.html#idp20461440-bb"><span class="identifier">euler</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="euler.html#idp20417648-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="euler.html#idp20417856-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> StateIn1<span class="special">,</span> <span class="keyword">typename</span> StateIn2<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="euler.html#idp20425376-bb"><span class="identifier">calc_state</span></a><span class="special">(</span><span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn1</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">StateIn2</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a class="link" href="euler.html#idp20430448-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="euler.html#idp20432352-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="euler.html#idp20433600-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="euler.html#idp20437600-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="euler.html#idp20440336-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="euler.html#idp20446352-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="euler.html#idp20451408-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="euler.html#idp20457680-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="euler.html#idp20459568-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="euler.html#idp20460496-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp33073664"></a><h2>Description</h2> +<p>The Euler method is a very simply solver for ordinary differential equations. This method should not be used for real applications. It is only useful for demonstration purposes. Step size control is not provided but trivial continuous output is available.</p> +<p>This class derives from <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a> and inherits its interface via CRTP (current recurring template pattern), see <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></p> +<p> +</p> +<div class="refsect2"> +<a name="idp33075568"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> State</pre> +<p>The state type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span></pre> +<p>The value type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span></pre> +<p>The type representing the time derivative of the state. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span></pre> +<p>The time representing the independent variable - the time. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span></pre> +<p>The algebra type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span></pre> +<p>The operations type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span></pre> +<p>The resizer policy type. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp33086880"></a><h3> +<a name="boost.numeric.odeint.eulerconstruct-copy-destruct"></a><code class="computeroutput">euler</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp20461440-bb"></a><span class="identifier">euler</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs the euler class. This constructor can be used as a default constructor of the algebra has a default constructor. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored inside <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code>. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp33094544"></a><h3> +<a name="idp20417648-bb"></a><code class="computeroutput">euler</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20417856-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The derivative <code class="computeroutput">dxdt</code> of <code class="computeroutput">in</code> at the time <code class="computeroutput">t</code> is passed to the method. The result is updated out of place, hence the input is in <code class="computeroutput">in</code> and the output in <code class="computeroutput">out</code>. Access to this step functionality is provided by <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code> and <code class="computeroutput">do_step_impl</code> should not be called directly. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> StateIn1<span class="special">,</span> <span class="keyword">typename</span> StateIn2<span class="special">></span> + <span class="keyword">void</span> <a name="idp20425376-bb"></a><span class="identifier">calc_state</span><span class="special">(</span><span class="identifier">StateOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn1</span> <span class="special">&</span> old_state<span class="special">,</span> + <span class="identifier">time_type</span> t_old<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn2</span> <span class="special">&</span> current_state<span class="special">,</span> + <span class="identifier">time_type</span> t_new<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>This method is used for continuous output and it calculates the state <code class="computeroutput">x</code> at a time <code class="computeroutput">t</code> from the knowledge of two states <code class="computeroutput">old_state</code> and <code class="computeroutput">current_state</code> at time points <code class="computeroutput">t_old</code> and <code class="computeroutput">t_new</code>. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a name="idp20430448-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp20432352-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of the stepper. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20433600-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. It transforms the result in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20437600-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp20440336-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. Additionally to the other method the derivative of x is also passed to this method. It is supposed to be used in the following way: <pre class="programlisting">sys( x , dxdt , t ); +stepper.do_step( sys , x , dxdt , t , dt ); +</pre> +<p>The result is updated in place in x. This method is disabled if Time and Deriv are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20446352-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. The state of the ODE is updated out-of-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20451408-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper. It is supposed to be used in the following way: <pre class="programlisting">sys( in , dxdt , t ); +stepper.do_step( sys , in , dxdt , t , out , dt ); +</pre> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a name="idp20457680-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20459568-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20460496-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/euler_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/euler_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/explicit_error_generic_rk_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_contr_idp21293728.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_contr_idp21293728.html new file mode 100644 index 000000000..4bf42b488 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_contr_idp21293728.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct explicit_controlled_stepper_tag</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="prev" href="controlled_stepper_tag.html" title="Struct controlled_stepper_tag"> +<link rel="next" href="explicit_contr_idp21294240.html" title="Struct explicit_controlled_stepper_fsal_tag"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="controlled_stepper_tag.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="explicit_contr_idp21294240.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.explicit_contr_idp21293728"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct explicit_controlled_stepper_tag</span></h2> +<p>boost::numeric::odeint::explicit_controlled_stepper_tag</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>">boost/numeric/odeint/stepper/stepper_categories.hpp</a>> + +</span> +<span class="keyword">struct</span> <a class="link" href="explicit_contr_idp21293728.html" title="Struct explicit_controlled_stepper_tag">explicit_controlled_stepper_tag</a> <span class="special">:</span> + <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">controlled_stepper_tag</span> +<span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="controlled_stepper_tag.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="explicit_contr_idp21294240.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_contr_idp21294240.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_contr_idp21294240.html new file mode 100644 index 000000000..d6cbda1df --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_contr_idp21294240.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct explicit_controlled_stepper_fsal_tag</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="prev" href="explicit_contr_idp21293728.html" title="Struct explicit_controlled_stepper_tag"> +<link rel="next" href="dense_output_stepper_tag.html" title="Struct dense_output_stepper_tag"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="explicit_contr_idp21293728.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dense_output_stepper_tag.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.explicit_contr_idp21294240"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct explicit_controlled_stepper_fsal_tag</span></h2> +<p>boost::numeric::odeint::explicit_controlled_stepper_fsal_tag</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>">boost/numeric/odeint/stepper/stepper_categories.hpp</a>> + +</span> +<span class="keyword">struct</span> <a class="link" href="explicit_contr_idp21294240.html" title="Struct explicit_controlled_stepper_fsal_tag">explicit_controlled_stepper_fsal_tag</a> <span class="special">:</span> + <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">controlled_stepper_tag</span> +<span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="explicit_contr_idp21293728.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dense_output_stepper_tag.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_error_generic_rk.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_error_generic_rk.html new file mode 100644 index 000000000..ed03da682 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_error_generic_rk.html @@ -0,0 +1,879 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template explicit_error_generic_rk</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/explicit_error_generic_rk_hpp.html" title="Header <boost/numeric/odeint/stepper/explicit_error_generic_rk.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/explicit_error_generic_rk_hpp.html" title="Header <boost/numeric/odeint/stepper/explicit_error_generic_rk.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/explicit_generic_rk_hpp.html" title="Header <boost/numeric/odeint/stepper/explicit_generic_rk.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/explicit_error_generic_rk_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/explicit_error_generic_rk_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/explicit_generic_rk_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.explicit_error_generic_rk"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template explicit_error_generic_rk</span></h2> +<p>boost::numeric::odeint::explicit_error_generic_rk — A generic implementation of explicit Runge-Kutta algorithms with error estimation. This class is as a base class for all explicit Runge-Kutta steppers with error estimation. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/explicit_error_generic_rk_hpp.html" title="Header <boost/numeric/odeint/stepper/explicit_error_generic_rk.hpp>">boost/numeric/odeint/stepper/explicit_error_generic_rk.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="identifier">size_t</span> StageCount<span class="special">,</span> <span class="identifier">size_t</span> Order<span class="special">,</span> <span class="identifier">size_t</span> StepperOrder<span class="special">,</span> + <span class="identifier">size_t</span> ErrorOrder<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk">explicit_error_generic_rk</a> <span class="special">:</span> <span class="keyword">public</span> boost::numeric::odeint::explicit_error_stepper_base< Stepper, Order, StepperOrder, ErrorOrder, State, Value, Deriv, Time, Algebra, Operations, Resizer > +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a><span class="special"><</span> <span class="special">...</span> <span class="special">></span> <a name="boost.numeric.odeint.explicit_error_generic_rk.stepper_base_type"></a><span class="identifier">stepper_base_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">state_type</span> <a name="boost.numeric.odeint.explicit_error_generic_rk.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">wrapped_state_type</span> <a name="boost.numeric.odeint.explicit_error_generic_rk.wrapped_state_type"></a><span class="identifier">wrapped_state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.explicit_error_generic_rk.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">deriv_type</span> <a name="boost.numeric.odeint.explicit_error_generic_rk.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">wrapped_deriv_type</span> <a name="boost.numeric.odeint.explicit_error_generic_rk.wrapped_deriv_type"></a><span class="identifier">wrapped_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">time_type</span> <a name="boost.numeric.odeint.explicit_error_generic_rk.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.explicit_error_generic_rk.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">operations_type</span> <a name="boost.numeric.odeint.explicit_error_generic_rk.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">resizer_type</span> <a name="boost.numeric.odeint.explicit_error_generic_rk.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="boost.numeric.odeint.explicit_error_generic_rk.rk_algorithm_type"></a><span class="identifier">rk_algorithm_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">rk_algorithm_type</span><span class="special">::</span><span class="identifier">coef_a_type</span> <a name="boost.numeric.odeint.explicit_error_generic_rk.coef_a_type"></a><span class="identifier">coef_a_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">rk_algorithm_type</span><span class="special">::</span><span class="identifier">coef_b_type</span> <a name="boost.numeric.odeint.explicit_error_generic_rk.coef_b_type"></a><span class="identifier">coef_b_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">rk_algorithm_type</span><span class="special">::</span><span class="identifier">coef_c_type</span> <a name="boost.numeric.odeint.explicit_error_generic_rk.coef_c_type"></a><span class="identifier">coef_c_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="explicit_error_generic_rk.html#boost.numeric.odeint.explicit_error_generic_rkconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="explicit_error_generic_rk.html#idp20556128-bb"><span class="identifier">explicit_error_generic_rk</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">coef_a_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">coef_b_type</span> <span class="special">&</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">coef_b_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">coef_c_type</span> <span class="special">&</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="explicit_error_generic_rk.html#idp20478912-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_generic_rk.html#idp20479120-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_generic_rk.html#idp20487712-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="explicit_error_generic_rk.html#idp20495232-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="explicit_error_generic_rk.html#idp20497120-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="explicit_error_generic_rk.html#idp20498400-bb"><span class="identifier">stepper_order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="explicit_error_generic_rk.html#idp20499680-bb"><span class="identifier">error_order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_generic_rk.html#idp20500976-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_generic_rk.html#idp20504976-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="explicit_error_generic_rk.html#idp20507712-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="explicit_error_generic_rk.html#idp20513760-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="explicit_error_generic_rk.html#idp20519264-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_generic_rk.html#idp20525824-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_generic_rk.html#idp20530688-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> Err<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="explicit_error_generic_rk.html#idp20534032-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_generic_rk.html#idp20540928-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_generic_rk.html#idp20546896-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="explicit_error_generic_rk.html#idp20554256-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="explicit_error_generic_rk.html#idp20555184-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="explicit_error_generic_rk.html#idp20560240-bb">private member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="explicit_error_generic_rk.html#idp20560448-bb"><span class="identifier">resize_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// public data members</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">stage_count</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp33440832"></a><h2>Description</h2> +<p>This class implements the explicit Runge-Kutta algorithms with error estimation in a generic way. The Butcher tableau is passed to the stepper which constructs the stepper scheme with the help of a template-metaprogramming algorithm. ToDo : Add example!</p> +<p>This class derives <a class="link" href="explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a> which provides the stepper interface.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp33442240"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">size_t</span> StageCount</pre> +<p>The number of stages of the Runge-Kutta algorithm. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">size_t</span> Order</pre> +<p>The order of a stepper if the stepper is used without error estimation. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">size_t</span> StepperOrder</pre> +<p>The order of a step if the stepper is used with error estimation. Usually Order and StepperOrder have the same value. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">size_t</span> ErrorOrder</pre> +<p>The order of the error step if the stepper is used with error estimation. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> State</pre> +<p>The type representing the state of the ODE. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span></pre> +<p>The floating point type which is used in the computations. </p> +</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span></pre></li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span></pre> +<p>The type representing the independent variable - the time - of the ODE. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span></pre> +<p>The algebra type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span></pre> +<p>The operations type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span></pre> +<p>The resizer policy type. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp33457728"></a><h3> +<a name="boost.numeric.odeint.explicit_error_generic_rkconstruct-copy-destruct"></a><code class="computeroutput">explicit_error_generic_rk</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp20556128-bb"></a><span class="identifier">explicit_error_generic_rk</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">coef_a_type</span> <span class="special">&</span> a<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">coef_b_type</span> <span class="special">&</span> b<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">coef_b_type</span> <span class="special">&</span> b2<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">coef_c_type</span> <span class="special">&</span> c<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs the explicit_error_generik_rk class with the given parameters a, b, b2 and c. See examples section for details on the coefficients. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">a</code></span></p></td> +<td><p>Triangular matrix of parameters b in the Butcher tableau. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored inside <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code>. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">b</code></span></p></td> +<td><p>Last row of the butcher tableau. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">b2</code></span></p></td> +<td><p>Parameters for lower-order evaluation to estimate the error. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">c</code></span></p></td> +<td><p>Parameters to calculate the time points in the Butcher tableau. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp33473440"></a><h3> +<a name="idp20478912-bb"></a><code class="computeroutput">explicit_error_generic_rk</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp20479120-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The derivative <code class="computeroutput">dxdt</code> of <code class="computeroutput">in</code> at the time <code class="computeroutput">t</code> is passed to the method. The result is updated out-of-place, hence the input is in <code class="computeroutput">in</code> and the output in <code class="computeroutput">out</code>. Futhermore, an estimation of the error is stored in <code class="computeroutput">xerr</code>. <code class="computeroutput">do_step_impl</code> is used by <code class="computeroutput"><a class="link" href="explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a></code>. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The result of the error estimation is written in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20487712-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The derivative <code class="computeroutput">dxdt</code> of <code class="computeroutput">in</code> at the time <code class="computeroutput">t</code> is passed to the method. The result is updated out-of-place, hence the input is in <code class="computeroutput">in</code> and the output in <code class="computeroutput">out</code>. Access to this step functionality is provided by <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code> and <code class="computeroutput">do_step_impl</code> should not be called directly. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a name="idp20495232-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp20497120-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of the stepper if it used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp20498400-bb"></a><span class="identifier">stepper_order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of a step if the stepper is used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp20499680-bb"></a><span class="identifier">error_order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of an error step if the stepper is used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20500976-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. It transforms the result in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20504976-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp20507712-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. Additionally to the other method the derivative of x is also passed to this method. It is supposed to be used in the following way: <pre class="programlisting">sys( x , dxdt , t ); +stepper.do_step( sys , x , dxdt , t , dt ); +</pre> +<p>The result is updated in place in x. This method is disabled if Time and Deriv are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp20513760-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. This method is disabled if StateIn and Time are the same type. In this case the method can not be distinguished from other <code class="computeroutput">do_step</code> variants. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp20519264-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper. It is supposed to be used in the following way: <pre class="programlisting">sys( in , dxdt , t ); +stepper.do_step( sys , in , dxdt , t , out , dt ); +</pre> +<p>This method is disabled if DerivIn and Time are of same type.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp20525824-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper and estimates the error. The state of the ODE is updated in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. x is updated by this method. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The estimation of the error is stored in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp20530688-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp20534032-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. Additionally to the other method the derivative of x is also passed to this method. It is supposed to be used in the following way: <pre class="programlisting">sys( x , dxdt , t ); +stepper.do_step( sys , x , dxdt , t , dt , xerr ); +</pre> +<p>The result is updated in place in x. This method is disabled if Time and DerivIn are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate is stored in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp20540928-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the error is estimated. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp20546896-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper and the error is estimated. It is supposed to be used in the following way: <pre class="programlisting">sys( in , dxdt , t ); +stepper.do_step( sys , in , dxdt , t , out , dt ); +</pre> +<p>This method is disabled if DerivIn and Time are of same type.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20554256-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20555184-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp33687392"></a><h3> +<a name="idp20560240-bb"></a><code class="computeroutput">explicit_error_generic_rk</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20560448-bb"></a><span class="identifier">resize_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/explicit_error_generic_rk_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/explicit_error_generic_rk_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/explicit_generic_rk_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_error_idp19750672.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_error_idp19750672.html new file mode 100644 index 000000000..1beec17b6 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_error_idp19750672.html @@ -0,0 +1,796 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template explicit_error_stepper_base</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/explicit_error_stepper_base.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/explicit_error_stepper_base.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.explicit_error_idp19750672"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template explicit_error_stepper_base</span></h2> +<p>boost::numeric::odeint::explicit_error_stepper_base — Base class for explicit steppers with error estimation. This class can used with controlled steppers for step size control. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/explicit_error_stepper_base.hpp>">boost/numeric/odeint/stepper/base/explicit_error_stepper_base.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> Order<span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> StepperOrder<span class="special">,</span> + <span class="keyword">unsigned</span> <span class="keyword">short</span> ErrorOrder<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value<span class="special">,</span> + <span class="keyword">typename</span> Deriv<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Algebra<span class="special">,</span> <span class="keyword">typename</span> Operations<span class="special">,</span> + <span class="keyword">typename</span> Resizer<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a> <span class="special">:</span> + <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">algebra_stepper_base</span><span class="special"><</span> <span class="identifier">Algebra</span><span class="special">,</span> <span class="identifier">Operations</span> <span class="special">></span> +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <a class="link" href="algebra_stepper_base.html" title="Class template algebra_stepper_base">algebra_stepper_base</a><span class="special"><</span> <span class="identifier">Algebra</span><span class="special">,</span> <span class="identifier">Operations</span> <span class="special">></span> <a name="boost.numeric.odeint.explicit_error_idp19750672.algebra_stepper_base_type"></a><span class="identifier">algebra_stepper_base_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">algebra_stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.explicit_error_idp19750672.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">State</span> <a name="boost.numeric.odeint.explicit_error_idp19750672.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Value</span> <a name="boost.numeric.odeint.explicit_error_idp19750672.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Deriv</span> <a name="boost.numeric.odeint.explicit_error_idp19750672.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Time</span> <a name="boost.numeric.odeint.explicit_error_idp19750672.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Resizer</span> <a name="boost.numeric.odeint.explicit_error_idp19750672.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Stepper</span> <a name="boost.numeric.odeint.explicit_error_idp19750672.stepper_type"></a><span class="identifier">stepper_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">explicit_error_stepper_tag</span> <a name="boost.numeric.odeint.explicit_error_idp19750672.stepper_category"></a><span class="identifier">stepper_category</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> <a name="boost.numeric.odeint.explicit_error_idp19750672.order_type"></a><span class="identifier">order_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="explicit_error_idp19750672.html#boost.numeric.odeint.explicit_error_idp19750672construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="explicit_error_idp19750672.html#idp19838608-bb"><span class="identifier">explicit_error_stepper_base</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="explicit_error_idp19750672.html#idp19777504-bb">public member functions</a></span> + <span class="identifier">order_type</span> <a class="link" href="explicit_error_idp19750672.html#idp19777712-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="explicit_error_idp19750672.html#idp19778992-bb"><span class="identifier">stepper_order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="explicit_error_idp19750672.html#idp19780272-bb"><span class="identifier">error_order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19750672.html#idp19781568-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19750672.html#idp19785568-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="explicit_error_idp19750672.html#idp19788304-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="explicit_error_idp19750672.html#idp19794352-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="explicit_error_idp19750672.html#idp19799856-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19750672.html#idp19806416-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19750672.html#idp19811280-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> Err<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="explicit_error_idp19750672.html#idp19814624-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19750672.html#idp19821520-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19750672.html#idp19827488-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="explicit_error_idp19750672.html#idp19834848-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="explicit_error_idp19750672.html#idp19836736-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="explicit_error_idp19750672.html#idp19837664-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="explicit_error_idp19750672.html#idp19840672-bb">private member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19750672.html#idp19840880-bb"><span class="identifier">do_step_v1</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19750672.html#idp19843376-bb"><span class="identifier">do_step_v5</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="explicit_error_idp19750672.html#idp19846480-bb"><span class="identifier">resize_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">stepper_type</span> <span class="special">&</span> <a class="link" href="explicit_error_idp19750672.html#idp19847696-bb"><span class="identifier">stepper</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> <a class="link" href="explicit_error_idp19750672.html#idp19848496-bb"><span class="identifier">stepper</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// public data members</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">order_type</span> <span class="identifier">order_value</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">order_type</span> <span class="identifier">stepper_order_value</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">order_type</span> <span class="identifier">error_order_value</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp29753232"></a><h2>Description</h2> +<p>This class serves as the base class for all explicit steppers with algebra and operations. In contrast to <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a> it also estimates the error and can be used in a controlled stepper to provide step size control.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This stepper provides <code class="computeroutput">do_step</code> methods with and without error estimation. It has therefore three orders, one for the order of a step if the error is not estimated. The other two orders are the orders of the step and the error step if the error estimation is performed.</p></td></tr> +</table></div> +<p> +<a class="link" href="explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a> is used as the interface in a CRTP (currently recurring template pattern). In order to work correctly the parent class needs to have a method <code class="computeroutput">do_step_impl( system , in , dxdt_in , t , out , dt , xerr )</code>. <a class="link" href="explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a> derives from <a class="link" href="algebra_stepper_base.html" title="Class template algebra_stepper_base">algebra_stepper_base</a>.</p> +<p><a class="link" href="explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a> provides several overloaded <code class="computeroutput">do_step</code> methods, see the list below. Only two of them are needed to fulfill the Error Stepper concept. The other ones are for convenience and for performance. Some of them simply update the state out-of-place, while other expect that the first derivative at <code class="computeroutput">t</code> is passed to the stepper.</p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"><p><code class="computeroutput">do_step( sys , x , t , dt )</code> - The classical <code class="computeroutput">do_step</code> method needed to fulfill the Error Stepper concept. The state is updated in-place. A type modelling a Boost.Range can be used for x.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , x , dxdt , t , dt )</code> - This method updates the state in-place, but the derivative at the point <code class="computeroutput">t</code> must be explicitly passed in <code class="computeroutput">dxdt</code>.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , in , t , out , dt )</code> - This method updates the state out-of-place, hence the result of the step is stored in <code class="computeroutput">out</code>.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , in , dxdt , t , out , dt )</code> - This method update the state out-of-place and expects that the derivative at the point <code class="computeroutput">t</code> is explicitly passed in <code class="computeroutput">dxdt</code>. It is a combination of the two <code class="computeroutput">do_step</code> methods above.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , x , t , dt , xerr )</code> - This <code class="computeroutput">do_step</code> method is needed to fulfill the Error Stepper concept. The state is updated in-place and an error estimate is calculated. A type modelling a Boost.Range can be used for x.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , x , dxdt , t , dt , xerr )</code> - This method updates the state in-place, but the derivative at the point <code class="computeroutput">t</code> must be passed in <code class="computeroutput">dxdt</code>. An error estimate is calculated.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , in , t , out , dt , xerr )</code> - This method updates the state out-of-place and estimates the error during the step.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , in , dxdt , t , out , dt , xerr )</code> - This methods updates the state out-of-place and estimates the error during the step. Furthermore, the derivative at <code class="computeroutput">t</code> must be passed in <code class="computeroutput">dxdt</code>.</p></li> +</ul></div> +<p> +</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>The system is always passed as value, which might result in poor performance if it contains data. In this case it can be used with <code class="computeroutput">boost::ref</code> or <code class="computeroutput">std::ref</code>, for example <code class="computeroutput">stepper.do_step( boost::ref( sys ) , x , t , dt );</code></p> +<p>The time <code class="computeroutput">t</code> is not advanced by the stepper. This has to done manually, or by the appropriate <code class="computeroutput">integrate</code> routines or <code class="computeroutput">iterator</code>s.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="refsect2"> +<a name="idp29770928"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Stepper</pre> +<p>The stepper on which this class should work. It is used via CRTP, hence <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code> provides the interface for the Stepper. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">unsigned</span> <span class="keyword">short</span> Order</pre> +<p>The order of a stepper if the stepper is used without error estimation. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">unsigned</span> <span class="keyword">short</span> StepperOrder</pre> +<p>The order of a step if the stepper is used with error estimation. Usually Order and StepperOrder have the same value. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">unsigned</span> <span class="keyword">short</span> ErrorOrder</pre> +<p>The order of the error step if the stepper is used with error estimation. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> State</pre> +<p>The state type for the stepper. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value</pre> +<p>The value type for the stepper. This should be a floating point type, like float, double, or a multiprecision type. It must not necessary be the value_type of the State. For example the State can be a <code class="computeroutput">vector< complex< double > ></code> in this case the Value must be double. The default value is double. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Deriv</pre> +<p>The type representing time derivatives of the state type. It is usually the same type as the state type, only if used with Boost.Units both types differ. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time</pre> +<p>The type representing the time. Usually the same type as the value type. When Boost.Units is used, this type has usually a unit. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra</pre> +<p>The algebra type which must fulfill the Algebra Concept. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations</pre> +<p>The type for the operations which must fulfill the Operations Concept. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer</pre> +<p>The resizer policy class. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp29785664"></a><h3> +<a name="boost.numeric.odeint.explicit_error_idp19750672construct-copy-destruct"></a><code class="computeroutput">explicit_error_stepper_base</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp19838608-bb"></a><span class="identifier">explicit_error_stepper_base</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs a <code class="computeroutput"><a class="link" href="explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a></code> class. This constructor can be used as a default constructor if the algebra has a default constructor. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored inside <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code>. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp29794064"></a><h3> +<a name="idp19777504-bb"></a><code class="computeroutput">explicit_error_stepper_base</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp19777712-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of the stepper if it used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp19778992-bb"></a><span class="identifier">stepper_order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of a step if the stepper is used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp19780272-bb"></a><span class="identifier">error_order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of an error step if the stepper is used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19781568-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. It transforms the result in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19785568-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp19788304-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. Additionally to the other method the derivative of x is also passed to this method. It is supposed to be used in the following way: <pre class="programlisting">sys( x , dxdt , t ); +stepper.do_step( sys , x , dxdt , t , dt ); +</pre> +<p>The result is updated in place in x. This method is disabled if Time and Deriv are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp19794352-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. This method is disabled if StateIn and Time are the same type. In this case the method can not be distinguished from other <code class="computeroutput">do_step</code> variants. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp19799856-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper. It is supposed to be used in the following way: <pre class="programlisting">sys( in , dxdt , t ); +stepper.do_step( sys , in , dxdt , t , out , dt ); +</pre> +<p>This method is disabled if DerivIn and Time are of same type.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp19806416-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper and estimates the error. The state of the ODE is updated in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. x is updated by this method. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The estimation of the error is stored in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp19811280-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp19814624-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. Additionally to the other method the derivative of x is also passed to this method. It is supposed to be used in the following way: <pre class="programlisting">sys( x , dxdt , t ); +stepper.do_step( sys , x , dxdt , t , dt , xerr ); +</pre> +<p>The result is updated in place in x. This method is disabled if Time and DerivIn are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate is stored in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp19821520-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the error is estimated. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp19827488-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper and the error is estimated. It is supposed to be used in the following way: <pre class="programlisting">sys( in , dxdt , t ); +stepper.do_step( sys , in , dxdt , t , out , dt ); +</pre> +<p>This method is disabled if DerivIn and Time are of same type.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a name="idp19834848-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp19836736-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp19837664-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp29989904"></a><h3> +<a name="idp19840672-bb"></a><code class="computeroutput">explicit_error_stepper_base</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19840880-bb"></a><span class="identifier">do_step_v1</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp19843376-bb"></a><span class="identifier">do_step_v5</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp19846480-bb"></a><span class="identifier">resize_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">stepper_type</span> <span class="special">&</span> <a name="idp19847696-bb"></a><span class="identifier">stepper</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> <a name="idp19848496-bb"></a><span class="identifier">stepper</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_error_idp19850144.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_error_idp19850144.html new file mode 100644 index 000000000..4d8a16fda --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_error_idp19850144.html @@ -0,0 +1,923 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template explicit_error_stepper_fsal_base</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/base/explicit_stepper_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/explicit_stepper_base.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/base/explicit_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.explicit_error_idp19850144"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template explicit_error_stepper_fsal_base</span></h2> +<p>boost::numeric::odeint::explicit_error_stepper_fsal_base — Base class for explicit steppers with error estimation and stepper fulfilling the FSAL (first-same-as-last) property. This class can be used with controlled steppers for step size control. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base.hpp>">boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> Order<span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> StepperOrder<span class="special">,</span> + <span class="keyword">unsigned</span> <span class="keyword">short</span> ErrorOrder<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value<span class="special">,</span> + <span class="keyword">typename</span> Deriv<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Algebra<span class="special">,</span> <span class="keyword">typename</span> Operations<span class="special">,</span> + <span class="keyword">typename</span> Resizer<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base">explicit_error_stepper_fsal_base</a> <span class="special">:</span> + <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">algebra_stepper_base</span><span class="special"><</span> <span class="identifier">Algebra</span><span class="special">,</span> <span class="identifier">Operations</span> <span class="special">></span> +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <a class="link" href="algebra_stepper_base.html" title="Class template algebra_stepper_base">algebra_stepper_base</a><span class="special"><</span> <span class="identifier">Algebra</span><span class="special">,</span> <span class="identifier">Operations</span> <span class="special">></span> <a name="boost.numeric.odeint.explicit_error_idp19850144.algebra_stepper_base_type"></a><span class="identifier">algebra_stepper_base_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">algebra_stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.explicit_error_idp19850144.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">State</span> <a name="boost.numeric.odeint.explicit_error_idp19850144.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Value</span> <a name="boost.numeric.odeint.explicit_error_idp19850144.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Deriv</span> <a name="boost.numeric.odeint.explicit_error_idp19850144.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Time</span> <a name="boost.numeric.odeint.explicit_error_idp19850144.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Resizer</span> <a name="boost.numeric.odeint.explicit_error_idp19850144.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Stepper</span> <a name="boost.numeric.odeint.explicit_error_idp19850144.stepper_type"></a><span class="identifier">stepper_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">explicit_error_stepper_fsal_tag</span> <a name="boost.numeric.odeint.explicit_error_idp19850144.stepper_category"></a><span class="identifier">stepper_category</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> <a name="boost.numeric.odeint.explicit_error_idp19850144.order_type"></a><span class="identifier">order_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="explicit_error_idp19850144.html#boost.numeric.odeint.explicit_error_idp19850144construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="explicit_error_idp19850144.html#idp19953264-bb"><span class="identifier">explicit_error_stepper_fsal_base</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="explicit_error_idp19850144.html#idp19878640-bb">public member functions</a></span> + <span class="identifier">order_type</span> <a class="link" href="explicit_error_idp19850144.html#idp19878848-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="explicit_error_idp19850144.html#idp19880128-bb"><span class="identifier">stepper_order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="explicit_error_idp19850144.html#idp19881408-bb"><span class="identifier">error_order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19850144.html#idp19882704-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19850144.html#idp19886960-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivInOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateInOut</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="explicit_error_idp19850144.html#idp19889696-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">DerivInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="explicit_error_idp19850144.html#idp19896384-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> DerivOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19850144.html#idp19902080-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">DerivOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19850144.html#idp19909600-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19850144.html#idp19914720-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivInOut<span class="special">,</span> + <span class="keyword">typename</span> Err<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateInOut</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="explicit_error_idp19850144.html#idp19918064-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">DerivInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19850144.html#idp19925680-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> DerivOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19850144.html#idp19931840-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">DerivOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="explicit_error_idp19850144.html#idp19939968-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19850144.html#idp19941856-bb"><span class="identifier">reset</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> DerivIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="explicit_error_idp19850144.html#idp19943152-bb"><span class="identifier">initialize</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19850144.html#idp19945936-bb"><span class="identifier">initialize</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="explicit_error_idp19850144.html#idp19949760-bb"><span class="identifier">is_initialized</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="explicit_error_idp19850144.html#idp19951392-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="explicit_error_idp19850144.html#idp19952320-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="explicit_error_idp19850144.html#idp19954944-bb">private member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19850144.html#idp19955152-bb"><span class="identifier">do_step_v1</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_error_idp19850144.html#idp19957648-bb"><span class="identifier">do_step_v5</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="explicit_error_idp19850144.html#idp19960752-bb"><span class="identifier">resize_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">stepper_type</span> <span class="special">&</span> <a class="link" href="explicit_error_idp19850144.html#idp19961968-bb"><span class="identifier">stepper</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> <a class="link" href="explicit_error_idp19850144.html#idp19962768-bb"><span class="identifier">stepper</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// public data members</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">order_type</span> <span class="identifier">order_value</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">order_type</span> <span class="identifier">stepper_order_value</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">order_type</span> <span class="identifier">error_order_value</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp30234336"></a><h2>Description</h2> +<p>This class serves as the base class for all explicit steppers with algebra and operations and which fulfill the FSAL property. In contrast to <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a> it also estimates the error and can be used in a controlled stepper to provide step size control.</p> +<p>The FSAL property means that the derivative of the system at t+dt is already used in the current step going from t to t +dt. Therefore, some more do_steps method can be introduced and the controlled steppers can explicitly make use of this property.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This stepper provides <code class="computeroutput">do_step</code> methods with and without error estimation. It has therefore three orders, one for the order of a step if the error is not estimated. The other two orders are the orders of the step and the error step if the error estimation is performed.</p></td></tr> +</table></div> +<p> +<a class="link" href="explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base">explicit_error_stepper_fsal_base</a> is used as the interface in a CRTP (currently recurring template pattern). In order to work correctly the parent class needs to have a method <code class="computeroutput">do_step_impl( system , in , dxdt_in , t , out , dxdt_out , dt , xerr )</code>. <a class="link" href="explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base">explicit_error_stepper_fsal_base</a> derives from <a class="link" href="algebra_stepper_base.html" title="Class template algebra_stepper_base">algebra_stepper_base</a>.</p> +<p>This class can have an intrinsic state depending on the explicit usage of the <code class="computeroutput">do_step</code> method. This means that some <code class="computeroutput">do_step</code> methods are expected to be called in order. For example the <code class="computeroutput">do_step( sys , x , t , dt , xerr )</code> will keep track of the derivative of <code class="computeroutput">x</code> which is the internal state. The first call of this method is recognized such that one does not explicitly initialize the internal state, so it is safe to use this method like</p> +<pre class="programlisting"><span class="identifier">stepper_type</span> <span class="identifier">stepper</span><span class="special">;</span> +<span class="identifier">stepper</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">,</span> <span class="identifier">xerr</span> <span class="special">)</span><span class="special">;</span> +<span class="identifier">stepper</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">,</span> <span class="identifier">xerr</span> <span class="special">)</span><span class="special">;</span> +<span class="identifier">stepper</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">,</span> <span class="identifier">xerr</span> <span class="special">)</span><span class="special">;</span> +</pre> +<p>But it is unsafe to call this method with different system functions after each other. Do do so, one must initialize the internal state with the <code class="computeroutput">initialize</code> method or reset the internal state with the <code class="computeroutput">reset</code> method.</p> +<p><a class="link" href="explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base">explicit_error_stepper_fsal_base</a> provides several overloaded <code class="computeroutput">do_step</code> methods, see the list below. Only two of them are needed to fulfill the Error Stepper concept. The other ones are for convenience and for better performance. Some of them simply update the state out-of-place, while other expect that the first derivative at <code class="computeroutput">t</code> is passed to the stepper.</p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"><p><code class="computeroutput">do_step( sys , x , t , dt )</code> - The classical <code class="computeroutput">do_step</code> method needed to fulfill the Error Stepper concept. The state is updated in-place. A type modelling a Boost.Range can be used for x.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , x , dxdt , t , dt )</code> - This method updates the state x and the derivative dxdt in-place. It is expected that dxdt has the value of the derivative of x at time t.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , in , t , out , dt )</code> - This method updates the state out-of-place, hence the result of the step is stored in <code class="computeroutput">out</code>.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , in , dxdt_in , t , out , dxdt_out , dt )</code> - This method updates the state and the derivative out-of-place. It expects that the derivative at the point <code class="computeroutput">t</code> is explicitly passed in <code class="computeroutput">dxdt_in</code>.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , x , t , dt , xerr )</code> - This <code class="computeroutput">do_step</code> method is needed to fulfill the Error Stepper concept. The state is updated in-place and an error estimate is calculated. A type modelling a Boost.Range can be used for x.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , x , dxdt , t , dt , xerr )</code> - This method updates the state and the derivative in-place. It is assumed that the dxdt has the value of the derivative of x at time t. An error estimate is calculated.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , in , t , out , dt , xerr )</code> - This method updates the state out-of-place and estimates the error during the step.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , in , dxdt_in , t , out , dxdt_out , dt , xerr )</code> - This methods updates the state and the derivative out-of-place and estimates the error during the step. It is assumed the dxdt_in is derivative of in at time t.</p></li> +</ul></div> +<p> +</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>The system is always passed as value, which might result in poor performance if it contains data. In this case it can be used with <code class="computeroutput">boost::ref</code> or <code class="computeroutput">std::ref</code>, for example <code class="computeroutput">stepper.do_step( boost::ref( sys ) , x , t , dt );</code></p> +<p>The time <code class="computeroutput">t</code> is not advanced by the stepper. This has to done manually, or by the appropriate <code class="computeroutput">integrate</code> routines or <code class="computeroutput">iterator</code>s.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="refsect2"> +<a name="idp30268016"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Stepper</pre> +<p>The stepper on which this class should work. It is used via CRTP, hence <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code> provides the interface for the Stepper. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">unsigned</span> <span class="keyword">short</span> Order</pre> +<p>The order of a stepper if the stepper is used without error estimation. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">unsigned</span> <span class="keyword">short</span> StepperOrder</pre> +<p>The order of a step if the stepper is used with error estimation. Usually Order and StepperOrder have the same value. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">unsigned</span> <span class="keyword">short</span> ErrorOrder</pre> +<p>The order of the error step if the stepper is used with error estimation. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> State</pre> +<p>The state type for the stepper. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value</pre> +<p>The value type for the stepper. This should be a floating point type, like float, double, or a multiprecision type. It must not necessary be the value_type of the State. For example the State can be a <code class="computeroutput">vector< complex< double > ></code> in this case the Value must be double. The default value is double. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Deriv</pre> +<p>The type representing time derivatives of the state type. It is usually the same type as the state type, only if used with Boost.Units both types differ. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time</pre> +<p>The type representing the time. Usually the same type as the value type. When Boost.Units is used, this type has usually a unit. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra</pre> +<p>The algebra type which must fulfill the Algebra Concept. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations</pre> +<p>The type for the operations which must fulfill the Operations Concept. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer</pre> +<p>The resizer policy class. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp30282752"></a><h3> +<a name="boost.numeric.odeint.explicit_error_idp19850144construct-copy-destruct"></a><code class="computeroutput">explicit_error_stepper_fsal_base</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp19953264-bb"></a><span class="identifier">explicit_error_stepper_fsal_base</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs a explicit_stepper_fsal_base class. This constructor can be used as a default constructor if the algebra has a default constructor. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored inside <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code>. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp30290528"></a><h3> +<a name="idp19878640-bb"></a><code class="computeroutput">explicit_error_stepper_fsal_base</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp19878848-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of the stepper if it used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp19880128-bb"></a><span class="identifier">stepper_order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of a step if the stepper is used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp19881408-bb"></a><span class="identifier">error_order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of an error step if the stepper is used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19882704-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. It transforms the result in-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method uses the internal state of the stepper.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19886960-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivInOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateInOut</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp19889696-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">DerivInOut</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. Additionally to the other methods the derivative of x is also passed to this method. Therefore, dxdt must be evaluated initially: <pre class="programlisting">ode( x , dxdt , t ); +for( ... ) +{ + stepper.do_step( ode , x , dxdt , t , dt ); + t += dt; +} +</pre> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does NOT use the initial state, since the first derivative is explicitly passed to this method.</p></td></tr> +</table></div> +<p> +The result is updated in place in x as well as the derivative dxdt. This method is disabled if Time and StateInOut are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. After calling <code class="computeroutput">do_step</code> dxdt is updated to the new value. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp19896384-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. This method is disabled if StateIn and Time are the same type. In this case the method can not be distinguished from other <code class="computeroutput">do_step</code> variants. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>This method uses the internal state of the stepper.</p> +<p>This method does not solve the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> DerivOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19902080-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt_in<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">DerivOut</span> <span class="special">&</span> dxdt_out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper and updated by the stepper to its new value at t+dt. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>This method does not solve the forwarding problem.</p> +<p>This method does NOT use the internal state of the stepper.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt_in</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt_out</code></span></p></td> +<td><p>The updated derivative of <code class="computeroutput">out</code> at <code class="computeroutput">t+dt</code>. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp19909600-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper and estimates the error. The state of the ODE is updated in-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method uses the internal state of the stepper.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. x is updated by this method. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The estimation of the error is stored in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp19914720-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivInOut<span class="special">,</span> + <span class="keyword">typename</span> Err<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateInOut</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp19918064-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">DerivInOut</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. Additionally to the other method the derivative of x is also passed to this method and updated by this method. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does NOT use the internal state of the stepper.</p></td></tr> +</table></div> +<p> +The result is updated in place in x. This method is disabled if Time and Deriv are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions. This method is disabled if StateInOut and Time are of the same type.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>This method does NOT use the internal state of the stepper.</p> +<p>This method does not solve the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. After calling <code class="computeroutput">do_step</code> this value is updated to the new value at <code class="computeroutput">t+dt</code>. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate is stored in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp19925680-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the error is estimated. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>This method uses the internal state of the stepper.</p> +<p>This method does not solve the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> DerivOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp19931840-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt_in<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">DerivOut</span> <span class="special">&</span> dxdt_out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper and the error is estimated. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>This method does NOT use the internal state of the stepper.</p> +<p>This method does not solve the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt_in</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt_out</code></span></p></td> +<td><p>The new derivative at <code class="computeroutput">t+dt</code> is written into this variable. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a name="idp19939968-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">void</span> <a name="idp19941856-bb"></a><span class="identifier">reset</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre>Resets the internal state of this stepper. After calling this method it is safe to use all <code class="computeroutput">do_step</code> method without explicitly initializing the stepper. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> DerivIn<span class="special">></span> <span class="keyword">void</span> <a name="idp19943152-bb"></a><span class="identifier">initialize</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> deriv<span class="special">)</span><span class="special">;</span></pre>Initializes the internal state of the stepper. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">deriv</code></span></p></td> +<td><p>The derivative of x. The next call of <code class="computeroutput">do_step</code> expects that the derivative of <code class="computeroutput">x</code> passed to <code class="computeroutput">do_step</code> has the value of <code class="computeroutput">deriv</code>. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">></span> + <span class="keyword">void</span> <a name="idp19945936-bb"></a><span class="identifier">initialize</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">)</span><span class="special">;</span></pre>Initializes the internal state of the stepper. <p>This method is equivalent to </p> +<pre class="programlisting">Deriv dxdt; +system( x , dxdt , t ); +stepper.initialize( dxdt ); +</pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function for the next calls of <code class="computeroutput">do_step</code>. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The current time of the ODE. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The current state of the ODE. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">bool</span> <a name="idp19949760-bb"></a><span class="identifier">is_initialized</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns if the stepper is already initialized. If the stepper is not initialized, the first call of <code class="computeroutput">do_step</code> will initialize the state of the stepper. If the stepper is already initialized the system function can not be safely exchanged between consecutive <code class="computeroutput">do_step</code> calls. </li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp19951392-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp19952320-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp30496432"></a><h3> +<a name="idp19954944-bb"></a><code class="computeroutput">explicit_error_stepper_fsal_base</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19955152-bb"></a><span class="identifier">do_step_v1</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp19957648-bb"></a><span class="identifier">do_step_v5</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp19960752-bb"></a><span class="identifier">resize_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">stepper_type</span> <span class="special">&</span> <a name="idp19961968-bb"></a><span class="identifier">stepper</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> <a name="idp19962768-bb"></a><span class="identifier">stepper</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/base/explicit_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_error_idp21293008.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_error_idp21293008.html new file mode 100644 index 000000000..e50ded17d --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_error_idp21293008.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct explicit_error_stepper_fsal_tag</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="prev" href="explicit_error_stepper_tag.html" title="Struct explicit_error_stepper_tag"> +<link rel="next" href="controlled_stepper_tag.html" title="Struct controlled_stepper_tag"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="explicit_error_stepper_tag.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="controlled_stepper_tag.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.explicit_error_idp21293008"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct explicit_error_stepper_fsal_tag</span></h2> +<p>boost::numeric::odeint::explicit_error_stepper_fsal_tag</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>">boost/numeric/odeint/stepper/stepper_categories.hpp</a>> + +</span> +<span class="keyword">struct</span> <a class="link" href="explicit_error_idp21293008.html" title="Struct explicit_error_stepper_fsal_tag">explicit_error_stepper_fsal_tag</a> <span class="special">:</span> + <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">error_stepper_tag</span> +<span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="explicit_error_stepper_tag.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="controlled_stepper_tag.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_error_stepper_tag.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_error_stepper_tag.html new file mode 100644 index 000000000..86c74c466 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_error_stepper_tag.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct explicit_error_stepper_tag</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="prev" href="error_stepper_tag.html" title="Struct error_stepper_tag"> +<link rel="next" href="explicit_error_idp21293008.html" title="Struct explicit_error_stepper_fsal_tag"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="error_stepper_tag.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="explicit_error_idp21293008.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.explicit_error_stepper_tag"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct explicit_error_stepper_tag</span></h2> +<p>boost::numeric::odeint::explicit_error_stepper_tag</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>">boost/numeric/odeint/stepper/stepper_categories.hpp</a>> + +</span> +<span class="keyword">struct</span> <a class="link" href="explicit_error_stepper_tag.html" title="Struct explicit_error_stepper_tag">explicit_error_stepper_tag</a> <span class="special">:</span> + <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">error_stepper_tag</span> +<span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="error_stepper_tag.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="explicit_error_idp21293008.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_generic_rk.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_generic_rk.html new file mode 100644 index 000000000..83de73200 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_generic_rk.html @@ -0,0 +1,526 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template explicit_generic_rk</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/explicit_generic_rk_hpp.html" title="Header <boost/numeric/odeint/stepper/explicit_generic_rk.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/explicit_generic_rk_hpp.html" title="Header <boost/numeric/odeint/stepper/explicit_generic_rk.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/implicit_euler_hpp.html" title="Header <boost/numeric/odeint/stepper/implicit_euler.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/explicit_generic_rk_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/explicit_generic_rk_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/implicit_euler_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.explicit_generic_rk"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template explicit_generic_rk</span></h2> +<p>boost::numeric::odeint::explicit_generic_rk — A generic implementation of explicit Runge-Kutta algorithms. This class is as a base class for all explicit Runge-Kutta steppers. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/explicit_generic_rk_hpp.html" title="Header <boost/numeric/odeint/stepper/explicit_generic_rk.hpp>">boost/numeric/odeint/stepper/explicit_generic_rk.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="identifier">size_t</span> StageCount<span class="special">,</span> <span class="identifier">size_t</span> Order<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value<span class="special">,</span> + <span class="keyword">typename</span> Deriv<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Algebra<span class="special">,</span> <span class="keyword">typename</span> Operations<span class="special">,</span> + <span class="keyword">typename</span> Resizer<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="explicit_generic_rk.html" title="Class template explicit_generic_rk">explicit_generic_rk</a> <span class="special">:</span> <span class="keyword">public</span> boost::numeric::odeint::explicit_stepper_base< Stepper, Order, State, Value, Deriv, Time, Algebra, Operations, Resizer > +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a><span class="special"><</span> <span class="special">...</span> <span class="special">></span> <a name="boost.numeric.odeint.explicit_generic_rk.stepper_base_type"></a><span class="identifier">stepper_base_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">state_type</span> <a name="boost.numeric.odeint.explicit_generic_rk.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">wrapped_state_type</span> <a name="boost.numeric.odeint.explicit_generic_rk.wrapped_state_type"></a><span class="identifier">wrapped_state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.explicit_generic_rk.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">deriv_type</span> <a name="boost.numeric.odeint.explicit_generic_rk.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">wrapped_deriv_type</span> <a name="boost.numeric.odeint.explicit_generic_rk.wrapped_deriv_type"></a><span class="identifier">wrapped_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">time_type</span> <a name="boost.numeric.odeint.explicit_generic_rk.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.explicit_generic_rk.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">operations_type</span> <a name="boost.numeric.odeint.explicit_generic_rk.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">resizer_type</span> <a name="boost.numeric.odeint.explicit_generic_rk.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="boost.numeric.odeint.explicit_generic_rk.rk_algorithm_type"></a><span class="identifier">rk_algorithm_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">rk_algorithm_type</span><span class="special">::</span><span class="identifier">coef_a_type</span> <a name="boost.numeric.odeint.explicit_generic_rk.coef_a_type"></a><span class="identifier">coef_a_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">rk_algorithm_type</span><span class="special">::</span><span class="identifier">coef_b_type</span> <a name="boost.numeric.odeint.explicit_generic_rk.coef_b_type"></a><span class="identifier">coef_b_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">rk_algorithm_type</span><span class="special">::</span><span class="identifier">coef_c_type</span> <a name="boost.numeric.odeint.explicit_generic_rk.coef_c_type"></a><span class="identifier">coef_c_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="explicit_generic_rk.html#boost.numeric.odeint.explicit_generic_rkconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="explicit_generic_rk.html#idp20611392-bb"><span class="identifier">explicit_generic_rk</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">coef_a_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">coef_b_type</span> <span class="special">&</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">coef_c_type</span> <span class="special">&</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="explicit_generic_rk.html#idp20574576-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_generic_rk.html#idp20574784-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="explicit_generic_rk.html#idp20582304-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="explicit_generic_rk.html#idp20584192-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_generic_rk.html#idp20585440-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_generic_rk.html#idp20589440-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="explicit_generic_rk.html#idp20592176-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_generic_rk.html#idp20598192-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_generic_rk.html#idp20603248-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="explicit_generic_rk.html#idp20609520-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="explicit_generic_rk.html#idp20610448-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="explicit_generic_rk.html#idp20615216-bb">private member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="explicit_generic_rk.html#idp20615424-bb"><span class="identifier">resize_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp33819424"></a><h2>Description</h2> +<p>This class implements the explicit Runge-Kutta algorithms without error estimation in a generic way. The Butcher tableau is passed to the stepper which constructs the stepper scheme with the help of a template-metaprogramming algorithm. ToDo : Add example!</p> +<p>This class derives <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a> which provides the stepper interface.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp33820848"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">size_t</span> StageCount</pre> +<p>The number of stages of the Runge-Kutta algorithm. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">size_t</span> Order</pre> +<p>The order of the stepper. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> State</pre> +<p>The type representing the state of the ODE. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value</pre> +<p>The floating point type which is used in the computations. </p> +</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">typename</span> Deriv</pre></li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time</pre> +<p>The type representing the independent variable - the time - of the ODE. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra</pre> +<p>The algebra type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations</pre> +<p>The operations type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer</pre> +<p>The resizer policy type. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp33830512"></a><h3> +<a name="boost.numeric.odeint.explicit_generic_rkconstruct-copy-destruct"></a><code class="computeroutput">explicit_generic_rk</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp20611392-bb"></a><span class="identifier">explicit_generic_rk</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">coef_a_type</span> <span class="special">&</span> a<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">coef_b_type</span> <span class="special">&</span> b<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">coef_c_type</span> <span class="special">&</span> c<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs the <code class="computeroutput"><a class="link" href="explicit_generic_rk.html" title="Class template explicit_generic_rk">explicit_generic_rk</a></code> class. See examples section for details on the coefficients. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">a</code></span></p></td> +<td><p>Triangular matrix of parameters b in the Butcher tableau. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored inside <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code>. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">b</code></span></p></td> +<td><p>Last row of the butcher tableau. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">c</code></span></p></td> +<td><p>Parameters to calculate the time points in the Butcher tableau. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp33844640"></a><h3> +<a name="idp20574576-bb"></a><code class="computeroutput">explicit_generic_rk</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20574784-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The derivative <code class="computeroutput">dxdt</code> of <code class="computeroutput">in</code> at the time <code class="computeroutput">t</code> is passed to the method. The result is updated out of place, hence the input is in <code class="computeroutput">in</code> and the output in <code class="computeroutput">out</code>. Access to this step functionality is provided by <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code> and <code class="computeroutput">do_step_impl</code> should not be called directly. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a name="idp20582304-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp20584192-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of the stepper. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20585440-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. It transforms the result in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20589440-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp20592176-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. Additionally to the other method the derivative of x is also passed to this method. It is supposed to be used in the following way: <pre class="programlisting">sys( x , dxdt , t ); +stepper.do_step( sys , x , dxdt , t , dt ); +</pre> +<p>The result is updated in place in x. This method is disabled if Time and Deriv are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20598192-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. The state of the ODE is updated out-of-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20603248-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper. It is supposed to be used in the following way: <pre class="programlisting">sys( in , dxdt , t ); +stepper.do_step( sys , in , dxdt , t , out , dt ); +</pre> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20609520-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20610448-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp33947664"></a><h3> +<a name="idp20615216-bb"></a><code class="computeroutput">explicit_generic_rk</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20615424-bb"></a><span class="identifier">resize_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/explicit_generic_rk_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/explicit_generic_rk_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/implicit_euler_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_stepper_base.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_stepper_base.html new file mode 100644 index 000000000..0d72cd2d2 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/explicit_stepper_base.html @@ -0,0 +1,516 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template explicit_stepper_base</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/base/explicit_stepper_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/explicit_stepper_base.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/base/explicit_stepper_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/explicit_stepper_base.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/base/explicit_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/base/explicit_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.explicit_stepper_base"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template explicit_stepper_base</span></h2> +<p>boost::numeric::odeint::explicit_stepper_base — Base class for explicit steppers without step size control and without dense output. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/base/explicit_stepper_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/explicit_stepper_base.hpp>">boost/numeric/odeint/stepper/base/explicit_stepper_base.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> Order<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> Value<span class="special">,</span> <span class="keyword">typename</span> Deriv<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Algebra<span class="special">,</span> + <span class="keyword">typename</span> Operations<span class="special">,</span> <span class="keyword">typename</span> Resizer<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a> <span class="special">:</span> + <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">algebra_stepper_base</span><span class="special"><</span> <span class="identifier">Algebra</span><span class="special">,</span> <span class="identifier">Operations</span> <span class="special">></span> +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">State</span> <a name="boost.numeric.odeint.explicit_stepper_base.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Value</span> <a name="boost.numeric.odeint.explicit_stepper_base.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Deriv</span> <a name="boost.numeric.odeint.explicit_stepper_base.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Time</span> <a name="boost.numeric.odeint.explicit_stepper_base.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Resizer</span> <a name="boost.numeric.odeint.explicit_stepper_base.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Stepper</span> <a name="boost.numeric.odeint.explicit_stepper_base.stepper_type"></a><span class="identifier">stepper_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_tag</span> <a name="boost.numeric.odeint.explicit_stepper_base.stepper_category"></a><span class="identifier">stepper_category</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="algebra_stepper_base.html" title="Class template algebra_stepper_base">algebra_stepper_base</a><span class="special"><</span> <span class="identifier">Algebra</span><span class="special">,</span> <span class="identifier">Operations</span> <span class="special">></span> <a name="boost.numeric.odeint.explicit_stepper_base.algebra_stepper_base_type"></a><span class="identifier">algebra_stepper_base_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">algebra_stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.explicit_stepper_base.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">algebra_stepper_base_type</span><span class="special">::</span><span class="identifier">operations_type</span> <a name="boost.numeric.odeint.explicit_stepper_base.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> <a name="boost.numeric.odeint.explicit_stepper_base.order_type"></a><span class="identifier">order_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="explicit_stepper_base.html#boost.numeric.odeint.explicit_stepper_baseconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="explicit_stepper_base.html#idp20015520-bb"><span class="identifier">explicit_stepper_base</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="explicit_stepper_base.html#idp19986224-bb">public member functions</a></span> + <span class="identifier">order_type</span> <a class="link" href="explicit_stepper_base.html#idp19986432-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_stepper_base.html#idp19987680-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_stepper_base.html#idp19991680-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="explicit_stepper_base.html#idp19994416-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_stepper_base.html#idp20000432-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_stepper_base.html#idp20005488-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="explicit_stepper_base.html#idp20011760-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="explicit_stepper_base.html#idp20013648-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="explicit_stepper_base.html#idp20014576-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="explicit_stepper_base.html#idp20017568-bb">private member functions</a></span> + <span class="identifier">stepper_type</span> <span class="special">&</span> <a class="link" href="explicit_stepper_base.html#idp20017776-bb"><span class="identifier">stepper</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> <a class="link" href="explicit_stepper_base.html#idp20018576-bb"><span class="identifier">stepper</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="explicit_stepper_base.html#idp20019392-bb"><span class="identifier">resize_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="explicit_stepper_base.html#idp20020608-bb"><span class="identifier">do_step_v1</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// public data members</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">order_type</span> <span class="identifier">order_value</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp30651024"></a><h2>Description</h2> +<p>This class serves as the base class for all explicit steppers with algebra and operations. Step size control and error estimation as well as dense output are not provided. <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a> is used as the interface in a CRTP (currently recurring template pattern). In order to work correctly the parent class needs to have a method <code class="computeroutput">do_step_impl( system , in , dxdt_in , t , out , dt )</code>. This is method is used by <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a>. <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a> derives from <a class="link" href="algebra_stepper_base.html" title="Class template algebra_stepper_base">algebra_stepper_base</a>. An example how this class can be used is</p> +<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">State</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Deriv</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Time</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Algebra</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Operations</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Resizer</span> <span class="special">></span> +<span class="keyword">class</span> <span class="identifier">custom_euler</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">explicit_stepper_base</span><span class="special"><</span> <span class="number">1</span> <span class="special">,</span> <span class="identifier">State</span> <span class="special">,</span> <span class="identifier">Value</span> <span class="special">,</span> <span class="identifier">Deriv</span> <span class="special">,</span> <span class="identifier">Time</span> <span class="special">,</span> <span class="identifier">Algebra</span> <span class="special">,</span> <span class="identifier">Operations</span> <span class="special">,</span> <span class="identifier">Resizer</span> <span class="special">></span> +<span class="special">{</span> + <span class="keyword">public</span><span class="special">:</span> + + <span class="keyword">typedef</span> <span class="identifier">explicit_stepper_base</span><span class="special"><</span> <span class="number">1</span> <span class="special">,</span> <span class="identifier">State</span> <span class="special">,</span> <span class="identifier">Value</span> <span class="special">,</span> <span class="identifier">Deriv</span> <span class="special">,</span> <span class="identifier">Time</span> <span class="special">,</span> <span class="identifier">Algebra</span> <span class="special">,</span> <span class="identifier">Operations</span> <span class="special">,</span> <span class="identifier">Resizer</span> <span class="special">></span> <span class="identifier">base_type</span><span class="special">;</span> + + <span class="identifier">custom_euler</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">Algebra</span> <span class="special">&</span><span class="identifier">algebra</span> <span class="special">=</span> <span class="identifier">Algebra</span><span class="special">(</span><span class="special">)</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Sys</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">StateIn</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">DerivIn</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">StateOut</span> <span class="special">></span> + <span class="keyword">void</span> <span class="identifier">do_step_impl</span><span class="special">(</span> <span class="identifier">Sys</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="identifier">in</span> <span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="identifier">Time</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="identifier">out</span> <span class="special">,</span> <span class="identifier">Time</span> <span class="identifier">dt</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">m_algebra</span><span class="special">.</span><span class="identifier">for_each3</span><span class="special">(</span> <span class="identifier">out</span> <span class="special">,</span> <span class="identifier">in</span> <span class="special">,</span> <span class="identifier">dxdt</span> <span class="special">,</span> <span class="identifier">Operations</span><span class="special">::</span><span class="identifier">scale_sum2</span><span class="special"><</span> <span class="identifier">Value</span> <span class="special">,</span> <span class="identifier">Time</span> <span class="special">></span><span class="special">(</span> <span class="number">1</span><span class="special">.</span><span class="number">0</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">)</span><span class="special">;</span> + <span class="special">}</span> + + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">State</span> <span class="special">></span> + <span class="keyword">void</span> <span class="identifier">adjust_size</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">base_type</span><span class="special">::</span><span class="identifier">adjust_size</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">)</span><span class="special">;</span> + <span class="special">}</span> +<span class="special">}</span><span class="special">;</span> +</pre> +<p>For the Stepper concept only the <code class="computeroutput">do_step( sys , x , t , dt )</code> needs to be implemented. But this class provides additional <code class="computeroutput">do_step</code> variants since the stepper is explicit. These methods can be used to increase the performance in some situation, for example if one needs to analyze <code class="computeroutput">dxdt</code> during each step. In this case one can use</p> +<pre class="programlisting"><span class="identifier">sys</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">dxdt</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">)</span><span class="special">;</span> +<span class="identifier">stepper</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">dxdt</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">)</span><span class="special">;</span> <span class="comment">// the value of dxdt is used here</span> +<span class="identifier">t</span> <span class="special">+=</span> <span class="identifier">dt</span><span class="special">;</span> +</pre> +<p>In detail <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a> provides the following <code class="computeroutput">do_step</code> variants</p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"><p><code class="computeroutput">do_step( sys , x , t , dt )</code> - The classical <code class="computeroutput">do_step</code> method needed to fulfill the Stepper concept. The state is updated in-place. A type modelling a Boost.Range can be used for x.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , in , t , out , dt )</code> - This method updates the state out-of-place, hence the result of the step is stored in <code class="computeroutput">out</code>.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , x , dxdt , t , dt )</code> - This method updates the state in-place, but the derivative at the point <code class="computeroutput">t</code> must be explicitly passed in <code class="computeroutput">dxdt</code>. For an example see the code snippet above.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , in , dxdt , t , out , dt )</code> - This method update the state out-of-place and expects that the derivative at the point <code class="computeroutput">t</code> is explicitly passed in <code class="computeroutput">dxdt</code>. It is a combination of the two <code class="computeroutput">do_step</code> methods above.</p></li> +</ul></div> +<p> +</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>The system is always passed as value, which might result in poor performance if it contains data. In this case it can be used with <code class="computeroutput">boost::ref</code> or <code class="computeroutput">std::ref</code>, for example <code class="computeroutput">stepper.do_step( boost::ref( sys ) , x , t , dt );</code></p> +<p>The time <code class="computeroutput">t</code> is not advanced by the stepper. This has to done manually, or by the appropriate <code class="computeroutput">integrate</code> routines or <code class="computeroutput">iterator</code>s.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="refsect2"> +<a name="idp30729040"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Stepper</pre> +<p>The stepper on which this class should work. It is used via CRTP, hence <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code> provides the interface for the Stepper. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">unsigned</span> <span class="keyword">short</span> Order</pre> +<p>The order of the stepper. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> State</pre> +<p>The state type for the stepper. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value</pre> +<p>The value type for the stepper. This should be a floating point type, like float, double, or a multiprecision type. It must not necessary be the value_type of the State. For example the State can be a <code class="computeroutput">vector< complex< double > ></code> in this case the Value must be double. The default value is double. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Deriv</pre> +<p>The type representing time derivatives of the state type. It is usually the same type as the state type, only if used with Boost.Units both types differ. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time</pre> +<p>The type representing the time. Usually the same type as the value type. When Boost.Units is used, this type has usually a unit. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra</pre> +<p>The algebra type which must fulfill the Algebra Concept. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations</pre> +<p>The type for the operations which must fulfill the Operations Concept. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer</pre> +<p>The resizer policy class. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp30740864"></a><h3> +<a name="boost.numeric.odeint.explicit_stepper_baseconstruct-copy-destruct"></a><code class="computeroutput">explicit_stepper_base</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp20015520-bb"></a><span class="identifier">explicit_stepper_base</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs a <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code> class. This constructor can be used as a default constructor if the algebra has a default constructor. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored inside <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code>. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp30749232"></a><h3> +<a name="idp19986224-bb"></a><code class="computeroutput">explicit_stepper_base</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp19986432-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of the stepper. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19987680-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. It transforms the result in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp19991680-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp19994416-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. Additionally to the other method the derivative of x is also passed to this method. It is supposed to be used in the following way: <pre class="programlisting">sys( x , dxdt , t ); +stepper.do_step( sys , x , dxdt , t , dt ); +</pre> +<p>The result is updated in place in x. This method is disabled if Time and Deriv are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20000432-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. The state of the ODE is updated out-of-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20005488-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper. It is supposed to be used in the following way: <pre class="programlisting">sys( in , dxdt , t ); +stepper.do_step( sys , in , dxdt , t , out , dt ); +</pre> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a name="idp20011760-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20013648-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20014576-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp30833728"></a><h3> +<a name="idp20017568-bb"></a><code class="computeroutput">explicit_stepper_base</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="identifier">stepper_type</span> <span class="special">&</span> <a name="idp20017776-bb"></a><span class="identifier">stepper</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> <a name="idp20018576-bb"></a><span class="identifier">stepper</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20019392-bb"></a><span class="identifier">resize_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20020608-bb"></a><span class="identifier">do_step_v1</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/base/explicit_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/base/explicit_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/implicit_euler.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/implicit_euler.html new file mode 100644 index 000000000..b7c857a43 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/implicit_euler.html @@ -0,0 +1,106 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template implicit_euler</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/implicit_euler_hpp.html" title="Header <boost/numeric/odeint/stepper/implicit_euler.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/implicit_euler_hpp.html" title="Header <boost/numeric/odeint/stepper/implicit_euler.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html" title="Header <boost/numeric/odeint/stepper/modified_midpoint.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/implicit_euler_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/implicit_euler_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.implicit_euler"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template implicit_euler</span></h2> +<p>boost::numeric::odeint::implicit_euler</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/implicit_euler_hpp.html" title="Header <boost/numeric/odeint/stepper/implicit_euler.hpp>">boost/numeric/odeint/stepper/implicit_euler.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ValueType<span class="special">,</span> <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="implicit_euler.html" title="Class template implicit_euler">implicit_euler</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">ValueType</span> <a name="boost.numeric.odeint.implicit_euler.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">value_type</span> <a name="boost.numeric.odeint.implicit_euler.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span> <a name="boost.numeric.odeint.implicit_euler.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <a name="boost.numeric.odeint.implicit_euler.wrapped_state_type"></a><span class="identifier">wrapped_state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_type</span> <a name="boost.numeric.odeint.implicit_euler.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">deriv_type</span> <span class="special">></span> <a name="boost.numeric.odeint.implicit_euler.wrapped_deriv_type"></a><span class="identifier">wrapped_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">matrix</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span> <a name="boost.numeric.odeint.implicit_euler.matrix_type"></a><span class="identifier">matrix_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">matrix_type</span> <span class="special">></span> <a name="boost.numeric.odeint.implicit_euler.wrapped_matrix_type"></a><span class="identifier">wrapped_matrix_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">permutation_matrix</span><span class="special"><</span> <span class="identifier">size_t</span> <span class="special">></span> <a name="boost.numeric.odeint.implicit_euler.pmatrix_type"></a><span class="identifier">pmatrix_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">pmatrix_type</span> <span class="special">></span> <a name="boost.numeric.odeint.implicit_euler.wrapped_pmatrix_type"></a><span class="identifier">wrapped_pmatrix_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Resizer</span> <a name="boost.numeric.odeint.implicit_euler.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_tag</span> <a name="boost.numeric.odeint.implicit_euler.stepper_category"></a><span class="identifier">stepper_category</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">implicit_euler</span><span class="special"><</span> <span class="identifier">ValueType</span><span class="special">,</span> <span class="identifier">Resizer</span> <span class="special">></span> <a name="boost.numeric.odeint.implicit_euler.stepper_type"></a><span class="identifier">stepper_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="implicit_euler.html#boost.numeric.odeint.implicit_eulerconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="implicit_euler.html#idp20627024-bb"><span class="identifier">implicit_euler</span></a><span class="special">(</span><span class="identifier">value_type</span> <span class="special">=</span> <span class="number">1E</span><span class="special">-</span><span class="number">6</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="implicit_euler.html#idp20623360-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="implicit_euler.html#idp20623568-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a class="link" href="implicit_euler.html#idp20625792-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="implicit_euler.html#idp20627568-bb">private member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="implicit_euler.html#idp20627776-bb"><span class="identifier">resize_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="implicit_euler.html#idp20628992-bb"><span class="identifier">solve</span></a><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">matrix_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp34024928"></a><h2>Description</h2> +<div class="refsect2"> +<a name="idp34025136"></a><h3> +<a name="boost.numeric.odeint.implicit_eulerconstruct-copy-destruct"></a><code class="computeroutput">implicit_euler</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><a name="idp20627024-bb"></a><span class="identifier">implicit_euler</span><span class="special">(</span><span class="identifier">value_type</span> epsilon <span class="special">=</span> <span class="number">1E</span><span class="special">-</span><span class="number">6</span><span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +<div class="refsect2"> +<a name="idp34029536"></a><h3> +<a name="idp20623360-bb"></a><code class="computeroutput">implicit_euler</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="keyword">void</span> <a name="idp20623568-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a name="idp20625792-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp34040880"></a><h3> +<a name="idp20627568-bb"></a><code class="computeroutput">implicit_euler</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20627776-bb"></a><span class="identifier">resize_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idp20628992-bb"></a><span class="identifier">solve</span><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">matrix_type</span> <span class="special">&</span> m<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/implicit_euler_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/implicit_euler_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_adap_idp19520144.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_adap_idp19520144.html new file mode 100644 index 000000000..26a6bc29c --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_adap_idp19520144.html @@ -0,0 +1,113 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Function template integrate_adaptive</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_adaptive.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_adaptive.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/integrate/integrate_const_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_const.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/integrate/integrate_const_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.integrate_adap_idp19520144"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Function template integrate_adaptive</span></h2> +<p>boost::numeric::odeint::integrate_adaptive — Integrates the ODE with adaptive step size. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_adaptive.hpp>">boost/numeric/odeint/integrate/integrate_adaptive.hpp</a>> + +</span> +<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> + <span class="keyword">typename</span> Observer<span class="special">></span> + <span class="identifier">size_t</span> <span class="identifier">integrate_adaptive</span><span class="special">(</span><span class="identifier">Stepper</span> stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> + <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> <span class="identifier">Time</span> start_time<span class="special">,</span> + <span class="identifier">Time</span> end_time<span class="special">,</span> <span class="identifier">Time</span> dt<span class="special">,</span> <span class="identifier">Observer</span> observer<span class="special">)</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp28482992"></a><h2>Description</h2> +<p>This function integrates the ODE given by system with the given stepper. The observer is called after each step. If the stepper has no error control, the step size remains constant and the observer is called at equidistant time points t0+n*dt. If the stepper is a ControlledStepper, the step size is adjusted and the observer is called in non-equidistant intervals.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The time step between observer calls, <span class="emphasis"><em>not</em></span> necessarily the time step of the integration. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">end_time</code></span></p></td> +<td><p>The final integration time tend. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">observer</code></span></p></td> +<td><p>Function/Functor called at equidistant time intervals. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">start_state</code></span></p></td> +<td><p>The initial condition x0. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">start_time</code></span></p></td> +<td><p>The initial time t0. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">stepper</code></span></p></td> +<td><p>The stepper to be used for numerical integration. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>Function/Functor defining the rhs of the ODE. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The number of steps performed. </p></td> +</tr> +</tbody> +</table></div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/integrate/integrate_const_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_cons_idp19540240.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_cons_idp19540240.html new file mode 100644 index 000000000..6df8c48df --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_cons_idp19540240.html @@ -0,0 +1,113 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Function template integrate_const</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/integrate/integrate_const_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_const.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/integrate/integrate_const_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_const.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_n_steps.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/integrate/integrate_const_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/integrate/integrate_const_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.integrate_cons_idp19540240"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Function template integrate_const</span></h2> +<p>boost::numeric::odeint::integrate_const — Integrates the ODE with constant step size. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/integrate/integrate_const_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_const.hpp>">boost/numeric/odeint/integrate/integrate_const.hpp</a>> + +</span> +<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> + <span class="keyword">typename</span> Observer<span class="special">></span> + <span class="identifier">size_t</span> <span class="identifier">integrate_const</span><span class="special">(</span><span class="identifier">Stepper</span> stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> + <span class="identifier">Time</span> start_time<span class="special">,</span> <span class="identifier">Time</span> end_time<span class="special">,</span> <span class="identifier">Time</span> dt<span class="special">,</span> + <span class="identifier">Observer</span> observer<span class="special">)</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp28547888"></a><h2>Description</h2> +<p>Integrates the ODE defined by system using the given stepper. This method ensures that the observer is called at constant intervals dt. If the Stepper is a normal stepper without step size control, dt is also used for the numerical scheme. If a ControlledStepper is provided, the algorithm might reduce the step size to meet the error bounds, but it is ensured that the observer is always called at equidistant time points t0 + n*dt. If a DenseOutputStepper is used, the step size also may vary and the dense output is used to call the observer at equidistant time points.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The time step between observer calls, <span class="emphasis"><em>not</em></span> necessarily the time step of the integration. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">end_time</code></span></p></td> +<td><p>The final integration time tend. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">observer</code></span></p></td> +<td><p>Function/Functor called at equidistant time intervals. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">start_state</code></span></p></td> +<td><p>The initial condition x0. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">start_time</code></span></p></td> +<td><p>The initial time t0. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">stepper</code></span></p></td> +<td><p>The stepper to be used for numerical integration. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>Function/Functor defining the rhs of the ODE. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The number of steps performed. </p></td> +</tr> +</tbody> +</table></div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/integrate/integrate_const_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/integrate/integrate_const_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_idp10099280.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_idp10099280.html new file mode 100644 index 000000000..aa05bed76 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_idp10099280.html @@ -0,0 +1,107 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Function template integrate</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/integrate/integrate_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/integrate/integrate_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate.hpp>"> +<link rel="next" href="integrate_idp19514032.html" title="Function template integrate"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/integrate/integrate_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/integrate/integrate_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="integrate_idp19514032.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.integrate_idp10099280"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Function template integrate</span></h2> +<p>boost::numeric::odeint::integrate — Integrates the ODE. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/integrate/integrate_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate.hpp>">boost/numeric/odeint/integrate/integrate.hpp</a>> + +</span> +<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Observer<span class="special">></span> + <span class="identifier">size_t</span> <span class="identifier">integrate</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> <span class="identifier">Time</span> start_time<span class="special">,</span> + <span class="identifier">Time</span> end_time<span class="special">,</span> <span class="identifier">Time</span> dt<span class="special">,</span> <span class="identifier">Observer</span> observer<span class="special">)</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp28403824"></a><h2>Description</h2> +<p>Integrates the ODE given by system from start_time to end_time starting with start_state as initial condition and dt as initial time step. This function uses a dense output dopri5 stepper and performs an adaptive integration with step size control, thus dt changes during the integration. This method uses standard error bounds of 1E-6. After each step, the observer is called.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>Initial step size, will be adjusted during the integration. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">end_time</code></span></p></td> +<td><p>End time of the integration. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">observer</code></span></p></td> +<td><p>Observer that will be called after each time step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">start_state</code></span></p></td> +<td><p>The initial state. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">start_time</code></span></p></td> +<td><p>Start time of the integration. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The number of steps performed. </p></td> +</tr> +</tbody> +</table></div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/integrate/integrate_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/integrate/integrate_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="integrate_idp19514032.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_idp19514032.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_idp19514032.html new file mode 100644 index 000000000..b04142165 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_idp19514032.html @@ -0,0 +1,103 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Function template integrate</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/integrate/integrate_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate.hpp>"> +<link rel="prev" href="integrate_idp10099280.html" title="Function template integrate"> +<link rel="next" href="../../../header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_adaptive.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="integrate_idp10099280.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/integrate/integrate_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.integrate_idp19514032"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Function template integrate</span></h2> +<p>boost::numeric::odeint::integrate — Integrates the ODE without observer calls. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/integrate/integrate_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate.hpp>">boost/numeric/odeint/integrate/integrate.hpp</a>> + +</span> +<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">></span> + <span class="identifier">size_t</span> <span class="identifier">integrate</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> <span class="identifier">Time</span> start_time<span class="special">,</span> + <span class="identifier">Time</span> end_time<span class="special">,</span> <span class="identifier">Time</span> dt<span class="special">)</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp28419520"></a><h2>Description</h2> +<p>Integrates the ODE given by system from start_time to end_time starting with start_state as initial condition and dt as initial time step. This function uses a dense output dopri5 stepper and performs an adaptive integration with step size control, thus dt changes during the integration. This method uses standard error bounds of 1E-6. No observer is called.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>Initial step size, will be adjusted during the integration. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">end_time</code></span></p></td> +<td><p>End time of the integration. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">start_state</code></span></p></td> +<td><p>The initial state. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">start_time</code></span></p></td> +<td><p>Start time of the integration. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The number of steps performed. </p></td> +</tr> +</tbody> +</table></div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="integrate_idp10099280.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/integrate/integrate_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_n_st_idp19559904.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_n_st_idp19559904.html new file mode 100644 index 000000000..595ef7556 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_n_st_idp19559904.html @@ -0,0 +1,113 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Function template integrate_n_steps</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_n_steps.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_n_steps.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/integrate/integrate_times_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_times.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/integrate/integrate_times_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.integrate_n_st_idp19559904"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Function template integrate_n_steps</span></h2> +<p>boost::numeric::odeint::integrate_n_steps — Integrates the ODE with constant step size. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_n_steps.hpp>">boost/numeric/odeint/integrate/integrate_n_steps.hpp</a>> + +</span> +<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> + <span class="keyword">typename</span> Observer<span class="special">></span> + <span class="identifier">Time</span> <span class="identifier">integrate_n_steps</span><span class="special">(</span><span class="identifier">Stepper</span> stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> + <span class="identifier">Time</span> start_time<span class="special">,</span> <span class="identifier">Time</span> dt<span class="special">,</span> <span class="identifier">size_t</span> num_of_steps<span class="special">,</span> + <span class="identifier">Observer</span> observer<span class="special">)</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp28612320"></a><h2>Description</h2> +<p>This function is similar to integrate_const. The observer is called at equidistant time intervals t0 + n*dt. If the Stepper is a normal stepper without step size control, dt is also used for the numerical scheme. If a ControlledStepper is provided, the algorithm might reduce the step size to meet the error bounds, but it is ensured that the observer is always called at equidistant time points t0 + n*dt. If a DenseOutputStepper is used, the step size also may vary and the dense output is used to call the observer at equidistant time points. The final integration time is always t0 + num_of_steps*dt.</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The time step between observer calls, <span class="emphasis"><em>not</em></span> necessarily the time step of the integration. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">num_of_steps</code></span></p></td> +<td><p>Number of steps to be performed </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">observer</code></span></p></td> +<td><p>Function/Functor called at equidistant time intervals. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">start_state</code></span></p></td> +<td><p>The initial condition x0. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">start_time</code></span></p></td> +<td><p>The initial time t0. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">stepper</code></span></p></td> +<td><p>The stepper to be used for numerical integration. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>Function/Functor defining the rhs of the ODE. </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The number of steps performed. </p></td> +</tr> +</tbody> +</table></div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/integrate/integrate_times_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_time_idp19579536.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_time_idp19579536.html new file mode 100644 index 000000000..70a02197a --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_time_idp19579536.html @@ -0,0 +1,113 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Function template integrate_times</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/integrate/integrate_times_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_times.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/integrate/integrate_times_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_times.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/integrate/null_observer_hpp.html" title="Header <boost/numeric/odeint/integrate/null_observer.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/integrate/integrate_times_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/integrate/integrate_times_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/integrate/null_observer_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.integrate_time_idp19579536"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Function template integrate_times</span></h2> +<p>boost::numeric::odeint::integrate_times — Integrates the ODE with observer calls at given time points. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/integrate/integrate_times_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_times.hpp>">boost/numeric/odeint/integrate/integrate_times.hpp</a>> + +</span> +<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> TimeIterator<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Observer<span class="special">></span> + <span class="identifier">size_t</span> <span class="identifier">integrate_times</span><span class="special">(</span><span class="identifier">Stepper</span> stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> + <span class="identifier">TimeIterator</span> times_start<span class="special">,</span> <span class="identifier">TimeIterator</span> times_end<span class="special">,</span> + <span class="identifier">Time</span> dt<span class="special">,</span> <span class="identifier">Observer</span> observer<span class="special">)</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp28682800"></a><h2>Description</h2> +<p>Integrates the ODE given by system using the given stepper. This function does observer calls at the subsequent time points given by the range times_start, times_end. If the stepper has not step size control, the step size might be reduced occasionally to ensure observer calls exactly at the time points from the given sequence. If the stepper is a ControlledStepper, the step size is adjusted to meet the error bounds, but also might be reduced occasionally to ensure correct observer calls. If a DenseOutputStepper is provided, the dense output functionality is used to call the observer at the given times. The end time of the integration is always *(end_time-1).</p> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The time step between observer calls, <span class="emphasis"><em>not</em></span> necessarily the time step of the integration. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">observer</code></span></p></td> +<td><p>Function/Functor called at equidistant time intervals. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">start_state</code></span></p></td> +<td><p>The initial condition x0. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">stepper</code></span></p></td> +<td><p>The stepper to be used for numerical integration. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>Function/Functor defining the rhs of the ODE. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">times_end</code></span></p></td> +<td><p>Iterator to the end time </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">times_start</code></span></p></td> +<td><p>Iterator to the start time </p></td> +</tr> +</tbody> +</table></div></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The number of steps performed. </p></td> +</tr> +</tbody> +</table></div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/integrate/integrate_times_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/integrate/integrate_times_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/integrate/null_observer_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/modified_midpo_idp20675728.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/modified_midpo_idp20675728.html new file mode 100644 index 000000000..0781fe7bb --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/modified_midpo_idp20675728.html @@ -0,0 +1,118 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template modified_midpoint_dense_out</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html" title="Header <boost/numeric/odeint/stepper/modified_midpoint.hpp>"> +<link rel="prev" href="modified_midpoint.html" title="Class template modified_midpoint"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html" title="Header <boost/numeric/odeint/stepper/rosenbrock4.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="modified_midpoint.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.modified_midpo_idp20675728"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template modified_midpoint_dense_out</span></h2> +<p>boost::numeric::odeint::modified_midpoint_dense_out</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html" title="Header <boost/numeric/odeint/stepper/modified_midpoint.hpp>">boost/numeric/odeint/stepper/modified_midpoint.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> + <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out">modified_midpoint_dense_out</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">State</span> <a name="boost.numeric.odeint.modified_midpo_idp20675728.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Value</span> <a name="boost.numeric.odeint.modified_midpo_idp20675728.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Deriv</span> <a name="boost.numeric.odeint.modified_midpo_idp20675728.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Time</span> <a name="boost.numeric.odeint.modified_midpo_idp20675728.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Algebra</span> <a name="boost.numeric.odeint.modified_midpo_idp20675728.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Operations</span> <a name="boost.numeric.odeint.modified_midpo_idp20675728.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Resizer</span> <a name="boost.numeric.odeint.modified_midpo_idp20675728.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <a name="boost.numeric.odeint.modified_midpo_idp20675728.wrapped_state_type"></a><span class="identifier">wrapped_state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">deriv_type</span> <span class="special">></span> <a name="boost.numeric.odeint.modified_midpo_idp20675728.wrapped_deriv_type"></a><span class="identifier">wrapped_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out">modified_midpoint_dense_out</a><span class="special"><</span> <span class="identifier">State</span><span class="special">,</span> <span class="identifier">Value</span><span class="special">,</span> <span class="identifier">Deriv</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> <span class="identifier">Algebra</span><span class="special">,</span> <span class="identifier">Operations</span><span class="special">,</span> <span class="identifier">Resizer</span> <span class="special">></span> <a name="boost.numeric.odeint.modified_midpo_idp20675728.stepper_type"></a><span class="identifier">stepper_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="identifier">wrapped_deriv_type</span> <span class="special">></span> <a name="boost.numeric.odeint.modified_midpo_idp20675728.deriv_table_type"></a><span class="identifier">deriv_table_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="modified_midpo_idp20675728.html#boost.numeric.odeint.modified_midpo_idp20675728construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="modified_midpo_idp20675728.html#idp20692288-bb"><span class="identifier">modified_midpoint_dense_out</span></a><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">short</span> <span class="special">=</span> <span class="number">2</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="modified_midpo_idp20675728.html#idp20683648-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="modified_midpo_idp20675728.html#idp20683856-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">deriv_table_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="modified_midpo_idp20675728.html#idp20688256-bb"><span class="identifier">set_steps</span></a><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">short</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">unsigned</span> <span class="keyword">short</span> <a class="link" href="modified_midpo_idp20675728.html#idp20689056-bb"><span class="identifier">steps</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="modified_midpo_idp20675728.html#idp20689856-bb"><span class="identifier">resize</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="modified_midpo_idp20675728.html#idp20691072-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp34406064"></a><h2>Description</h2> +<p>Implementation of the modified midpoint method with a configurable number of intermediate steps. This class is used by the dense output Bulirsch-Stoer algorithm and is not meant for direct usage. </p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This stepper is for internal use only and does not meet any stepper concept. </p></td></tr> +</table></div> +<p> +</p> +<div class="refsect2"> +<a name="idp34406944"></a><h3> +<a name="boost.numeric.odeint.modified_midpo_idp20675728construct-copy-destruct"></a><code class="computeroutput">modified_midpoint_dense_out</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><a name="idp20692288-bb"></a><span class="identifier">modified_midpoint_dense_out</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">short</span> steps <span class="special">=</span> <span class="number">2</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +<div class="refsect2"> +<a name="idp34413648"></a><h3> +<a name="idp20683648-bb"></a><code class="computeroutput">modified_midpoint_dense_out</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20683856-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span> x_mp<span class="special">,</span> + <span class="identifier">deriv_table_type</span> <span class="special">&</span> derivs<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idp20688256-bb"></a><span class="identifier">set_steps</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">short</span> steps<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">unsigned</span> <span class="keyword">short</span> <a name="idp20689056-bb"></a><span class="identifier">steps</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20689856-bb"></a><span class="identifier">resize</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a name="idp20691072-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="modified_midpoint.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/modified_midpoint.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/modified_midpoint.html new file mode 100644 index 000000000..7ca3770f7 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/modified_midpoint.html @@ -0,0 +1,382 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template modified_midpoint</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html" title="Header <boost/numeric/odeint/stepper/modified_midpoint.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html" title="Header <boost/numeric/odeint/stepper/modified_midpoint.hpp>"> +<link rel="next" href="modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="modified_midpo_idp20675728.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.modified_midpoint"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template modified_midpoint</span></h2> +<p>boost::numeric::odeint::modified_midpoint</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html" title="Header <boost/numeric/odeint/stepper/modified_midpoint.hpp>">boost/numeric/odeint/stepper/modified_midpoint.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> + <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="modified_midpoint.html" title="Class template modified_midpoint">modified_midpoint</a> <span class="special">:</span> <span class="keyword">public</span> boost::numeric::odeint::explicit_stepper_base< Stepper, Order, State, Value, Deriv, Time, Algebra, Operations, Resizer > +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a><span class="special"><</span> <a class="link" href="modified_midpoint.html" title="Class template modified_midpoint">modified_midpoint</a><span class="special"><</span> <span class="identifier">State</span><span class="special">,</span> <span class="identifier">Value</span><span class="special">,</span> <span class="identifier">Deriv</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> <span class="identifier">Algebra</span><span class="special">,</span> <span class="identifier">Operations</span><span class="special">,</span> <span class="identifier">Resizer</span> <span class="special">></span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="identifier">State</span><span class="special">,</span> <span class="identifier">Value</span><span class="special">,</span> <span class="identifier">Deriv</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> <span class="identifier">Algebra</span><span class="special">,</span> <span class="identifier">Operations</span><span class="special">,</span> <span class="identifier">Resizer</span> <span class="special">></span> <a name="boost.numeric.odeint.modified_midpoint.stepper_base_type"></a><span class="identifier">stepper_base_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">state_type</span> <a name="boost.numeric.odeint.modified_midpoint.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">wrapped_state_type</span> <a name="boost.numeric.odeint.modified_midpoint.wrapped_state_type"></a><span class="identifier">wrapped_state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.modified_midpoint.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">deriv_type</span> <a name="boost.numeric.odeint.modified_midpoint.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">wrapped_deriv_type</span> <a name="boost.numeric.odeint.modified_midpoint.wrapped_deriv_type"></a><span class="identifier">wrapped_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">time_type</span> <a name="boost.numeric.odeint.modified_midpoint.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.modified_midpoint.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">operations_type</span> <a name="boost.numeric.odeint.modified_midpoint.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">resizer_type</span> <a name="boost.numeric.odeint.modified_midpoint.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">stepper_type</span> <a name="boost.numeric.odeint.modified_midpoint.stepper_type"></a><span class="identifier">stepper_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="modified_midpoint.html#boost.numeric.odeint.modified_midpointconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="modified_midpoint.html#idp20673264-bb"><span class="identifier">modified_midpoint</span></a><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">short</span> <span class="special">=</span> <span class="number">2</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="modified_midpoint.html#idp20639328-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="modified_midpoint.html#idp20639536-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="modified_midpoint.html#idp20643248-bb"><span class="identifier">set_steps</span></a><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">short</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">unsigned</span> <span class="keyword">short</span> <a class="link" href="modified_midpoint.html#idp20644048-bb"><span class="identifier">steps</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="modified_midpoint.html#idp20644848-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="modified_midpoint.html#idp20646064-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="modified_midpoint.html#idp20647312-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="modified_midpoint.html#idp20651312-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="modified_midpoint.html#idp20654048-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="modified_midpoint.html#idp20660064-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="modified_midpoint.html#idp20665120-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="modified_midpoint.html#idp20671392-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="modified_midpoint.html#idp20672320-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="modified_midpoint.html#idp20674304-bb">private member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="modified_midpoint.html#idp20674512-bb"><span class="identifier">resize_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp34222416"></a><h2>Description</h2> +<p>Implementation of the modified midpoint method with a configurable number of intermediate steps. This class is used by the Bulirsch-Stoer algorithm and is not meant for direct usage. </p> +<div class="refsect2"> +<a name="idp34222944"></a><h3> +<a name="boost.numeric.odeint.modified_midpointconstruct-copy-destruct"></a><code class="computeroutput">modified_midpoint</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><a name="idp20673264-bb"></a><span class="identifier">modified_midpoint</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">short</span> steps <span class="special">=</span> <span class="number">2</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +<div class="refsect2"> +<a name="idp34229616"></a><h3> +<a name="idp20639328-bb"></a><code class="computeroutput">modified_midpoint</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20639536-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idp20643248-bb"></a><span class="identifier">set_steps</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">short</span> steps<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">unsigned</span> <span class="keyword">short</span> <a name="idp20644048-bb"></a><span class="identifier">steps</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a name="idp20644848-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp20646064-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of the stepper. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20647312-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. It transforms the result in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20651312-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp20654048-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. Additionally to the other method the derivative of x is also passed to this method. It is supposed to be used in the following way: <pre class="programlisting">sys( x , dxdt , t ); +stepper.do_step( sys , x , dxdt , t , dt ); +</pre> +<p>The result is updated in place in x. This method is disabled if Time and Deriv are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20660064-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. The state of the ODE is updated out-of-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20665120-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper. It is supposed to be used in the following way: <pre class="programlisting">sys( in , dxdt , t ); +stepper.do_step( sys , in , dxdt , t , out , dt ); +</pre> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20671392-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20672320-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp34328736"></a><h3> +<a name="idp20674304-bb"></a><code class="computeroutput">modified_midpoint</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20674512-bb"></a><span class="identifier">resize_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="modified_midpo_idp20675728.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/null_observer.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/null_observer.html new file mode 100644 index 000000000..19a66a279 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/null_observer.html @@ -0,0 +1,65 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct null_observer</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/integrate/null_observer_hpp.html" title="Header <boost/numeric/odeint/integrate/null_observer.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/integrate/null_observer_hpp.html" title="Header <boost/numeric/odeint/integrate/null_observer.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/integrate/observer_collection_hpp.html" title="Header <boost/numeric/odeint/integrate/observer_collection.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/integrate/null_observer_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/integrate/null_observer_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/integrate/observer_collection_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.null_observer"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct null_observer</span></h2> +<p>boost::numeric::odeint::null_observer</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/integrate/null_observer_hpp.html" title="Header <boost/numeric/odeint/integrate/null_observer.hpp>">boost/numeric/odeint/integrate/null_observer.hpp</a>> + +</span> +<span class="keyword">struct</span> <a class="link" href="null_observer.html" title="Struct null_observer">null_observer</a> <span class="special">{</span> + + <span class="comment">// <a class="link" href="null_observer.html#idp19601040-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="null_observer.html#idp19601248-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp28706192"></a><h2>Description</h2> +<div class="refsect2"> +<a name="idp28706400"></a><h3> +<a name="idp19601040-bb"></a><code class="computeroutput">null_observer</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">></span> + <span class="keyword">void</span> <a name="idp19601248-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li></ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/integrate/null_observer_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/integrate/null_observer_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/integrate/observer_collection_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/observer_collection.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/observer_collection.html new file mode 100644 index 000000000..ba3ed19f4 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/observer_collection.html @@ -0,0 +1,73 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template observer_collection</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/integrate/observer_collection_hpp.html" title="Header <boost/numeric/odeint/integrate/observer_collection.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/integrate/observer_collection_hpp.html" title="Header <boost/numeric/odeint/integrate/observer_collection.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_hpp.html" title="Header <boost/numeric/odeint/stepper/adams_bashforth.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/integrate/observer_collection_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/integrate/observer_collection_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.observer_collection"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template observer_collection</span></h2> +<p>boost::numeric::odeint::observer_collection</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/integrate/observer_collection_hpp.html" title="Header <boost/numeric/odeint/integrate/observer_collection.hpp>">boost/numeric/odeint/integrate/observer_collection.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="observer_collection.html" title="Class template observer_collection">observer_collection</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special"><</span> <span class="keyword">void</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Time</span> <span class="special">&</span><span class="special">)</span> <span class="special">></span> <a name="boost.numeric.odeint.observer_collection.observer_type"></a><span class="identifier">observer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="identifier">observer_type</span> <span class="special">></span> <a name="boost.numeric.odeint.observer_collection.collection_type"></a><span class="identifier">collection_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="observer_collection.html#idp19605520-bb">public member functions</a></span> + <span class="keyword">void</span> <a class="link" href="observer_collection.html#idp19605728-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">collection_type</span> <span class="special">&</span> <a class="link" href="observer_collection.html#idp19606864-bb"><span class="identifier">observers</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">collection_type</span> <span class="special">&</span> <a class="link" href="observer_collection.html#idp19607680-bb"><span class="identifier">observers</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp28747776"></a><h2>Description</h2> +<div class="refsect2"> +<a name="idp28747984"></a><h3> +<a name="idp19605520-bb"></a><code class="computeroutput">observer_collection</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idp19605728-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">Time</span> t<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">collection_type</span> <span class="special">&</span> <a name="idp19606864-bb"></a><span class="identifier">observers</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">collection_type</span> <span class="special">&</span> <a name="idp19607680-bb"></a><span class="identifier">observers</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/integrate/observer_collection_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/integrate/observer_collection_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/adams_bashforth_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/rosenbrock4.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/rosenbrock4.html new file mode 100644 index 000000000..d53227068 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/rosenbrock4.html @@ -0,0 +1,139 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template rosenbrock4</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html" title="Header <boost/numeric/odeint/stepper/rosenbrock4.hpp>"> +<link rel="prev" href="default_rosenb_idp20694128.html" title="Struct template default_rosenbrock_coefficients"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_controller_hpp.html" title="Header <boost/numeric/odeint/stepper/rosenbrock4_controller.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="default_rosenb_idp20694128.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_controller_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.rosenbrock4"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template rosenbrock4</span></h2> +<p>boost::numeric::odeint::rosenbrock4</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html" title="Header <boost/numeric/odeint/stepper/rosenbrock4.hpp>">boost/numeric/odeint/stepper/rosenbrock4.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Value<span class="special">,</span> + <span class="keyword">typename</span> Coefficients <span class="special">=</span> <span class="identifier">default_rosenbrock_coefficients</span><span class="special"><</span> <span class="identifier">Value</span> <span class="special">></span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="rosenbrock4.html" title="Class template rosenbrock4">rosenbrock4</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">Value</span> <a name="boost.numeric.odeint.rosenbrock4.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span> <a name="boost.numeric.odeint.rosenbrock4.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_type</span> <a name="boost.numeric.odeint.rosenbrock4.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">value_type</span> <a name="boost.numeric.odeint.rosenbrock4.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">matrix</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span> <a name="boost.numeric.odeint.rosenbrock4.matrix_type"></a><span class="identifier">matrix_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">permutation_matrix</span><span class="special"><</span> <span class="identifier">size_t</span> <span class="special">></span> <a name="boost.numeric.odeint.rosenbrock4.pmatrix_type"></a><span class="identifier">pmatrix_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Resizer</span> <a name="boost.numeric.odeint.rosenbrock4.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Coefficients</span> <a name="boost.numeric.odeint.rosenbrock4.rosenbrock_coefficients"></a><span class="identifier">rosenbrock_coefficients</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_tag</span> <a name="boost.numeric.odeint.rosenbrock4.stepper_category"></a><span class="identifier">stepper_category</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> <a name="boost.numeric.odeint.rosenbrock4.order_type"></a><span class="identifier">order_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <a name="boost.numeric.odeint.rosenbrock4.wrapped_state_type"></a><span class="identifier">wrapped_state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">deriv_type</span> <span class="special">></span> <a name="boost.numeric.odeint.rosenbrock4.wrapped_deriv_type"></a><span class="identifier">wrapped_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">matrix_type</span> <span class="special">></span> <a name="boost.numeric.odeint.rosenbrock4.wrapped_matrix_type"></a><span class="identifier">wrapped_matrix_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">pmatrix_type</span> <span class="special">></span> <a name="boost.numeric.odeint.rosenbrock4.wrapped_pmatrix_type"></a><span class="identifier">wrapped_pmatrix_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">rosenbrock4</span><span class="special"><</span> <span class="identifier">Value</span><span class="special">,</span> <span class="identifier">Coefficients</span><span class="special">,</span> <span class="identifier">Resizer</span> <span class="special">></span> <a name="boost.numeric.odeint.rosenbrock4.stepper_type"></a><span class="identifier">stepper_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="rosenbrock4.html#boost.numeric.odeint.rosenbrock4construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="rosenbrock4.html#idp20735088-bb"><span class="identifier">rosenbrock4</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="rosenbrock4.html#idp20719920-bb">public member functions</a></span> + <span class="identifier">order_type</span> <a class="link" href="rosenbrock4.html#idp20720128-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="rosenbrock4.html#idp20720592-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="rosenbrock4.html#idp20723504-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="rosenbrock4.html#idp20726064-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="rosenbrock4.html#idp20728640-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="rosenbrock4.html#idp20730864-bb"><span class="identifier">prepare_dense_output</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="rosenbrock4.html#idp20731344-bb"><span class="identifier">calc_state</span></a><span class="special">(</span><span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a class="link" href="rosenbrock4.html#idp20733856-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="rosenbrock4.html#idp20735488-bb">protected member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="rosenbrock4.html#idp20735696-bb"><span class="identifier">resize_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="rosenbrock4.html#idp20736912-bb"><span class="identifier">resize_x_err</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// public data members</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">order_type</span> <span class="identifier">stepper_order</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">order_type</span> <span class="identifier">error_order</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp34632368"></a><h2>Description</h2> +<div class="refsect2"> +<a name="idp34632576"></a><h3> +<a name="boost.numeric.odeint.rosenbrock4construct-copy-destruct"></a><code class="computeroutput">rosenbrock4</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><a name="idp20735088-bb"></a><span class="identifier">rosenbrock4</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +<div class="refsect2"> +<a name="idp34635776"></a><h3> +<a name="idp20719920-bb"></a><code class="computeroutput">rosenbrock4</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="identifier">order_type</span> <a name="idp20720128-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="keyword">void</span> <a name="idp20720592-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">state_type</span> <span class="special">&</span> xout<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="keyword">void</span> <a name="idp20723504-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="identifier">state_type</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="keyword">void</span> <a name="idp20726064-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">state_type</span> <span class="special">&</span> xout<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="keyword">void</span> <a name="idp20728640-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idp20730864-bb"></a><span class="identifier">prepare_dense_output</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idp20731344-bb"></a><span class="identifier">calc_state</span><span class="special">(</span><span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> x_old<span class="special">,</span> + <span class="identifier">time_type</span> t_old<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> x_new<span class="special">,</span> <span class="identifier">time_type</span> t_new<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a name="idp20733856-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp34681616"></a><h3> +<a name="idp20735488-bb"></a><code class="computeroutput">rosenbrock4</code> protected member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20735696-bb"></a><span class="identifier">resize_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20736912-bb"></a><span class="identifier">resize_x_err</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="default_rosenb_idp20694128.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_controller_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/rosenbrock4_controller.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/rosenbrock4_controller.html new file mode 100644 index 000000000..701ba8112 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/rosenbrock4_controller.html @@ -0,0 +1,124 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template rosenbrock4_controller</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_controller_hpp.html" title="Header <boost/numeric/odeint/stepper/rosenbrock4_controller.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_controller_hpp.html" title="Header <boost/numeric/odeint/stepper/rosenbrock4_controller.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_dense_output_hpp.html" title="Header <boost/numeric/odeint/stepper/rosenbrock4_dense_output.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_controller_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_controller_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_dense_output_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.rosenbrock4_controller"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template rosenbrock4_controller</span></h2> +<p>boost::numeric::odeint::rosenbrock4_controller</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_controller_hpp.html" title="Header <boost/numeric/odeint/stepper/rosenbrock4_controller.hpp>">boost/numeric/odeint/stepper/rosenbrock4_controller.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="rosenbrock4_controller.html" title="Class template rosenbrock4_controller">rosenbrock4_controller</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">Stepper</span> <a name="boost.numeric.odeint.rosenbrock4_controller.stepper_type"></a><span class="identifier">stepper_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.rosenbrock4_controller.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">state_type</span> <a name="boost.numeric.odeint.rosenbrock4_controller.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">wrapped_state_type</span> <a name="boost.numeric.odeint.rosenbrock4_controller.wrapped_state_type"></a><span class="identifier">wrapped_state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">time_type</span> <a name="boost.numeric.odeint.rosenbrock4_controller.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">deriv_type</span> <a name="boost.numeric.odeint.rosenbrock4_controller.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">wrapped_deriv_type</span> <a name="boost.numeric.odeint.rosenbrock4_controller.wrapped_deriv_type"></a><span class="identifier">wrapped_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">resizer_type</span> <a name="boost.numeric.odeint.rosenbrock4_controller.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">controlled_stepper_tag</span> <a name="boost.numeric.odeint.rosenbrock4_controller.stepper_category"></a><span class="identifier">stepper_category</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">rosenbrock4_controller</span><span class="special"><</span> <span class="identifier">Stepper</span> <span class="special">></span> <a name="boost.numeric.odeint.rosenbrock4_controller.controller_type"></a><span class="identifier">controller_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="rosenbrock4_controller.html#boost.numeric.odeint.rosenbrock4_controllerconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="rosenbrock4_controller.html#idp20753408-bb"><span class="identifier">rosenbrock4_controller</span></a><span class="special">(</span><span class="identifier">value_type</span> <span class="special">=</span> <span class="number">1</span><span class="special">.</span><span class="number">0e</span><span class="special">-</span><span class="number">6</span><span class="special">,</span> <span class="identifier">value_type</span> <span class="special">=</span> <span class="number">1</span><span class="special">.</span><span class="number">0e</span><span class="special">-</span><span class="number">6</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">stepper_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="rosenbrock4_controller.html#idp20743168-bb">public member functions</a></span> + <span class="identifier">value_type</span> <a class="link" href="rosenbrock4_controller.html#idp20743376-bb"><span class="identifier">error</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">value_type</span> <a class="link" href="rosenbrock4_controller.html#idp20744896-bb"><span class="identifier">last_error</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">controlled_step_result</span> + <a class="link" href="rosenbrock4_controller.html#idp20745696-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">controlled_step_result</span> + <a class="link" href="rosenbrock4_controller.html#idp20747952-bb"><span class="identifier">try_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a class="link" href="rosenbrock4_controller.html#idp20750560-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">stepper_type</span> <span class="special">&</span> <a class="link" href="rosenbrock4_controller.html#idp20751792-bb"><span class="identifier">stepper</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> <a class="link" href="rosenbrock4_controller.html#idp20752592-bb"><span class="identifier">stepper</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="rosenbrock4_controller.html#idp20754928-bb">private member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="rosenbrock4_controller.html#idp20755136-bb"><span class="identifier">resize_m_xerr</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="rosenbrock4_controller.html#idp20756352-bb"><span class="identifier">resize_m_xnew</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp34778080"></a><h2>Description</h2> +<div class="refsect2"> +<a name="idp34778288"></a><h3> +<a name="boost.numeric.odeint.rosenbrock4_controllerconstruct-copy-destruct"></a><code class="computeroutput">rosenbrock4_controller</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><a name="idp20753408-bb"></a><span class="identifier">rosenbrock4_controller</span><span class="special">(</span><span class="identifier">value_type</span> atol <span class="special">=</span> <span class="number">1</span><span class="special">.</span><span class="number">0e</span><span class="special">-</span><span class="number">6</span><span class="special">,</span> <span class="identifier">value_type</span> rtol <span class="special">=</span> <span class="number">1</span><span class="special">.</span><span class="number">0e</span><span class="special">-</span><span class="number">6</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> stepper <span class="special">=</span> <span class="identifier">stepper_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +<div class="refsect2"> +<a name="idp34787952"></a><h3> +<a name="idp20743168-bb"></a><code class="computeroutput">rosenbrock4_controller</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="identifier">value_type</span> <a name="idp20743376-bb"></a><span class="identifier">error</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> xold<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">value_type</span> <a name="idp20744896-bb"></a><span class="identifier">last_error</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">controlled_step_result</span> + <a name="idp20745696-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> sys<span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">controlled_step_result</span> + <a name="idp20747952-bb"></a><span class="identifier">try_step</span><span class="special">(</span><span class="identifier">System</span> sys<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span> t<span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span> xout<span class="special">,</span> + <span class="identifier">time_type</span> <span class="special">&</span> dt<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a name="idp20750560-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">stepper_type</span> <span class="special">&</span> <a name="idp20751792-bb"></a><span class="identifier">stepper</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">stepper_type</span> <span class="special">&</span> <a name="idp20752592-bb"></a><span class="identifier">stepper</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp34825664"></a><h3> +<a name="idp20754928-bb"></a><code class="computeroutput">rosenbrock4_controller</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20755136-bb"></a><span class="identifier">resize_m_xerr</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20756352-bb"></a><span class="identifier">resize_m_xnew</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_controller_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_controller_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_dense_output_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/rosenbrock4_dense_output.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/rosenbrock4_dense_output.html new file mode 100644 index 000000000..36ad984f0 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/rosenbrock4_dense_output.html @@ -0,0 +1,129 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template rosenbrock4_dense_output</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_dense_output_hpp.html" title="Header <boost/numeric/odeint/stepper/rosenbrock4_dense_output.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_dense_output_hpp.html" title="Header <boost/numeric/odeint/stepper/rosenbrock4_dense_output.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta4.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_dense_output_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_dense_output_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.rosenbrock4_dense_output"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template rosenbrock4_dense_output</span></h2> +<p>boost::numeric::odeint::rosenbrock4_dense_output</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_dense_output_hpp.html" title="Header <boost/numeric/odeint/stepper/rosenbrock4_dense_output.hpp>">boost/numeric/odeint/stepper/rosenbrock4_dense_output.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ControlledStepper<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output">rosenbrock4_dense_output</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">ControlledStepper</span> <a name="boost.numeric.odeint.rosenbrock4_dense_output.controlled_stepper_type"></a><span class="identifier">controlled_stepper_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">controlled_stepper_type</span><span class="special">::</span><span class="identifier">stepper_type</span> <a name="boost.numeric.odeint.rosenbrock4_dense_output.stepper_type"></a><span class="identifier">stepper_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.rosenbrock4_dense_output.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">state_type</span> <a name="boost.numeric.odeint.rosenbrock4_dense_output.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">wrapped_state_type</span> <a name="boost.numeric.odeint.rosenbrock4_dense_output.wrapped_state_type"></a><span class="identifier">wrapped_state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">time_type</span> <a name="boost.numeric.odeint.rosenbrock4_dense_output.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">deriv_type</span> <a name="boost.numeric.odeint.rosenbrock4_dense_output.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">wrapped_deriv_type</span> <a name="boost.numeric.odeint.rosenbrock4_dense_output.wrapped_deriv_type"></a><span class="identifier">wrapped_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_type</span><span class="special">::</span><span class="identifier">resizer_type</span> <a name="boost.numeric.odeint.rosenbrock4_dense_output.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">dense_output_stepper_tag</span> <a name="boost.numeric.odeint.rosenbrock4_dense_output.stepper_category"></a><span class="identifier">stepper_category</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">rosenbrock4_dense_output</span><span class="special"><</span> <span class="identifier">ControlledStepper</span> <span class="special">></span> <a name="boost.numeric.odeint.rosenbrock4_dense_output.dense_output_stepper_type"></a><span class="identifier">dense_output_stepper_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="rosenbrock4_dense_output.html#boost.numeric.odeint.rosenbrock4_dense_outputconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="rosenbrock4_dense_output.html#idp20774800-bb"><span class="identifier">rosenbrock4_dense_output</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">controlled_stepper_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">controlled_stepper_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="rosenbrock4_dense_output.html#idp20763040-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="rosenbrock4_dense_output.html#idp20763248-bb"><span class="identifier">initialize</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span> <a class="link" href="rosenbrock4_dense_output.html#idp20765152-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">></span> <span class="keyword">void</span> <a class="link" href="rosenbrock4_dense_output.html#idp20766400-bb"><span class="identifier">calc_state</span></a><span class="special">(</span><span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">></span> <span class="keyword">void</span> <a class="link" href="rosenbrock4_dense_output.html#idp20767952-bb"><span class="identifier">calc_state</span></a><span class="special">(</span><span class="identifier">time_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a class="link" href="rosenbrock4_dense_output.html#idp20769520-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="rosenbrock4_dense_output.html#idp20770752-bb"><span class="identifier">current_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">time_type</span> <a class="link" href="rosenbrock4_dense_output.html#idp20771568-bb"><span class="identifier">current_time</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="rosenbrock4_dense_output.html#idp20772368-bb"><span class="identifier">previous_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">time_type</span> <a class="link" href="rosenbrock4_dense_output.html#idp20773184-bb"><span class="identifier">previous_time</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">time_type</span> <a class="link" href="rosenbrock4_dense_output.html#idp20773984-bb"><span class="identifier">current_time_step</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="rosenbrock4_dense_output.html#idp20775376-bb">private member functions</a></span> + <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="rosenbrock4_dense_output.html#idp20775584-bb"><span class="identifier">get_current_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="rosenbrock4_dense_output.html#idp20776400-bb"><span class="identifier">get_current_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="rosenbrock4_dense_output.html#idp20777232-bb"><span class="identifier">get_old_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a class="link" href="rosenbrock4_dense_output.html#idp20778032-bb"><span class="identifier">get_old_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="rosenbrock4_dense_output.html#idp20778848-bb"><span class="identifier">toggle_current_state</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="rosenbrock4_dense_output.html#idp20779664-bb"><span class="identifier">resize_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp34931952"></a><h2>Description</h2> +<div class="refsect2"> +<a name="idp34932160"></a><h3> +<a name="boost.numeric.odeint.rosenbrock4_dense_outputconstruct-copy-destruct"></a><code class="computeroutput">rosenbrock4_dense_output</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><a name="idp20774800-bb"></a><span class="identifier">rosenbrock4_dense_output</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">controlled_stepper_type</span> <span class="special">&</span> stepper <span class="special">=</span> <span class="identifier">controlled_stepper_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +<div class="refsect2"> +<a name="idp34937280"></a><h3> +<a name="idp20763040-bb"></a><code class="computeroutput">rosenbrock4_dense_output</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> + <span class="keyword">void</span> <a name="idp20763248-bb"></a><span class="identifier">initialize</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x0<span class="special">,</span> <span class="identifier">time_type</span> t0<span class="special">,</span> <span class="identifier">time_type</span> dt0<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">></span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span> <a name="idp20765152-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">></span> <span class="keyword">void</span> <a name="idp20766400-bb"></a><span class="identifier">calc_state</span><span class="special">(</span><span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">></span> <span class="keyword">void</span> <a name="idp20767952-bb"></a><span class="identifier">calc_state</span><span class="special">(</span><span class="identifier">time_type</span> t<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateOut</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a name="idp20769520-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20770752-bb"></a><span class="identifier">current_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">time_type</span> <a name="idp20771568-bb"></a><span class="identifier">current_time</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20772368-bb"></a><span class="identifier">previous_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">time_type</span> <a name="idp20773184-bb"></a><span class="identifier">previous_time</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">time_type</span> <a name="idp20773984-bb"></a><span class="identifier">current_time_step</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp34978448"></a><h3> +<a name="idp20775376-bb"></a><code class="computeroutput">rosenbrock4_dense_output</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20775584-bb"></a><span class="identifier">get_current_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20776400-bb"></a><span class="identifier">get_current_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20777232-bb"></a><span class="identifier">get_old_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <a name="idp20778032-bb"></a><span class="identifier">get_old_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idp20778848-bb"></a><span class="identifier">toggle_current_state</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20779664-bb"></a><span class="identifier">resize_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_dense_output_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/rosenbrock4_dense_output_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta4.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta4.html new file mode 100644 index 000000000..bcd9654f2 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta4.html @@ -0,0 +1,489 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template runge_kutta4</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta4.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta4.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_classic_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta4_classic.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_classic_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.runge_kutta4"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template runge_kutta4</span></h2> +<p>boost::numeric::odeint::runge_kutta4 — The classical Runge-Kutta stepper of fourth order. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta4.hpp>">boost/numeric/odeint/stepper/runge_kutta4.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> + <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="runge_kutta4.html" title="Class template runge_kutta4">runge_kutta4</a> <span class="special">:</span> <span class="keyword">public</span> boost::numeric::odeint::explicit_generic_rk< StageCount, Order, State, Value, Deriv, Time, Algebra, Operations, Resizer > +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">state_type</span> <a name="boost.numeric.odeint.runge_kutta4.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.runge_kutta4.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">deriv_type</span> <a name="boost.numeric.odeint.runge_kutta4.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">time_type</span> <a name="boost.numeric.odeint.runge_kutta4.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.runge_kutta4.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">operations_type</span> <a name="boost.numeric.odeint.runge_kutta4.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">resizer_type</span> <a name="boost.numeric.odeint.runge_kutta4.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="runge_kutta4.html#boost.numeric.odeint.runge_kutta4construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="runge_kutta4.html#idp20829264-bb"><span class="identifier">runge_kutta4</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="runge_kutta4.html#idp20792448-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta4.html#idp20792656-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="runge_kutta4.html#idp20800176-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="runge_kutta4.html#idp20802064-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta4.html#idp20803312-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta4.html#idp20807312-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="runge_kutta4.html#idp20810048-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta4.html#idp20816064-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta4.html#idp20821120-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="runge_kutta4.html#idp20827392-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="runge_kutta4.html#idp20828320-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp35112688"></a><h2>Description</h2> +<p>The Runge-Kutta method of fourth order is one standard method for solving ordinary differential equations and is widely used, see also <a href="http://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods" target="_top">en.wikipedia.org/wiki/Runge-Kutta_methods</a> The method is explicit and fulfills the Stepper concept. Step size control or continuous output are not provided.</p> +<p>This class derives from <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a> and inherits its interface via CRTP (current recurring template pattern). Furthermore, it derivs from <a class="link" href="explicit_generic_rk.html" title="Class template explicit_generic_rk">explicit_generic_rk</a> which is a generic Runge-Kutta algorithm. For more details see <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a> and <a class="link" href="explicit_generic_rk.html" title="Class template explicit_generic_rk">explicit_generic_rk</a>.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp35116176"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> State</pre> +<p>The state type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span></pre> +<p>The value type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span></pre> +<p>The type representing the time derivative of the state. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span></pre> +<p>The time representing the independent variable - the time. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span></pre> +<p>The algebra type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span></pre> +<p>The operations type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span></pre> +<p>The resizer policy type. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp35127488"></a><h3> +<a name="boost.numeric.odeint.runge_kutta4construct-copy-destruct"></a><code class="computeroutput">runge_kutta4</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp20829264-bb"></a><span class="identifier">runge_kutta4</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs the <code class="computeroutput"><a class="link" href="runge_kutta4.html" title="Class template runge_kutta4">runge_kutta4</a></code> class. This constructor can be used as a default constructor if the algebra has a default constructor. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored inside <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code>. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp35152032"></a><h3> +<a name="idp20792448-bb"></a><code class="computeroutput">runge_kutta4</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20792656-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The derivative <code class="computeroutput">dxdt</code> of <code class="computeroutput">in</code> at the time <code class="computeroutput">t</code> is passed to the method. The result is updated out of place, hence the input is in <code class="computeroutput">in</code> and the output in <code class="computeroutput">out</code>. Access to this step functionality is provided by <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code> and <code class="computeroutput">do_step_impl</code> should not be called directly. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a name="idp20800176-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp20802064-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of the stepper. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20803312-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. It transforms the result in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20807312-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp20810048-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. Additionally to the other method the derivative of x is also passed to this method. It is supposed to be used in the following way: <pre class="programlisting">sys( x , dxdt , t ); +stepper.do_step( sys , x , dxdt , t , dt ); +</pre> +<p>The result is updated in place in x. This method is disabled if Time and Deriv are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20816064-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. The state of the ODE is updated out-of-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20821120-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper. It is supposed to be used in the following way: <pre class="programlisting">sys( in , dxdt , t ); +stepper.do_step( sys , in , dxdt , t , out , dt ); +</pre> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20827392-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20828320-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_classic_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta4_classic.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta4_classic.html new file mode 100644 index 000000000..dae648e50 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta4_classic.html @@ -0,0 +1,522 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template runge_kutta4_classic</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_classic_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta4_classic.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_classic_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta4_classic.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta_cash_karp54.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_classic_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_classic_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.runge_kutta4_classic"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template runge_kutta4_classic</span></h2> +<p>boost::numeric::odeint::runge_kutta4_classic — The classical Runge-Kutta stepper of fourth order. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_classic_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta4_classic.hpp>">boost/numeric/odeint/stepper/runge_kutta4_classic.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> + <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="runge_kutta4_classic.html" title="Class template runge_kutta4_classic">runge_kutta4_classic</a> <span class="special">:</span> <span class="keyword">public</span> boost::numeric::odeint::explicit_stepper_base< Stepper, Order, State, Value, Deriv, Time, Algebra, Operations, Resizer > +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a><span class="special"><</span> <a class="link" href="runge_kutta4_classic.html" title="Class template runge_kutta4_classic">runge_kutta4_classic</a><span class="special"><</span> <span class="special">...</span> <span class="special">></span><span class="special">,</span><span class="special">...</span> <span class="special">></span> <a name="boost.numeric.odeint.runge_kutta4_classic.stepper_base_type"></a><span class="identifier">stepper_base_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">state_type</span> <a name="boost.numeric.odeint.runge_kutta4_classic.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.runge_kutta4_classic.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">deriv_type</span> <a name="boost.numeric.odeint.runge_kutta4_classic.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">time_type</span> <a name="boost.numeric.odeint.runge_kutta4_classic.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.runge_kutta4_classic.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">operations_type</span> <a name="boost.numeric.odeint.runge_kutta4_classic.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">resizer_type</span> <a name="boost.numeric.odeint.runge_kutta4_classic.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="runge_kutta4_classic.html#boost.numeric.odeint.runge_kutta4_classicconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="runge_kutta4_classic.html#idp20881600-bb"><span class="identifier">runge_kutta4_classic</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="runge_kutta4_classic.html#idp20842880-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta4_classic.html#idp20843088-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a class="link" href="runge_kutta4_classic.html#idp20850608-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="runge_kutta4_classic.html#idp20852512-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta4_classic.html#idp20853760-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta4_classic.html#idp20857760-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="runge_kutta4_classic.html#idp20860496-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta4_classic.html#idp20866512-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta4_classic.html#idp20871568-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="runge_kutta4_classic.html#idp20877840-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="runge_kutta4_classic.html#idp20879728-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="runge_kutta4_classic.html#idp20880656-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="runge_kutta4_classic.html#idp20883648-bb">private member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="runge_kutta4_classic.html#idp20883856-bb"><span class="identifier">resize_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp35382560"></a><h2>Description</h2> +<p>The Runge-Kutta method of fourth order is one standard method for solving ordinary differential equations and is widely used, see also <a href="http://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods" target="_top">en.wikipedia.org/wiki/Runge-Kutta_methods</a> The method is explicit and fulfills the Stepper concept. Step size control or continuous output are not provided. This class implements the method directly, hence the generic Runge-Kutta algorithm is not used.</p> +<p>This class derives from <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a> and inherits its interface via CRTP (current recurring template pattern). For more details see <a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a>.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp35385088"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> State</pre> +<p>The state type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span></pre> +<p>The value type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span></pre> +<p>The type representing the time derivative of the state. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span></pre> +<p>The time representing the independent variable - the time. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span></pre> +<p>The algebra type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span></pre> +<p>The operations type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span></pre> +<p>The resizer policy type. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp35396400"></a><h3> +<a name="boost.numeric.odeint.runge_kutta4_classicconstruct-copy-destruct"></a><code class="computeroutput">runge_kutta4_classic</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp20881600-bb"></a><span class="identifier">runge_kutta4_classic</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs the <code class="computeroutput"><a class="link" href="runge_kutta4_classic.html" title="Class template runge_kutta4_classic">runge_kutta4_classic</a></code> class. This constructor can be used as a default constructor if the algebra has a default constructor. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored inside <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code>. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp35404768"></a><h3> +<a name="idp20842880-bb"></a><code class="computeroutput">runge_kutta4_classic</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20843088-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The derivative <code class="computeroutput">dxdt</code> of <code class="computeroutput">in</code> at the time <code class="computeroutput">t</code> is passed to the method. The result is updated out of place, hence the input is in <code class="computeroutput">in</code> and the output in <code class="computeroutput">out</code>. Access to this step functionality is provided by <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code> and <code class="computeroutput">do_step_impl</code> should not be called directly. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a name="idp20850608-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp20852512-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of the stepper. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20853760-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. It transforms the result in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20857760-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp20860496-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. Additionally to the other method the derivative of x is also passed to this method. It is supposed to be used in the following way: <pre class="programlisting">sys( x , dxdt , t ); +stepper.do_step( sys , x , dxdt , t , dt ); +</pre> +<p>The result is updated in place in x. This method is disabled if Time and Deriv are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20866512-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. The state of the ODE is updated out-of-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20871568-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper. It is supposed to be used in the following way: <pre class="programlisting">sys( in , dxdt , t ); +stepper.do_step( sys , in , dxdt , t , out , dt ); +</pre> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a name="idp20877840-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20879728-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20880656-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp35513888"></a><h3> +<a name="idp20883648-bb"></a><code class="computeroutput">runge_kutta4_classic</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20883856-bb"></a><span class="identifier">resize_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_classic_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/runge_kutta4_classic_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta_ca_idp20976880.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta_ca_idp20976880.html new file mode 100644 index 000000000..a60495e23 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta_ca_idp20976880.html @@ -0,0 +1,834 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template runge_kutta_cash_karp54_classic</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_dopri5_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta_dopri5.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_dopri5_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.runge_kutta_ca_idp20976880"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template runge_kutta_cash_karp54_classic</span></h2> +<p>boost::numeric::odeint::runge_kutta_cash_karp54_classic — The Runge-Kutta Cash-Karp method implemented without the generic Runge-Kutta algorithm. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic.hpp>">boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> + <span class="keyword">typename</span> Time <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic">runge_kutta_cash_karp54_classic</a> <span class="special">:</span> <span class="keyword">public</span> boost::numeric::odeint::explicit_error_stepper_base< Stepper, Order, StepperOrder, ErrorOrder, State, Value, Deriv, Time, Algebra, Operations, Resizer > +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <a class="link" href="explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a><span class="special"><</span> <a class="link" href="runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic">runge_kutta_cash_karp54_classic</a><span class="special"><</span> <span class="special">...</span> <span class="special">></span><span class="special">,</span><span class="special">...</span> <span class="special">></span> <a name="boost.numeric.odeint.runge_kutta_ca_idp20976880.stepper_base_type"></a><span class="identifier">stepper_base_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">state_type</span> <a name="boost.numeric.odeint.runge_kutta_ca_idp20976880.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.runge_kutta_ca_idp20976880.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">deriv_type</span> <a name="boost.numeric.odeint.runge_kutta_ca_idp20976880.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">time_type</span> <a name="boost.numeric.odeint.runge_kutta_ca_idp20976880.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.runge_kutta_ca_idp20976880.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">operations_type</span> <a name="boost.numeric.odeint.runge_kutta_ca_idp20976880.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">resizer_type</span> <a name="boost.numeric.odeint.runge_kutta_ca_idp20976880.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="runge_kutta_ca_idp20976880.html#boost.numeric.odeint.runge_kutta_ca_idp20976880construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="runge_kutta_ca_idp20976880.html#idp21064736-bb"><span class="identifier">runge_kutta_cash_karp54_classic</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="runge_kutta_ca_idp20976880.html#idp20987312-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_ca_idp20976880.html#idp20987520-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_ca_idp20976880.html#idp20996304-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="runge_kutta_ca_idp20976880.html#idp21003840-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="runge_kutta_ca_idp20976880.html#idp21005728-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="runge_kutta_ca_idp20976880.html#idp21007008-bb"><span class="identifier">stepper_order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="runge_kutta_ca_idp20976880.html#idp21008288-bb"><span class="identifier">error_order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_ca_idp20976880.html#idp21009584-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_ca_idp20976880.html#idp21013584-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="runge_kutta_ca_idp20976880.html#idp21016320-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="runge_kutta_ca_idp20976880.html#idp21022368-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="runge_kutta_ca_idp20976880.html#idp21027872-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_ca_idp20976880.html#idp21034432-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_ca_idp20976880.html#idp21039296-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> Err<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="runge_kutta_ca_idp20976880.html#idp21042640-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_ca_idp20976880.html#idp21049536-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_ca_idp20976880.html#idp21055504-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="runge_kutta_ca_idp20976880.html#idp21062864-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="runge_kutta_ca_idp20976880.html#idp21063792-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="runge_kutta_ca_idp20976880.html#idp21066800-bb">private member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="runge_kutta_ca_idp20976880.html#idp21067008-bb"><span class="identifier">resize_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp36153488"></a><h2>Description</h2> +<p>The Runge-Kutta Cash-Karp method is one of the standard methods for solving ordinary differential equations, see <a href="http://en.wikipedia.org/wiki/Cash%E2%80%93Karp_method" target="_top">en.wikipedia.org/wiki/Cash-Karp_method</a>. The method is explicit and fulfills the Error Stepper concept. Step size control is provided but continuous output is not available for this method.</p> +<p>This class derives from <a class="link" href="explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a> and inherits its interface via CRTP (current recurring template pattern). This class implements the method directly, hence the generic Runge-Kutta algorithm is not used.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp36155520"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> State</pre> +<p>The state type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span></pre> +<p>The value type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span></pre> +<p>The type representing the time derivative of the state. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time <span class="special">=</span> <span class="keyword">double</span></pre> +<p>The time representing the independent variable - the time. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span></pre> +<p>The algebra type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span></pre> +<p>The operations type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span></pre> +<p>The resizer policy type. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp36166832"></a><h3> +<a name="boost.numeric.odeint.runge_kutta_ca_idp20976880construct-copy-destruct"></a><code class="computeroutput">runge_kutta_cash_karp54_classic</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp21064736-bb"></a><span class="identifier">runge_kutta_cash_karp54_classic</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs the <code class="computeroutput"><a class="link" href="runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic">runge_kutta_cash_karp54_classic</a></code> class. This constructor can be used as a default constructor if the algebra has a default constructor. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored inside <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code>. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp36175232"></a><h3> +<a name="idp20987312-bb"></a><code class="computeroutput">runge_kutta_cash_karp54_classic</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp20987520-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The derivative <code class="computeroutput">dxdt</code> of <code class="computeroutput">in</code> at the time <code class="computeroutput">t</code> is passed to the method. <p>The result is updated out-of-place, hence the input is in <code class="computeroutput">in</code> and the output in <code class="computeroutput">out</code>. Futhermore, an estimation of the error is stored in <code class="computeroutput">xerr</code>. Access to this step functionality is provided by <code class="computeroutput"><a class="link" href="explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a></code> and <code class="computeroutput">do_step_impl</code> should not be called directly.</p> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The result of the error estimation is written in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20996304-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The derivative <code class="computeroutput">dxdt</code> of <code class="computeroutput">in</code> at the time <code class="computeroutput">t</code> is passed to the method. The result is updated out-of-place, hence the input is in <code class="computeroutput">in</code> and the output in <code class="computeroutput">out</code>. Access to this step functionality is provided by <code class="computeroutput"><a class="link" href="explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a></code> and <code class="computeroutput">do_step_impl</code> should not be called directly. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a name="idp21003840-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp21005728-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of the stepper if it used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp21007008-bb"></a><span class="identifier">stepper_order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of a step if the stepper is used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp21008288-bb"></a><span class="identifier">error_order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of an error step if the stepper is used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21009584-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. It transforms the result in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21013584-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp21016320-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. Additionally to the other method the derivative of x is also passed to this method. It is supposed to be used in the following way: <pre class="programlisting">sys( x , dxdt , t ); +stepper.do_step( sys , x , dxdt , t , dt ); +</pre> +<p>The result is updated in place in x. This method is disabled if Time and Deriv are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp21022368-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. This method is disabled if StateIn and Time are the same type. In this case the method can not be distinguished from other <code class="computeroutput">do_step</code> variants. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp21027872-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper. It is supposed to be used in the following way: <pre class="programlisting">sys( in , dxdt , t ); +stepper.do_step( sys , in , dxdt , t , out , dt ); +</pre> +<p>This method is disabled if DerivIn and Time are of same type.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp21034432-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper and estimates the error. The state of the ODE is updated in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. x is updated by this method. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The estimation of the error is stored in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp21039296-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp21042640-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. Additionally to the other method the derivative of x is also passed to this method. It is supposed to be used in the following way: <pre class="programlisting">sys( x , dxdt , t ); +stepper.do_step( sys , x , dxdt , t , dt , xerr ); +</pre> +<p>The result is updated in place in x. This method is disabled if Time and DerivIn are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate is stored in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp21049536-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the error is estimated. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp21055504-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper and the error is estimated. It is supposed to be used in the following way: <pre class="programlisting">sys( in , dxdt , t ); +stepper.do_step( sys , in , dxdt , t , out , dt ); +</pre> +<p>This method is disabled if DerivIn and Time are of same type.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp21062864-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp21063792-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp36410800"></a><h3> +<a name="idp21066800-bb"></a><code class="computeroutput">runge_kutta_cash_karp54_classic</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp21067008-bb"></a><span class="identifier">resize_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_dopri5_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta_cash_karp54.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta_cash_karp54.html new file mode 100644 index 000000000..aae897a89 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta_cash_karp54.html @@ -0,0 +1,824 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template runge_kutta_cash_karp54</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta_cash_karp54.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta_cash_karp54.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.runge_kutta_cash_karp54"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template runge_kutta_cash_karp54</span></h2> +<p>boost::numeric::odeint::runge_kutta_cash_karp54 — The Runge-Kutta Cash-Karp method. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta_cash_karp54.hpp>">boost/numeric/odeint/stepper/runge_kutta_cash_karp54.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> + <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54">runge_kutta_cash_karp54</a> <span class="special">:</span> <span class="keyword">public</span> boost::numeric::odeint::explicit_error_generic_rk< StageCount, Order, StepperOrder, ErrorOrder, State, Value, Deriv, Time, Algebra, Operations, Resizer > +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">state_type</span> <a name="boost.numeric.odeint.runge_kutta_cash_karp54.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.runge_kutta_cash_karp54.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">deriv_type</span> <a name="boost.numeric.odeint.runge_kutta_cash_karp54.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">time_type</span> <a name="boost.numeric.odeint.runge_kutta_cash_karp54.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.runge_kutta_cash_karp54.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">operations_type</span> <a name="boost.numeric.odeint.runge_kutta_cash_karp54.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">resizer_type</span> <a name="boost.numeric.odeint.runge_kutta_cash_karp54.resizer_typ"></a><span class="identifier">resizer_typ</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="runge_kutta_cash_karp54.html#boost.numeric.odeint.runge_kutta_cash_karp54construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="runge_kutta_cash_karp54.html#idp20974000-bb"><span class="identifier">runge_kutta_cash_karp54</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="runge_kutta_cash_karp54.html#idp20896784-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_cash_karp54.html#idp20896992-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_cash_karp54.html#idp20905584-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="runge_kutta_cash_karp54.html#idp20913104-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="runge_kutta_cash_karp54.html#idp20914992-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="runge_kutta_cash_karp54.html#idp20916272-bb"><span class="identifier">stepper_order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="runge_kutta_cash_karp54.html#idp20917552-bb"><span class="identifier">error_order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_cash_karp54.html#idp20918848-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_cash_karp54.html#idp20922848-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="runge_kutta_cash_karp54.html#idp20925584-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="runge_kutta_cash_karp54.html#idp20931632-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="runge_kutta_cash_karp54.html#idp20937136-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_cash_karp54.html#idp20943696-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_cash_karp54.html#idp20948560-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> Err<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="runge_kutta_cash_karp54.html#idp20951904-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_cash_karp54.html#idp20958800-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_cash_karp54.html#idp20964768-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="runge_kutta_cash_karp54.html#idp20972128-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="runge_kutta_cash_karp54.html#idp20973056-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp35710640"></a><h2>Description</h2> +<p>The Runge-Kutta Cash-Karp method is one of the standard methods for solving ordinary differential equations, see <a href="http://en.wikipedia.org/wiki/Cash%E2%80%93Karp_methods" target="_top">en.wikipedia.org/wiki/Cash-Karp_methods</a>. The method is explicit and fulfills the Error Stepper concept. Step size control is provided but continuous output is not available for this method.</p> +<p>This class derives from <a class="link" href="explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a> and inherits its interface via CRTP (current recurring template pattern). Furthermore, it derivs from <a class="link" href="explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk">explicit_error_generic_rk</a> which is a generic Runge-Kutta algorithm with error estimation. For more details see <a class="link" href="explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a> and <a class="link" href="explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk">explicit_error_generic_rk</a>.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp35714160"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> State</pre> +<p>The state type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span></pre> +<p>The value type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span></pre> +<p>The type representing the time derivative of the state. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span></pre> +<p>The time representing the independent variable - the time. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span></pre> +<p>The algebra type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span></pre> +<p>The operations type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span></pre> +<p>The resizer policy type. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp35725472"></a><h3> +<a name="boost.numeric.odeint.runge_kutta_cash_karp54construct-copy-destruct"></a><code class="computeroutput">runge_kutta_cash_karp54</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp20974000-bb"></a><span class="identifier">runge_kutta_cash_karp54</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs the <code class="computeroutput"><a class="link" href="runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54">runge_kutta_cash_karp54</a></code> class. This constructor can be used as a default constructor if the algebra has a default constructor. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored inside <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code>. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp35733840"></a><h3> +<a name="idp20896784-bb"></a><code class="computeroutput">runge_kutta_cash_karp54</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp20896992-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The derivative <code class="computeroutput">dxdt</code> of <code class="computeroutput">in</code> at the time <code class="computeroutput">t</code> is passed to the method. The result is updated out-of-place, hence the input is in <code class="computeroutput">in</code> and the output in <code class="computeroutput">out</code>. Futhermore, an estimation of the error is stored in <code class="computeroutput">xerr</code>. <code class="computeroutput">do_step_impl</code> is used by <code class="computeroutput"><a class="link" href="explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a></code>. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The result of the error estimation is written in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20905584-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The derivative <code class="computeroutput">dxdt</code> of <code class="computeroutput">in</code> at the time <code class="computeroutput">t</code> is passed to the method. The result is updated out-of-place, hence the input is in <code class="computeroutput">in</code> and the output in <code class="computeroutput">out</code>. Access to this step functionality is provided by <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code> and <code class="computeroutput">do_step_impl</code> should not be called directly. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a name="idp20913104-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp20914992-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of the stepper if it used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp20916272-bb"></a><span class="identifier">stepper_order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of a step if the stepper is used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp20917552-bb"></a><span class="identifier">error_order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of an error step if the stepper is used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20918848-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. It transforms the result in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20922848-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp20925584-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. Additionally to the other method the derivative of x is also passed to this method. It is supposed to be used in the following way: <pre class="programlisting">sys( x , dxdt , t ); +stepper.do_step( sys , x , dxdt , t , dt ); +</pre> +<p>The result is updated in place in x. This method is disabled if Time and Deriv are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp20931632-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. This method is disabled if StateIn and Time are the same type. In this case the method can not be distinguished from other <code class="computeroutput">do_step</code> variants. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp20937136-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper. It is supposed to be used in the following way: <pre class="programlisting">sys( in , dxdt , t ); +stepper.do_step( sys , in , dxdt , t , out , dt ); +</pre> +<p>This method is disabled if DerivIn and Time are of same type.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp20943696-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper and estimates the error. The state of the ODE is updated in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. x is updated by this method. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The estimation of the error is stored in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp20948560-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp20951904-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. Additionally to the other method the derivative of x is also passed to this method. It is supposed to be used in the following way: <pre class="programlisting">sys( x , dxdt , t ); +stepper.do_step( sys , x , dxdt , t , dt , xerr ); +</pre> +<p>The result is updated in place in x. This method is disabled if Time and DerivIn are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate is stored in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp20958800-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the error is estimated. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp20964768-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper and the error is estimated. It is supposed to be used in the following way: <pre class="programlisting">sys( in , dxdt , t ); +stepper.do_step( sys , in , dxdt , t , out , dt ); +</pre> +<p>This method is disabled if DerivIn and Time are of same type.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20972128-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20973056-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta_dopri5.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta_dopri5.html new file mode 100644 index 000000000..5ab84fefb --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta_dopri5.html @@ -0,0 +1,977 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template runge_kutta_dopri5</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_dopri5_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta_dopri5.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_dopri5_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta_dopri5.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_fehlberg78_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta_fehlberg78.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_dopri5_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_dopri5_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_fehlberg78_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.runge_kutta_dopri5"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template runge_kutta_dopri5</span></h2> +<p>boost::numeric::odeint::runge_kutta_dopri5 — The Runge-Kutta Dormand-Prince 5 method. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_dopri5_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta_dopri5.hpp>">boost/numeric/odeint/stepper/runge_kutta_dopri5.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> + <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5">runge_kutta_dopri5</a> <span class="special">:</span> <span class="keyword">public</span> boost::numeric::odeint::explicit_error_stepper_fsal_base< Stepper, Order, StepperOrder, ErrorOrder, State, Value, Deriv, Time, Algebra, Operations, Resizer > +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <a class="link" href="explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base">explicit_error_stepper_fsal_base</a><span class="special"><</span> <a class="link" href="runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5">runge_kutta_dopri5</a><span class="special"><</span> <span class="special">...</span> <span class="special">></span><span class="special">,</span><span class="special">...</span> <span class="special">></span> <a name="boost.numeric.odeint.runge_kutta_dopri5.stepper_base_type"></a><span class="identifier">stepper_base_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">state_type</span> <a name="boost.numeric.odeint.runge_kutta_dopri5.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.runge_kutta_dopri5.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">deriv_type</span> <a name="boost.numeric.odeint.runge_kutta_dopri5.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">time_type</span> <a name="boost.numeric.odeint.runge_kutta_dopri5.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.runge_kutta_dopri5.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">operations_type</span> <a name="boost.numeric.odeint.runge_kutta_dopri5.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">resizer_type</span> <a name="boost.numeric.odeint.runge_kutta_dopri5.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="runge_kutta_dopri5.html#boost.numeric.odeint.runge_kutta_dopri5construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="runge_kutta_dopri5.html#idp21179840-bb"><span class="identifier">runge_kutta_dopri5</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="runge_kutta_dopri5.html#idp21079712-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> DerivOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_dopri5.html#idp21079920-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">DerivOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> DerivOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_dopri5.html#idp21088912-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">DerivOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> StateIn1<span class="special">,</span> <span class="keyword">typename</span> DerivIn1<span class="special">,</span> + <span class="keyword">typename</span> StateIn2<span class="special">,</span> <span class="keyword">typename</span> DerivIn2<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_dopri5.html#idp21098768-bb"><span class="identifier">calc_state</span></a><span class="special">(</span><span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn1</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn1</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn2</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn2</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="runge_kutta_dopri5.html#idp21105424-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="runge_kutta_dopri5.html#idp21107312-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="runge_kutta_dopri5.html#idp21108592-bb"><span class="identifier">stepper_order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="runge_kutta_dopri5.html#idp21109872-bb"><span class="identifier">error_order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_dopri5.html#idp21111168-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_dopri5.html#idp21115424-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivInOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateInOut</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="runge_kutta_dopri5.html#idp21118160-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">DerivInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="runge_kutta_dopri5.html#idp21124848-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> DerivOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_dopri5.html#idp21130544-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">DerivOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_dopri5.html#idp21138064-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_dopri5.html#idp21143184-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivInOut<span class="special">,</span> + <span class="keyword">typename</span> Err<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateInOut</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="runge_kutta_dopri5.html#idp21146528-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">DerivInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_dopri5.html#idp21154144-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> DerivOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_dopri5.html#idp21160304-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">DerivOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_dopri5.html#idp21168432-bb"><span class="identifier">reset</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> DerivIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="runge_kutta_dopri5.html#idp21169728-bb"><span class="identifier">initialize</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_dopri5.html#idp21172512-bb"><span class="identifier">initialize</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="runge_kutta_dopri5.html#idp21176336-bb"><span class="identifier">is_initialized</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="runge_kutta_dopri5.html#idp21177968-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="runge_kutta_dopri5.html#idp21178896-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="runge_kutta_dopri5.html#idp21181888-bb">private member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="runge_kutta_dopri5.html#idp21182096-bb"><span class="identifier">resize_k_x_tmp_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="runge_kutta_dopri5.html#idp21183328-bb"><span class="identifier">resize_dxdt_tmp_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp36649376"></a><h2>Description</h2> +<p>The Runge-Kutta Dormand-Prince 5 method is a very popular method for solving ODEs, see <a href="../../../" target="_top"></a>. The method is explicit and fulfills the Error Stepper concept. Step size control is provided but continuous output is available which make this method favourable for many applications.</p> +<p>This class derives from <a class="link" href="explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base">explicit_error_stepper_fsal_base</a> and inherits its interface via CRTP (current recurring template pattern). The method possesses the FSAL (first-same-as-last) property. See <a class="link" href="explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base">explicit_error_stepper_fsal_base</a> for more details.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp36651696"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> State</pre> +<p>The state type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span></pre> +<p>The value type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span></pre> +<p>The type representing the time derivative of the state. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span></pre> +<p>The time representing the independent variable - the time. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span></pre> +<p>The algebra type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span></pre> +<p>The operations type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span></pre> +<p>The resizer policy type. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp36663056"></a><h3> +<a name="boost.numeric.odeint.runge_kutta_dopri5construct-copy-destruct"></a><code class="computeroutput">runge_kutta_dopri5</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp21179840-bb"></a><span class="identifier">runge_kutta_dopri5</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs the <code class="computeroutput"><a class="link" href="runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5">runge_kutta_dopri5</a></code> class. This constructor can be used as a default constructor if the algebra has a default constructor. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored inside <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code>. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp36671392"></a><h3> +<a name="idp21079712-bb"></a><code class="computeroutput">runge_kutta_dopri5</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> DerivOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21079920-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt_in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">DerivOut</span> <span class="special">&</span> dxdt_out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The derivative <code class="computeroutput">dxdt_in</code> of <code class="computeroutput">in</code> at the time <code class="computeroutput">t</code> is passed to the method. The result is updated out-of-place, hence the input is in <code class="computeroutput">in</code> and the output in <code class="computeroutput">out</code>. Furthermore, the derivative is update out-of-place, hence the input is assumed to be in <code class="computeroutput">dxdt_in</code> and the output in <code class="computeroutput">dxdt_out</code>. Access to this step functionality is provided by <code class="computeroutput"><a class="link" href="explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base">explicit_error_stepper_fsal_base</a></code> and <code class="computeroutput">do_step_impl</code> should not be called directly. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt_in</code></span></p></td> +<td><p>The derivative of x at t. dxdt_in is not modified by this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt_out</code></span></p></td> +<td><p>The result of the new derivative at time t+dt. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> DerivOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp21088912-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt_in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">DerivOut</span> <span class="special">&</span> dxdt_out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The derivative <code class="computeroutput">dxdt_in</code> of <code class="computeroutput">in</code> at the time <code class="computeroutput">t</code> is passed to the method. The result is updated out-of-place, hence the input is in <code class="computeroutput">in</code> and the output in <code class="computeroutput">out</code>. Furthermore, the derivative is update out-of-place, hence the input is assumed to be in <code class="computeroutput">dxdt_in</code> and the output in <code class="computeroutput">dxdt_out</code>. Access to this step functionality is provided by <code class="computeroutput"><a class="link" href="explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base">explicit_error_stepper_fsal_base</a></code> and <code class="computeroutput">do_step_impl</code> should not be called directly. An estimation of the error is calculated. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt_in</code></span></p></td> +<td><p>The derivative of x at t. dxdt_in is not modified by this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt_out</code></span></p></td> +<td><p>The result of the new derivative at time t+dt. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>An estimation of the error. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> StateIn1<span class="special">,</span> <span class="keyword">typename</span> DerivIn1<span class="special">,</span> + <span class="keyword">typename</span> StateIn2<span class="special">,</span> <span class="keyword">typename</span> DerivIn2<span class="special">></span> + <span class="keyword">void</span> <a name="idp21098768-bb"></a><span class="identifier">calc_state</span><span class="special">(</span><span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn1</span> <span class="special">&</span> x_old<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">DerivIn1</span> <span class="special">&</span> deriv_old<span class="special">,</span> <span class="identifier">time_type</span> t_old<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">StateIn2</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn2</span> <span class="special">&</span> deriv_new<span class="special">,</span> + <span class="identifier">time_type</span> t_new<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>This method is used for continuous output and it calculates the state <code class="computeroutput">x</code> at a time <code class="computeroutput">t</code> from the knowledge of two states <code class="computeroutput">old_state</code> and <code class="computeroutput">current_state</code> at time points <code class="computeroutput">t_old</code> and <code class="computeroutput">t_new</code>. It also uses internal variables to calculate the result. Hence this method must be called after two successful <code class="computeroutput">do_step</code> calls. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a name="idp21105424-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp21107312-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of the stepper if it used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp21108592-bb"></a><span class="identifier">stepper_order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of a step if the stepper is used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp21109872-bb"></a><span class="identifier">error_order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of an error step if the stepper is used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21111168-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. It transforms the result in-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method uses the internal state of the stepper.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21115424-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivInOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateInOut</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp21118160-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">DerivInOut</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. Additionally to the other methods the derivative of x is also passed to this method. Therefore, dxdt must be evaluated initially: <pre class="programlisting">ode( x , dxdt , t ); +for( ... ) +{ + stepper.do_step( ode , x , dxdt , t , dt ); + t += dt; +} +</pre> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does NOT use the initial state, since the first derivative is explicitly passed to this method.</p></td></tr> +</table></div> +<p> +The result is updated in place in x as well as the derivative dxdt. This method is disabled if Time and StateInOut are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. After calling <code class="computeroutput">do_step</code> dxdt is updated to the new value. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp21124848-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. This method is disabled if StateIn and Time are the same type. In this case the method can not be distinguished from other <code class="computeroutput">do_step</code> variants. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>This method uses the internal state of the stepper.</p> +<p>This method does not solve the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> DerivOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21130544-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt_in<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">DerivOut</span> <span class="special">&</span> dxdt_out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper and updated by the stepper to its new value at t+dt. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>This method does not solve the forwarding problem.</p> +<p>This method does NOT use the internal state of the stepper.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt_in</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt_out</code></span></p></td> +<td><p>The updated derivative of <code class="computeroutput">out</code> at <code class="computeroutput">t+dt</code>. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp21138064-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper and estimates the error. The state of the ODE is updated in-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method uses the internal state of the stepper.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. x is updated by this method. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The estimation of the error is stored in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp21143184-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivInOut<span class="special">,</span> + <span class="keyword">typename</span> Err<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateInOut</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp21146528-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">DerivInOut</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. Additionally to the other method the derivative of x is also passed to this method and updated by this method. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does NOT use the internal state of the stepper.</p></td></tr> +</table></div> +<p> +The result is updated in place in x. This method is disabled if Time and Deriv are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions. This method is disabled if StateInOut and Time are of the same type.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>This method does NOT use the internal state of the stepper.</p> +<p>This method does not solve the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. After calling <code class="computeroutput">do_step</code> this value is updated to the new value at <code class="computeroutput">t+dt</code>. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate is stored in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp21154144-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the error is estimated. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>This method uses the internal state of the stepper.</p> +<p>This method does not solve the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> DerivOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp21160304-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt_in<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">DerivOut</span> <span class="special">&</span> dxdt_out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper and the error is estimated. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>This method does NOT use the internal state of the stepper.</p> +<p>This method does not solve the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt_in</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt_out</code></span></p></td> +<td><p>The new derivative at <code class="computeroutput">t+dt</code> is written into this variable. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">void</span> <a name="idp21168432-bb"></a><span class="identifier">reset</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre>Resets the internal state of this stepper. After calling this method it is safe to use all <code class="computeroutput">do_step</code> method without explicitly initializing the stepper. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> DerivIn<span class="special">></span> <span class="keyword">void</span> <a name="idp21169728-bb"></a><span class="identifier">initialize</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> deriv<span class="special">)</span><span class="special">;</span></pre>Initializes the internal state of the stepper. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">deriv</code></span></p></td> +<td><p>The derivative of x. The next call of <code class="computeroutput">do_step</code> expects that the derivative of <code class="computeroutput">x</code> passed to <code class="computeroutput">do_step</code> has the value of <code class="computeroutput">deriv</code>. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">></span> + <span class="keyword">void</span> <a name="idp21172512-bb"></a><span class="identifier">initialize</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">)</span><span class="special">;</span></pre>Initializes the internal state of the stepper. <p>This method is equivalent to </p> +<pre class="programlisting">Deriv dxdt; +system( x , dxdt , t ); +stepper.initialize( dxdt ); +</pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function for the next calls of <code class="computeroutput">do_step</code>. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The current time of the ODE. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The current state of the ODE. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">bool</span> <a name="idp21176336-bb"></a><span class="identifier">is_initialized</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns if the stepper is already initialized. If the stepper is not initialized, the first call of <code class="computeroutput">do_step</code> will initialize the state of the stepper. If the stepper is already initialized the system function can not be safely exchanged between consecutive <code class="computeroutput">do_step</code> calls. </li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp21177968-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp21178896-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp36939920"></a><h3> +<a name="idp21181888-bb"></a><code class="computeroutput">runge_kutta_dopri5</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp21182096-bb"></a><span class="identifier">resize_k_x_tmp_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp21183328-bb"></a><span class="identifier">resize_dxdt_tmp_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_dopri5_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_dopri5_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_fehlberg78_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta_fehlberg78.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta_fehlberg78.html new file mode 100644 index 000000000..f2d57fbc8 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta_fehlberg78.html @@ -0,0 +1,824 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template runge_kutta_fehlberg78</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_fehlberg78_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta_fehlberg78.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_fehlberg78_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta_fehlberg78.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_fehlberg78_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_fehlberg78_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.runge_kutta_fehlberg78"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template runge_kutta_fehlberg78</span></h2> +<p>boost::numeric::odeint::runge_kutta_fehlberg78 — The Runge-Kutta Fehlberg 78 method. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_fehlberg78_hpp.html" title="Header <boost/numeric/odeint/stepper/runge_kutta_fehlberg78.hpp>">boost/numeric/odeint/stepper/runge_kutta_fehlberg78.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> + <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78">runge_kutta_fehlberg78</a> <span class="special">:</span> <span class="keyword">public</span> boost::numeric::odeint::explicit_error_generic_rk< StageCount, Order, StepperOrder, ErrorOrder, State, Value, Deriv, Time, Algebra, Operations, Resizer > +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">state_type</span> <a name="boost.numeric.odeint.runge_kutta_fehlberg78.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.runge_kutta_fehlberg78.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">deriv_type</span> <a name="boost.numeric.odeint.runge_kutta_fehlberg78.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">time_type</span> <a name="boost.numeric.odeint.runge_kutta_fehlberg78.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.runge_kutta_fehlberg78.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">operations_type</span> <a name="boost.numeric.odeint.runge_kutta_fehlberg78.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">resizer_type</span> <a name="boost.numeric.odeint.runge_kutta_fehlberg78.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="runge_kutta_fehlberg78.html#boost.numeric.odeint.runge_kutta_fehlberg78construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="runge_kutta_fehlberg78.html#idp21289280-bb"><span class="identifier">runge_kutta_fehlberg78</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="runge_kutta_fehlberg78.html#idp21195808-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_fehlberg78.html#idp21196016-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_fehlberg78.html#idp21204608-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a class="link" href="runge_kutta_fehlberg78.html#idp21212128-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="runge_kutta_fehlberg78.html#idp21214016-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="runge_kutta_fehlberg78.html#idp21215296-bb"><span class="identifier">stepper_order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">order_type</span> <a class="link" href="runge_kutta_fehlberg78.html#idp21216576-bb"><span class="identifier">error_order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_fehlberg78.html#idp21217872-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_fehlberg78.html#idp21221872-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="runge_kutta_fehlberg78.html#idp21224608-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="runge_kutta_fehlberg78.html#idp21230656-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="runge_kutta_fehlberg78.html#idp21236160-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_fehlberg78.html#idp21242720-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_fehlberg78.html#idp21247584-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> Err<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="runge_kutta_fehlberg78.html#idp21250928-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_fehlberg78.html#idp21257824-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="runge_kutta_fehlberg78.html#idp21263792-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="runge_kutta_fehlberg78.html#idp21271152-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="runge_kutta_fehlberg78.html#idp21272080-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp37141072"></a><h2>Description</h2> +<p>The Runge-Kutta Fehlberg 78 method is a standard method for high-precision applications. The method is explicit and fulfills the Error Stepper concept. Step size control is provided but continuous output is not available for this method.</p> +<p>This class derives from <a class="link" href="explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a> and inherits its interface via CRTP (current recurring template pattern). Furthermore, it derivs from <a class="link" href="explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk">explicit_error_generic_rk</a> which is a generic Runge-Kutta algorithm with error estimation. For more details see <a class="link" href="explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a> and <a class="link" href="explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk">explicit_error_generic_rk</a>.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp37144128"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> State</pre> +<p>The state type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span></pre> +<p>The value type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span></pre> +<p>The type representing the time derivative of the state. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span></pre> +<p>The time representing the independent variable - the time. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span></pre> +<p>The algebra type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span></pre> +<p>The operations type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span></pre> +<p>The resizer policy type. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp37155440"></a><h3> +<a name="boost.numeric.odeint.runge_kutta_fehlberg78construct-copy-destruct"></a><code class="computeroutput">runge_kutta_fehlberg78</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp21289280-bb"></a><span class="identifier">runge_kutta_fehlberg78</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs the runge_kutta_cash_fehlberg78 class. This constructor can be used as a default constructor if the algebra has a default constructor. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored inside <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code>. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp37163168"></a><h3> +<a name="idp21195808-bb"></a><code class="computeroutput">runge_kutta_fehlberg78</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp21196016-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The derivative <code class="computeroutput">dxdt</code> of <code class="computeroutput">in</code> at the time <code class="computeroutput">t</code> is passed to the method. The result is updated out-of-place, hence the input is in <code class="computeroutput">in</code> and the output in <code class="computeroutput">out</code>. Futhermore, an estimation of the error is stored in <code class="computeroutput">xerr</code>. <code class="computeroutput">do_step_impl</code> is used by <code class="computeroutput"><a class="link" href="explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a></code>. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The result of the error estimation is written in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21204608-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The derivative <code class="computeroutput">dxdt</code> of <code class="computeroutput">in</code> at the time <code class="computeroutput">t</code> is passed to the method. The result is updated out-of-place, hence the input is in <code class="computeroutput">in</code> and the output in <code class="computeroutput">out</code>. Access to this step functionality is provided by <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code> and <code class="computeroutput">do_step_impl</code> should not be called directly. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">void</span> <a name="idp21212128-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp21214016-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of the stepper if it used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp21215296-bb"></a><span class="identifier">stepper_order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of a step if the stepper is used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp21216576-bb"></a><span class="identifier">error_order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of an error step if the stepper is used without error estimation. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21217872-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. It transforms the result in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21221872-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp21224608-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. Additionally to the other method the derivative of x is also passed to this method. It is supposed to be used in the following way: <pre class="programlisting">sys( x , dxdt , t ); +stepper.do_step( sys , x , dxdt , t , dt ); +</pre> +<p>The result is updated in place in x. This method is disabled if Time and Deriv are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">StateIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp21230656-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. This method is disabled if StateIn and Time are the same type. In this case the method can not be distinguished from other <code class="computeroutput">do_step</code> variants. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp21236160-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper. It is supposed to be used in the following way: <pre class="programlisting">sys( in , dxdt , t ); +stepper.do_step( sys , in , dxdt , t , out , dt ); +</pre> +<p>This method is disabled if DerivIn and Time are of same type.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp21242720-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper and estimates the error. The state of the ODE is updated in-place. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. x is updated by this method. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The estimation of the error is stored in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp21247584-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> + <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> <span class="identifier">DerivIn</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idp21250928-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> x<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. Additionally to the other method the derivative of x is also passed to this method. It is supposed to be used in the following way: <pre class="programlisting">sys( x , dxdt , t ); +stepper.do_step( sys , x , dxdt , t , dt , xerr ); +</pre> +<p>The result is updated in place in x. This method is disabled if Time and DerivIn are of the same type. In this case the method could not be distinguished from other <code class="computeroutput">do_step</code> versions.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>The state of the ODE which should be solved. After calling do_step the result is updated in x. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate is stored in xerr. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp21257824-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the error is estimated. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> DerivIn<span class="special">,</span> + <span class="keyword">typename</span> StateOut<span class="special">,</span> <span class="keyword">typename</span> Err<span class="special">></span> + <span class="keyword">void</span> <a name="idp21263792-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">DerivIn</span> <span class="special">&</span> dxdt<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">Err</span> <span class="special">&</span> xerr<span class="special">)</span><span class="special">;</span></pre>The method performs one step with the stepper passed by Stepper. The state of the ODE is updated out-of-place. Furthermore, the derivative of x at t is passed to the stepper and the error is estimated. It is supposed to be used in the following way: <pre class="programlisting">sys( in , dxdt , t ); +stepper.do_step( sys , in , dxdt , t , out , dt ); +</pre> +<p>This method is disabled if DerivIn and Time are of same type.</p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p>This method does not solve the forwarding problem.</p></td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The step size. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">dxdt</code></span></p></td> +<td><p>The derivative of x at t. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE which should be solved. in is not modified in this method </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The result of the step is written in out. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The value of the time, at which the step should be performed. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">xerr</code></span></p></td> +<td><p>The error estimate. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp21271152-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp21272080-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_fehlberg78_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/runge_kutta_fehlberg78_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/stepper_tag.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/stepper_tag.html new file mode 100644 index 000000000..167a38de5 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/stepper_tag.html @@ -0,0 +1,52 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Struct stepper_tag</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>"> +<link rel="next" href="error_stepper_tag.html" title="Struct error_stepper_tag"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="error_stepper_tag.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.stepper_tag"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct stepper_tag</span></h2> +<p>boost::numeric::odeint::stepper_tag</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html" title="Header <boost/numeric/odeint/stepper/stepper_categories.hpp>">boost/numeric/odeint/stepper/stepper_categories.hpp</a>> + +</span> +<span class="keyword">struct</span> <a class="link" href="stepper_tag.html" title="Struct stepper_tag">stepper_tag</a> <span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/stepper_categories_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="error_stepper_tag.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/symplectic_euler.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/symplectic_euler.html new file mode 100644 index 000000000..c13824eff --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/symplectic_euler.html @@ -0,0 +1,399 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template symplectic_euler</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/symplectic_euler_hpp.html" title="Header <boost/numeric/odeint/stepper/symplectic_euler.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/symplectic_euler_hpp.html" title="Header <boost/numeric/odeint/stepper/symplectic_euler.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan_hpp.html" title="Header <boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/symplectic_euler_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/symplectic_euler_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.symplectic_euler"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template symplectic_euler</span></h2> +<p>boost::numeric::odeint::symplectic_euler — Implementation of the symplectic Euler method. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/symplectic_euler_hpp.html" title="Header <boost/numeric/odeint/stepper/symplectic_euler.hpp>">boost/numeric/odeint/stepper/symplectic_euler.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Coor<span class="special">,</span> <span class="keyword">typename</span> Momentum <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> CoorDeriv <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> <span class="keyword">typename</span> MomentumDeriv <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> + <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="symplectic_euler.html" title="Class template symplectic_euler">symplectic_euler</a> <span class="special">:</span> <span class="keyword">public</span> boost::numeric::odeint::symplectic_nystroem_stepper_base< NumOfStages, Order, Coor, Momentum, Value, CoorDeriv, MomentumDeriv, Time, Algebra, Operations, Resizer > +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.symplectic_euler.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.symplectic_euler.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="symplectic_euler.html#boost.numeric.odeint.symplectic_eulerconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="symplectic_euler.html#idp21341536-bb"><span class="identifier">symplectic_euler</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="symplectic_euler.html#idp21311280-bb">public member functions</a></span> + <span class="identifier">order_type</span> <a class="link" href="symplectic_euler.html#idp21311488-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_euler.html#idp21312736-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_euler.html#idp21317840-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> CoorInOut<span class="special">,</span> <span class="keyword">typename</span> MomentumInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_euler.html#idp21320608-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">CoorInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">MomentumInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> CoorInOut<span class="special">,</span> <span class="keyword">typename</span> MomentumInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_euler.html#idp21326528-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CoorInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">MomentumInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_euler.html#idp21329968-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a class="link" href="symplectic_euler.html#idp21335808-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> <a class="link" href="symplectic_euler.html#idp21337712-bb"><span class="identifier">coef_a</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> <a class="link" href="symplectic_euler.html#idp21338688-bb"><span class="identifier">coef_b</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="symplectic_euler.html#idp21339664-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="symplectic_euler.html#idp21340592-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp37639872"></a><h2>Description</h2> +<p>The method is of first order and has one stage. It is described HERE.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp37640416"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Coor</pre> +<p>The type representing the coordinates q. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Momentum <span class="special">=</span> <span class="identifier">Coor</span></pre> +<p>The type representing the coordinates p. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span></pre> +<p>The basic value type. Should be something like float, double or a high-precision type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> CoorDeriv <span class="special">=</span> <span class="identifier">Coor</span></pre> +<p>The type representing the time derivative of the coordinate dq/dt. </p> +</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">typename</span> MomentumDeriv <span class="special">=</span> <span class="identifier">Coor</span></pre></li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span></pre> +<p>The type representing the time t. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span></pre> +<p>The algebra. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span></pre> +<p>The operations. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span></pre> +<p>The resizer policy. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp37654864"></a><h3> +<a name="boost.numeric.odeint.symplectic_eulerconstruct-copy-destruct"></a><code class="computeroutput">symplectic_euler</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp21341536-bb"></a><span class="identifier">symplectic_euler</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs the <code class="computeroutput"><a class="link" href="symplectic_euler.html" title="Class template symplectic_euler">symplectic_euler</a></code>. This constructor can be used as a default constructor if the algebra has a default constructor. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored inside <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code>. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp37663200"></a><h3> +<a name="idp21311280-bb"></a><code class="computeroutput">symplectic_euler</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp21311488-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of the stepper. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21312736-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> state<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The system can be either a pair of two function object describing the momentum part and the coordinate part or one function object describing only the momentum part. In this case the coordinate is assumed to be trivial dq/dt = p. The state is updated in-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>boost::ref or std::ref can be used for the system as well as for the state. So, it is correct to write <code class="computeroutput">stepper.do_step( make_pair( std::ref( fq ) , std::ref( fp ) ) , make_pair( std::ref( q ) , std::ref( p ) ) , t , dt )</code>.</p> +<p>This method solves the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The time step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">state</code></span></p></td> +<td><p>The state of the ODE. It is a pair of Coor and Momentum. The state is updated in-place, therefore, the new value of the state will be written into this variable. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system, can be represented as a pair of two function object or one function object. See above. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The time of the ODE. It is not advanced by this method. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21317840-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> state<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Same function as above. It differs only in a different const specifier in order to solve the forwarding problem, can be used with Boost.Range. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> CoorInOut<span class="special">,</span> <span class="keyword">typename</span> MomentumInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21320608-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">CoorInOut</span> <span class="special">&</span> q<span class="special">,</span> <span class="identifier">MomentumInOut</span> <span class="special">&</span> p<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The system can be either a pair of two function object describing the momentum part and the coordinate part or one function object describing only the momentum part. In this case the coordinate is assumed to be trivial dq/dt = p. The state is updated in-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>boost::ref or std::ref can be used for the system. So, it is correct to write <code class="computeroutput">stepper.do_step( make_pair( std::ref( fq ) , std::ref( fp ) ) , q , p , t , dt )</code>.</p> +<p>This method solves the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The time step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">p</code></span></p></td> +<td><p>The momentum of the ODE. It is updated in-place. Therefore, the new value of the momentum will be written info this variable. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">q</code></span></p></td> +<td><p>The coordinate of the ODE. It is updated in-place. Therefore, the new value of the coordinate will be written into this variable. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system, can be represented as a pair of two function object or one function object. See above. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The time of the ODE. It is not advanced by this method. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> CoorInOut<span class="special">,</span> <span class="keyword">typename</span> MomentumInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21326528-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CoorInOut</span> <span class="special">&</span> q<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">MomentumInOut</span> <span class="special">&</span> p<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Same function as do_step( system , q , p , t , dt ). It differs only in a different const specifier in order to solve the forwarding problem, can be called with Boost.Range. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21329968-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The system can be either a pair of two function object describing the momentum part and the coordinate part or one function object describing only the momentum part. In this case the coordinate is assumed to be trivial dq/dt = p. The state is updated out-of-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>boost::ref or std::ref can be used for the system. So, it is correct to write <code class="computeroutput">stepper.do_step( make_pair( std::ref( fq ) , std::ref( fp ) ) , x_in , t , x_out , dt )</code>.</p> +<p>This method NOT solve the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The time step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE, which is a pair of coordinate and momentum. The state is updated out-of-place, therefore the new value is written into out </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The new state of the ODE. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system, can be represented as a pair of two function object or one function object. See above. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The time of the ODE. It is not advanced by this method. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a name="idp21335808-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> <a name="idp21337712-bb"></a><span class="identifier">coef_a</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the coefficients a. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> <a name="idp21338688-bb"></a><span class="identifier">coef_b</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the coefficients b. </li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp21339664-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp21340592-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/symplectic_euler_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/symplectic_euler_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/symplectic_nys_idp20023936.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/symplectic_nys_idp20023936.html new file mode 100644 index 000000000..598ead9d5 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/symplectic_nys_idp20023936.html @@ -0,0 +1,472 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template symplectic_nystroem_stepper_base</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_hpp.html" title="Header <boost/numeric/odeint/stepper/bulirsch_stoer.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.symplectic_nys_idp20023936"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template symplectic_nystroem_stepper_base</span></h2> +<p>boost::numeric::odeint::symplectic_nystroem_stepper_base — Base class for all symplectic steppers of Nystroem type. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base_hpp.html" title="Header <boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base.hpp>">boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="identifier">size_t</span> NumOfStages<span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> Order<span class="special">,</span> <span class="keyword">typename</span> Coor<span class="special">,</span> + <span class="keyword">typename</span> Momentum<span class="special">,</span> <span class="keyword">typename</span> Value<span class="special">,</span> <span class="keyword">typename</span> CoorDeriv<span class="special">,</span> + <span class="keyword">typename</span> MomentumDeriv<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Algebra<span class="special">,</span> + <span class="keyword">typename</span> Operations<span class="special">,</span> <span class="keyword">typename</span> Resizer<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base">symplectic_nystroem_stepper_base</a> <span class="special">:</span> + <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">algebra_stepper_base</span><span class="special"><</span> <span class="identifier">Algebra</span><span class="special">,</span> <span class="identifier">Operations</span> <span class="special">></span> +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <a class="link" href="algebra_stepper_base.html" title="Class template algebra_stepper_base">algebra_stepper_base</a><span class="special"><</span> <span class="identifier">Algebra</span><span class="special">,</span> <span class="identifier">Operations</span> <span class="special">></span> <a name="boost.numeric.odeint.symplectic_nys_idp20023936.algebra_stepper_base_type"></a><span class="identifier">algebra_stepper_base_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">algebra_stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.symplectic_nys_idp20023936.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">algebra_stepper_base_type</span><span class="special">::</span><span class="identifier">operations_type</span> <a name="boost.numeric.odeint.symplectic_nys_idp20023936.operations_type"></a><span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Coor</span> <a name="boost.numeric.odeint.symplectic_nys_idp20023936.coor_type"></a><span class="identifier">coor_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Momentum</span> <a name="boost.numeric.odeint.symplectic_nys_idp20023936.momentum_type"></a><span class="identifier">momentum_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">coor_type</span><span class="special">,</span> <span class="identifier">momentum_type</span> <span class="special">></span> <a name="boost.numeric.odeint.symplectic_nys_idp20023936.state_type"></a><span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">CoorDeriv</span> <a name="boost.numeric.odeint.symplectic_nys_idp20023936.coor_deriv_type"></a><span class="identifier">coor_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">coor_deriv_type</span> <span class="special">></span> <a name="boost.numeric.odeint.symplectic_nys_idp20023936.wrapped_coor_deriv_type"></a><span class="identifier">wrapped_coor_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">MomentumDeriv</span> <a name="boost.numeric.odeint.symplectic_nys_idp20023936.momentum_deriv_type"></a><span class="identifier">momentum_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">momentum_deriv_type</span> <span class="special">></span> <a name="boost.numeric.odeint.symplectic_nys_idp20023936.wrapped_moment_idp20039360"></a><span class="identifier">wrapped_momentum_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">coor_deriv_type</span><span class="special">,</span> <span class="identifier">momentum_deriv_type</span> <span class="special">></span> <a name="boost.numeric.odeint.symplectic_nys_idp20023936.deriv_type"></a><span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Value</span> <a name="boost.numeric.odeint.symplectic_nys_idp20023936.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Time</span> <a name="boost.numeric.odeint.symplectic_nys_idp20023936.time_type"></a><span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Resizer</span> <a name="boost.numeric.odeint.symplectic_nys_idp20023936.resizer_type"></a><span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_tag</span> <a name="boost.numeric.odeint.symplectic_nys_idp20023936.stepper_category"></a><span class="identifier">stepper_category</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> <a name="boost.numeric.odeint.symplectic_nys_idp20023936.order_type"></a><span class="identifier">order_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="identifier">value_type</span><span class="special">,</span> <span class="identifier">num_of_stages</span> <span class="special">></span> <a name="boost.numeric.odeint.symplectic_nys_idp20023936.coef_type"></a><span class="identifier">coef_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="symplectic_nys_idp20023936.html#boost.numeric.odeint.symplectic_nys_idp20023936construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="symplectic_nys_idp20023936.html#idp20073392-bb"><span class="identifier">symplectic_nystroem_stepper_base</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="symplectic_nys_idp20023936.html#idp20043136-bb">public member functions</a></span> + <span class="identifier">order_type</span> <a class="link" href="symplectic_nys_idp20023936.html#idp20043344-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_nys_idp20023936.html#idp20044592-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_nys_idp20023936.html#idp20049696-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> CoorInOut<span class="special">,</span> <span class="keyword">typename</span> MomentumInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_nys_idp20023936.html#idp20052464-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">CoorInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">MomentumInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> CoorInOut<span class="special">,</span> <span class="keyword">typename</span> MomentumInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_nys_idp20023936.html#idp20058384-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CoorInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">MomentumInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_nys_idp20023936.html#idp20061824-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a class="link" href="symplectic_nys_idp20023936.html#idp20067664-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> <a class="link" href="symplectic_nys_idp20023936.html#idp20069568-bb"><span class="identifier">coef_a</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> <a class="link" href="symplectic_nys_idp20023936.html#idp20070544-bb"><span class="identifier">coef_b</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="symplectic_nys_idp20023936.html#idp20071520-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="symplectic_nys_idp20023936.html#idp20072448-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="symplectic_nys_idp20023936.html#idp20076608-bb">private member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_nys_idp20023936.html#idp20076816-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_nys_idp20023936.html#idp20080272-bb"><span class="identifier">do_step_impl</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="symplectic_nys_idp20023936.html#idp20083728-bb"><span class="identifier">resize_dqdt</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="symplectic_nys_idp20023936.html#idp20084944-bb"><span class="identifier">resize_dpdt</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// public data members</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">num_of_stages</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">order_type</span> <span class="identifier">order_value</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp31033024"></a><h2>Description</h2> +<p>This class is the base class for the symplectic Runge-Kutta-Nystroem steppers. Symplectic steppers are usually used to solve Hamiltonian systems and they conserve the phase space volume, see <a href="http://en.wikipedia.org/wiki/Symplectic_integrator" target="_top">en.wikipedia.org/wiki/Symplectic_integrator</a>. Furthermore, the energy is conserved in average. In detail this class of steppers can be used to solve separable Hamiltonian systems which can be written in the form H(q,p) = H1(p) + H2(q). q is usually called the coordinate, while p is the momentum. The equations of motion are dq/dt = dH1/dp, dp/dt = -dH2/dq.</p> +<p>ToDo : add formula for solver and explanation of the coefficients</p> +<p><a class="link" href="symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base">symplectic_nystroem_stepper_base</a> uses odeints algebra and operation system. Step size and error estimation are not provided for this class of solvers. It derives from <a class="link" href="algebra_stepper_base.html" title="Class template algebra_stepper_base">algebra_stepper_base</a>. Several <code class="computeroutput">do_step</code> variants are provided:</p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"><p><code class="computeroutput">do_step( sys , x , t , dt )</code> - The classical <code class="computeroutput">do_step</code> method. The sys can be either a pair of function objects for the coordinate or the momentum part or one function object for the momentum part. <code class="computeroutput">x</code> is a pair of coordinate and momentum. The state is updated in-place.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , q , p , t , dt )</code> - This method is similar to the method above with the difference that the coordinate and the momentum are passed explicitly and not packed into a pair.</p></li> +<li class="listitem"><p><code class="computeroutput">do_step( sys , x_in , t , x_out , dt )</code> - This method transforms the state out-of-place. <code class="computeroutput">x_in</code> and <code class="computeroutput">x_out</code> are here pairs of coordinate and momentum.</p></li> +</ul></div> +<p> +</p> +<p> +</p> +<div class="refsect2"> +<a name="idp31039792"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">size_t</span> NumOfStages</pre> +<p>Number of stages. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">unsigned</span> <span class="keyword">short</span> Order</pre> +<p>The order of the stepper. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Coor</pre> +<p>The type representing the coordinates q. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Momentum</pre> +<p>The type representing the coordinates p. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value</pre> +<p>The basic value type. Should be something like float, double or a high-precision type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> CoorDeriv</pre> +<p>The type representing the time derivative of the coordinate dq/dt. </p> +</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">typename</span> MomentumDeriv</pre></li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time</pre> +<p>The type representing the time t. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra</pre> +<p>The algebra. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations</pre> +<p>The operations. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer</pre> +<p>The resizer policy. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp31051856"></a><h3> +<a name="boost.numeric.odeint.symplectic_nys_idp20023936construct-copy-destruct"></a><code class="computeroutput">symplectic_nystroem_stepper_base</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp20073392-bb"></a><span class="identifier">symplectic_nystroem_stepper_base</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> coef_a<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> coef_b<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs a <code class="computeroutput"><a class="link" href="symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base">symplectic_nystroem_stepper_base</a></code> class. The parameters of the specific Nystroem method and the algebra have to be passed. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored inside <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code>. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">coef_a</code></span></p></td> +<td><p>The coefficients a. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">coef_b</code></span></p></td> +<td><p>The coefficients b. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp31064128"></a><h3> +<a name="idp20043136-bb"></a><code class="computeroutput">symplectic_nystroem_stepper_base</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp20043344-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of the stepper. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20044592-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> state<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The system can be either a pair of two function object describing the momentum part and the coordinate part or one function object describing only the momentum part. In this case the coordinate is assumed to be trivial dq/dt = p. The state is updated in-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>boost::ref or std::ref can be used for the system as well as for the state. So, it is correct to write <code class="computeroutput">stepper.do_step( make_pair( std::ref( fq ) , std::ref( fp ) ) , make_pair( std::ref( q ) , std::ref( p ) ) , t , dt )</code>.</p> +<p>This method solves the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The time step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">state</code></span></p></td> +<td><p>The state of the ODE. It is a pair of Coor and Momentum. The state is updated in-place, therefore, the new value of the state will be written into this variable. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system, can be represented as a pair of two function object or one function object. See above. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The time of the ODE. It is not advanced by this method. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20049696-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> state<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Same function as above. It differs only in a different const specifier in order to solve the forwarding problem, can be used with Boost.Range. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> CoorInOut<span class="special">,</span> <span class="keyword">typename</span> MomentumInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20052464-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">CoorInOut</span> <span class="special">&</span> q<span class="special">,</span> <span class="identifier">MomentumInOut</span> <span class="special">&</span> p<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The system can be either a pair of two function object describing the momentum part and the coordinate part or one function object describing only the momentum part. In this case the coordinate is assumed to be trivial dq/dt = p. The state is updated in-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>boost::ref or std::ref can be used for the system. So, it is correct to write <code class="computeroutput">stepper.do_step( make_pair( std::ref( fq ) , std::ref( fp ) ) , q , p , t , dt )</code>.</p> +<p>This method solves the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The time step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">p</code></span></p></td> +<td><p>The momentum of the ODE. It is updated in-place. Therefore, the new value of the momentum will be written info this variable. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">q</code></span></p></td> +<td><p>The coordinate of the ODE. It is updated in-place. Therefore, the new value of the coordinate will be written into this variable. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system, can be represented as a pair of two function object or one function object. See above. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The time of the ODE. It is not advanced by this method. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> CoorInOut<span class="special">,</span> <span class="keyword">typename</span> MomentumInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20058384-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CoorInOut</span> <span class="special">&</span> q<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">MomentumInOut</span> <span class="special">&</span> p<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Same function as do_step( system , q , p , t , dt ). It differs only in a different const specifier in order to solve the forwarding problem, can be called with Boost.Range. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20061824-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The system can be either a pair of two function object describing the momentum part and the coordinate part or one function object describing only the momentum part. In this case the coordinate is assumed to be trivial dq/dt = p. The state is updated out-of-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>boost::ref or std::ref can be used for the system. So, it is correct to write <code class="computeroutput">stepper.do_step( make_pair( std::ref( fq ) , std::ref( fp ) ) , x_in , t , x_out , dt )</code>.</p> +<p>This method NOT solve the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The time step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE, which is a pair of coordinate and momentum. The state is updated out-of-place, therefore the new value is written into out </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The new state of the ODE. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system, can be represented as a pair of two function object or one function object. See above. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The time of the ODE. It is not advanced by this method. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a name="idp20067664-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> <a name="idp20069568-bb"></a><span class="identifier">coef_a</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the coefficients a. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> <a name="idp20070544-bb"></a><span class="identifier">coef_b</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the coefficients b. </li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20071520-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp20072448-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp31145456"></a><h3> +<a name="idp20076608-bb"></a><code class="computeroutput">symplectic_nystroem_stepper_base</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20076816-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp20080272-bb"></a><span class="identifier">do_step_impl</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20083728-bb"></a><span class="identifier">resize_dqdt</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateIn<span class="special">></span> <span class="keyword">bool</span> <a name="idp20084944-bb"></a><span class="identifier">resize_dpdt</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/bulirsch_stoer_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/symplectic_rkn_idp21344416.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/symplectic_rkn_idp21344416.html new file mode 100644 index 000000000..d74511072 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/symplectic_rkn_idp21344416.html @@ -0,0 +1,400 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template symplectic_rkn_sb3a_m4_mclachlan</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan_hpp.html" title="Header <boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan_hpp.html" title="Header <boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan.hpp>"> +<link rel="next" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan_hpp.html" title="Header <boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.symplectic_rkn_idp21344416"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template symplectic_rkn_sb3a_m4_mclachlan</span></h2> +<p>boost::numeric::odeint::symplectic_rkn_sb3a_m4_mclachlan — Implementation of the symmetric B3A Runge-Kutta Nystroem method of fifth order. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan_hpp.html" title="Header <boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan.hpp>">boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Coor<span class="special">,</span> <span class="keyword">typename</span> Momentum <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> CoorDeriv <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> <span class="keyword">typename</span> MomentumDeriv <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> + <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan">symplectic_rkn_sb3a_m4_mclachlan</a> <span class="special">:</span> <span class="keyword">public</span> boost::numeric::odeint::symplectic_nystroem_stepper_base< NumOfStages, Order, Coor, Momentum, Value, CoorDeriv, MomentumDeriv, Time, Algebra, Operations, Resizer > +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.symplectic_rkn_idp21344416.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.symplectic_rkn_idp21344416.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="symplectic_rkn_idp21344416.html#boost.numeric.odeint.symplectic_rkn_idp21344416construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="symplectic_rkn_idp21344416.html#idp21382640-bb"><span class="identifier">symplectic_rkn_sb3a_m4_mclachlan</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="symplectic_rkn_idp21344416.html#idp21352384-bb">public member functions</a></span> + <span class="identifier">order_type</span> <a class="link" href="symplectic_rkn_idp21344416.html#idp21352592-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_rkn_idp21344416.html#idp21353840-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_rkn_idp21344416.html#idp21358944-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> CoorInOut<span class="special">,</span> <span class="keyword">typename</span> MomentumInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_rkn_idp21344416.html#idp21361712-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">CoorInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">MomentumInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> CoorInOut<span class="special">,</span> <span class="keyword">typename</span> MomentumInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_rkn_idp21344416.html#idp21367632-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CoorInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">MomentumInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_rkn_idp21344416.html#idp21371072-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a class="link" href="symplectic_rkn_idp21344416.html#idp21376912-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> <a class="link" href="symplectic_rkn_idp21344416.html#idp21378816-bb"><span class="identifier">coef_a</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> <a class="link" href="symplectic_rkn_idp21344416.html#idp21379792-bb"><span class="identifier">coef_b</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="symplectic_rkn_idp21344416.html#idp21380768-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="symplectic_rkn_idp21344416.html#idp21381696-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp37843024"></a><h2>Description</h2> +<p>The method is of fourth order and has five stages. It is described HERE. This method can be used with multiprecision types since the coefficients are defined analytically.</p> +<p>ToDo: add reference to paper.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp37843824"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Coor</pre> +<p>The type representing the coordinates q. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Momentum <span class="special">=</span> <span class="identifier">Coor</span></pre> +<p>The type representing the coordinates p. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span></pre> +<p>The basic value type. Should be something like float, double or a high-precision type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> CoorDeriv <span class="special">=</span> <span class="identifier">Coor</span></pre> +<p>The type representing the time derivative of the coordinate dq/dt. </p> +</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">typename</span> MomentumDeriv <span class="special">=</span> <span class="identifier">Coor</span></pre></li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span></pre> +<p>The type representing the time t. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span></pre> +<p>The algebra. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span></pre> +<p>The operations. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span></pre> +<p>The resizer policy. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp37858272"></a><h3> +<a name="boost.numeric.odeint.symplectic_rkn_idp21344416construct-copy-destruct"></a><code class="computeroutput">symplectic_rkn_sb3a_m4_mclachlan</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp21382640-bb"></a><span class="identifier">symplectic_rkn_sb3a_m4_mclachlan</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs the <code class="computeroutput"><a class="link" href="symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan">symplectic_rkn_sb3a_m4_mclachlan</a></code>. This constructor can be used as a default constructor if the algebra has a default constructor. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored inside <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code>. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp37866656"></a><h3> +<a name="idp21352384-bb"></a><code class="computeroutput">symplectic_rkn_sb3a_m4_mclachlan</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp21352592-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of the stepper. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21353840-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> state<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The system can be either a pair of two function object describing the momentum part and the coordinate part or one function object describing only the momentum part. In this case the coordinate is assumed to be trivial dq/dt = p. The state is updated in-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>boost::ref or std::ref can be used for the system as well as for the state. So, it is correct to write <code class="computeroutput">stepper.do_step( make_pair( std::ref( fq ) , std::ref( fp ) ) , make_pair( std::ref( q ) , std::ref( p ) ) , t , dt )</code>.</p> +<p>This method solves the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The time step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">state</code></span></p></td> +<td><p>The state of the ODE. It is a pair of Coor and Momentum. The state is updated in-place, therefore, the new value of the state will be written into this variable. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system, can be represented as a pair of two function object or one function object. See above. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The time of the ODE. It is not advanced by this method. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21358944-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> state<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Same function as above. It differs only in a different const specifier in order to solve the forwarding problem, can be used with Boost.Range. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> CoorInOut<span class="special">,</span> <span class="keyword">typename</span> MomentumInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21361712-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">CoorInOut</span> <span class="special">&</span> q<span class="special">,</span> <span class="identifier">MomentumInOut</span> <span class="special">&</span> p<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The system can be either a pair of two function object describing the momentum part and the coordinate part or one function object describing only the momentum part. In this case the coordinate is assumed to be trivial dq/dt = p. The state is updated in-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>boost::ref or std::ref can be used for the system. So, it is correct to write <code class="computeroutput">stepper.do_step( make_pair( std::ref( fq ) , std::ref( fp ) ) , q , p , t , dt )</code>.</p> +<p>This method solves the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The time step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">p</code></span></p></td> +<td><p>The momentum of the ODE. It is updated in-place. Therefore, the new value of the momentum will be written info this variable. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">q</code></span></p></td> +<td><p>The coordinate of the ODE. It is updated in-place. Therefore, the new value of the coordinate will be written into this variable. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system, can be represented as a pair of two function object or one function object. See above. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The time of the ODE. It is not advanced by this method. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> CoorInOut<span class="special">,</span> <span class="keyword">typename</span> MomentumInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21367632-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CoorInOut</span> <span class="special">&</span> q<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">MomentumInOut</span> <span class="special">&</span> p<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Same function as do_step( system , q , p , t , dt ). It differs only in a different const specifier in order to solve the forwarding problem, can be called with Boost.Range. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21371072-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The system can be either a pair of two function object describing the momentum part and the coordinate part or one function object describing only the momentum part. In this case the coordinate is assumed to be trivial dq/dt = p. The state is updated out-of-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>boost::ref or std::ref can be used for the system. So, it is correct to write <code class="computeroutput">stepper.do_step( make_pair( std::ref( fq ) , std::ref( fp ) ) , x_in , t , x_out , dt )</code>.</p> +<p>This method NOT solve the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The time step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE, which is a pair of coordinate and momentum. The state is updated out-of-place, therefore the new value is written into out </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The new state of the ODE. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system, can be represented as a pair of two function object or one function object. See above. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The time of the ODE. It is not advanced by this method. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a name="idp21376912-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> <a name="idp21378816-bb"></a><span class="identifier">coef_a</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the coefficients a. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> <a name="idp21379792-bb"></a><span class="identifier">coef_b</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the coefficients b. </li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp21380768-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp21381696-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan_hpp.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost/numeric/odeint/symplectic_rkn_idp21385536.html b/libs/numeric/odeint/doc/html/boost/numeric/odeint/symplectic_rkn_idp21385536.html new file mode 100644 index 000000000..f6dce1ffe --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost/numeric/odeint/symplectic_rkn_idp21385536.html @@ -0,0 +1,400 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template symplectic_rkn_sb3a_mclachlan</title> +<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan_hpp.html" title="Header <boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan.hpp>"> +<link rel="prev" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan_hpp.html" title="Header <boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan.hpp>"> +<link rel="next" href="../../../odeint/indexes.html" title="Indexes"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../odeint/indexes.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.numeric.odeint.symplectic_rkn_idp21385536"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template symplectic_rkn_sb3a_mclachlan</span></h2> +<p>boost::numeric::odeint::symplectic_rkn_sb3a_mclachlan — Implement of the symmetric B3A method of Runge-Kutta-Nystroem method of sixth order. </p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan_hpp.html" title="Header <boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan.hpp>">boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Coor<span class="special">,</span> <span class="keyword">typename</span> Momentum <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> CoorDeriv <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> <span class="keyword">typename</span> MomentumDeriv <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> + <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan">symplectic_rkn_sb3a_mclachlan</a> <span class="special">:</span> <span class="keyword">public</span> boost::numeric::odeint::symplectic_nystroem_stepper_base< NumOfStages, Order, Coor, Momentum, Value, CoorDeriv, MomentumDeriv, Time, Algebra, Operations, Resizer > +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <a name="boost.numeric.odeint.symplectic_rkn_idp21385536.algebra_type"></a><span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.numeric.odeint.symplectic_rkn_idp21385536.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="symplectic_rkn_idp21385536.html#boost.numeric.odeint.symplectic_rkn_idp21385536construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="symplectic_rkn_idp21385536.html#idp21423776-bb"><span class="identifier">symplectic_rkn_sb3a_mclachlan</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="symplectic_rkn_idp21385536.html#idp21393520-bb">public member functions</a></span> + <span class="identifier">order_type</span> <a class="link" href="symplectic_rkn_idp21385536.html#idp21393728-bb"><span class="identifier">order</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_rkn_idp21385536.html#idp21394976-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_rkn_idp21385536.html#idp21400080-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> CoorInOut<span class="special">,</span> <span class="keyword">typename</span> MomentumInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_rkn_idp21385536.html#idp21402848-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">CoorInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">MomentumInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> CoorInOut<span class="special">,</span> <span class="keyword">typename</span> MomentumInOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_rkn_idp21385536.html#idp21408768-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CoorInOut</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">MomentumInOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> + <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a class="link" href="symplectic_rkn_idp21385536.html#idp21412208-bb"><span class="identifier">do_step</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">time_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a class="link" href="symplectic_rkn_idp21385536.html#idp21418048-bb"><span class="identifier">adjust_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> <a class="link" href="symplectic_rkn_idp21385536.html#idp21419952-bb"><span class="identifier">coef_a</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> <a class="link" href="symplectic_rkn_idp21385536.html#idp21420928-bb"><span class="identifier">coef_b</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="symplectic_rkn_idp21385536.html#idp21421904-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a class="link" href="symplectic_rkn_idp21385536.html#idp21422832-bb"><span class="identifier">algebra</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="idp38046496"></a><h2>Description</h2> +<p>The method is of fourth order and has six stages. It is described HERE. This method cannot be used with multiprecision types since the coefficients are not defined analytically.</p> +<p>ToDo Add reference to the paper.</p> +<p> +</p> +<div class="refsect2"> +<a name="idp38047328"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Coor</pre> +<p>The type representing the coordinates q. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Momentum <span class="special">=</span> <span class="identifier">Coor</span></pre> +<p>The type representing the coordinates p. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span></pre> +<p>The basic value type. Should be something like float, double or a high-precision type. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> CoorDeriv <span class="special">=</span> <span class="identifier">Coor</span></pre> +<p>The type representing the time derivative of the coordinate dq/dt. </p> +</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">typename</span> MomentumDeriv <span class="special">=</span> <span class="identifier">Coor</span></pre></li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span></pre> +<p>The type representing the time t. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span></pre> +<p>The algebra. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span></pre> +<p>The operations. </p> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span></pre> +<p>The resizer policy. </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="idp38061776"></a><h3> +<a name="boost.numeric.odeint.symplectic_rkn_idp21385536construct-copy-destruct"></a><code class="computeroutput">symplectic_rkn_sb3a_mclachlan</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="idp21423776-bb"></a><span class="identifier">symplectic_rkn_sb3a_mclachlan</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> algebra <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>Constructs the <code class="computeroutput"><a class="link" href="symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan">symplectic_rkn_sb3a_mclachlan</a></code>. This constructor can be used as a default constructor if the algebra has a default constructor. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">algebra</code></span></p></td> +<td><p>A copy of algebra is made and stored inside <code class="computeroutput"><a class="link" href="explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a></code>. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="idp38070144"></a><h3> +<a name="idp21393520-bb"></a><code class="computeroutput">symplectic_rkn_sb3a_mclachlan</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">order_type</span> <a name="idp21393728-bb"></a><span class="identifier">order</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>Returns the order of the stepper. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21394976-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateInOut</span> <span class="special">&</span> state<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The system can be either a pair of two function object describing the momentum part and the coordinate part or one function object describing only the momentum part. In this case the coordinate is assumed to be trivial dq/dt = p. The state is updated in-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>boost::ref or std::ref can be used for the system as well as for the state. So, it is correct to write <code class="computeroutput">stepper.do_step( make_pair( std::ref( fq ) , std::ref( fp ) ) , make_pair( std::ref( q ) , std::ref( p ) ) , t , dt )</code>.</p> +<p>This method solves the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The time step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">state</code></span></p></td> +<td><p>The state of the ODE. It is a pair of Coor and Momentum. The state is updated in-place, therefore, the new value of the state will be written into this variable. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system, can be represented as a pair of two function object or one function object. See above. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The time of the ODE. It is not advanced by this method. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21400080-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">StateInOut</span> <span class="special">&</span> state<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Same function as above. It differs only in a different const specifier in order to solve the forwarding problem, can be used with Boost.Range. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> CoorInOut<span class="special">,</span> <span class="keyword">typename</span> MomentumInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21402848-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="identifier">CoorInOut</span> <span class="special">&</span> q<span class="special">,</span> <span class="identifier">MomentumInOut</span> <span class="special">&</span> p<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The system can be either a pair of two function object describing the momentum part and the coordinate part or one function object describing only the momentum part. In this case the coordinate is assumed to be trivial dq/dt = p. The state is updated in-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>boost::ref or std::ref can be used for the system. So, it is correct to write <code class="computeroutput">stepper.do_step( make_pair( std::ref( fq ) , std::ref( fp ) ) , q , p , t , dt )</code>.</p> +<p>This method solves the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The time step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">p</code></span></p></td> +<td><p>The momentum of the ODE. It is updated in-place. Therefore, the new value of the momentum will be written info this variable. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">q</code></span></p></td> +<td><p>The coordinate of the ODE. It is updated in-place. Therefore, the new value of the coordinate will be written into this variable. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system, can be represented as a pair of two function object or one function object. See above. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The time of the ODE. It is not advanced by this method. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> CoorInOut<span class="special">,</span> <span class="keyword">typename</span> MomentumInOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21408768-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CoorInOut</span> <span class="special">&</span> q<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">MomentumInOut</span> <span class="special">&</span> p<span class="special">,</span> + <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>Same function as do_step( system , q , p , t , dt ). It differs only in a different const specifier in order to solve the forwarding problem, can be called with Boost.Range. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> StateIn<span class="special">,</span> <span class="keyword">typename</span> StateOut<span class="special">></span> + <span class="keyword">void</span> <a name="idp21412208-bb"></a><span class="identifier">do_step</span><span class="special">(</span><span class="identifier">System</span> system<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span> in<span class="special">,</span> <span class="identifier">time_type</span> t<span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span> out<span class="special">,</span> + <span class="identifier">time_type</span> dt<span class="special">)</span><span class="special">;</span></pre>This method performs one step. The system can be either a pair of two function object describing the momentum part and the coordinate part or one function object describing only the momentum part. In this case the coordinate is assumed to be trivial dq/dt = p. The state is updated out-of-place. <div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"> +<p>boost::ref or std::ref can be used for the system. So, it is correct to write <code class="computeroutput">stepper.do_step( make_pair( std::ref( fq ) , std::ref( fp ) ) , x_in , t , x_out , dt )</code>.</p> +<p>This method NOT solve the forwarding problem.</p> +</td></tr> +</table></div> +<p> + +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><code class="computeroutput">dt</code></span></p></td> +<td><p>The time step. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">in</code></span></p></td> +<td><p>The state of the ODE, which is a pair of coordinate and momentum. The state is updated out-of-place, therefore the new value is written into out </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">out</code></span></p></td> +<td><p>The new state of the ODE. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">system</code></span></p></td> +<td><p>The system, can be represented as a pair of two function object or one function object. See above. </p></td> +</tr> +<tr> +<td><p><span class="term"><code class="computeroutput">t</code></span></p></td> +<td><p>The time of the ODE. It is not advanced by this method. </p></td> +</tr> +</tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> StateType<span class="special">></span> <span class="keyword">void</span> <a name="idp21418048-bb"></a><span class="identifier">adjust_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">StateType</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre>Adjust the size of all temporaries in the stepper manually. <p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Parameters:</span></p></td> +<td><div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term"><code class="computeroutput">x</code></span></p></td> +<td><p>A state from which the size of the temporaries to be resized is deduced. </p></td> +</tr></tbody> +</table></div></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> <a name="idp21419952-bb"></a><span class="identifier">coef_a</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the coefficients a. </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">coef_type</span> <span class="special">&</span> <a name="idp21420928-bb"></a><span class="identifier">coef_b</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Returns the coefficients b. </li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp21421904-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span> <a name="idp21422832-bb"></a><span class="identifier">algebra</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> +</p> +<div class="variablelist"><table border="0" class="variablelist compact"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A const reference to the algebra which is held by this class. </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan_hpp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan_hpp.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../odeint/indexes.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/acknowledgments.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/acknowledgments.html new file mode 100644 index 000000000..f54d6a5e0 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/acknowledgments.html @@ -0,0 +1,97 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Acknowledgments</title> +<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="prev" href="literature.html" title="Literature"> +<link rel="next" href="../odeint_reference.html" title="odeint Reference"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../logo.jpg"></td> +<td align="center"><a href="../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="literature.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../odeint_reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h2 class="title" style="clear: both"> +<a name="boost_numeric_odeint.acknowledgments"></a><a class="link" href="acknowledgments.html" title="Acknowledgments">Acknowledgments</a> +</h2></div></div></div> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + Steven Watanabe for managing the Boost review process. + </li> +<li class="listitem"> + All people who participated in the odeint review process on the Boost mailing + list. + </li> +<li class="listitem"> + Paul Bristow for helping with the documentation. + </li> +<li class="listitem"> + The Google Summer Of Code (GSOC) program for funding and Andrew Sutton + for supervising us during the GSOC and for lots of useful discussions and + feedback about many implementation details.. + </li> +<li class="listitem"> + Joachim Faulhaber for motivating us to participate in the Boost review + process and many detailed comments about the library. + </li> +<li class="listitem"> + All users of odeint. They are the main motivation for our efforts. + </li> +</ul></div> +<h4> +<a name="boost_numeric_odeint.acknowledgments.h0"></a> + <span class="phrase"><a name="boost_numeric_odeint.acknowledgments.contributers"></a></span><a class="link" href="acknowledgments.html#boost_numeric_odeint.acknowledgments.contributers">Contributers</a> + </h4> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + Andreas Angelopoulos implemented the sparse matrix implicit Euler stepper + using the MTL4 library. + </li> +<li class="listitem"> + Rajeev Singh implemented the stiff Van der Pol oscillator example. + </li> +<li class="listitem"> + Sylwester Arabas improved the documentation. + </li> +<li class="listitem"> + Denis Demidov provided the adaption to the VexCL and Viennacl libraries. + </li> +<li class="listitem"> + Christoph Koke provided improved binders. + </li> +<li class="listitem"> + Lee Hodgkinson provided the black hole example. + </li> +<li class="listitem"> + Michael Morin fixed several typos in the documentation and the the source + code comments. + </li> +</ul></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="literature.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../odeint_reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts.html new file mode 100644 index 000000000..928d25f0f --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts.html @@ -0,0 +1,63 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Concepts</title> +<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="prev" href="odeint_in_detail/binding_member_functions.html" title="Binding member functions"> +<link rel="next" href="concepts/system.html" title="System"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../logo.jpg"></td> +<td align="center"><a href="../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="odeint_in_detail/binding_member_functions.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="concepts/system.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h2 class="title" style="clear: both"> +<a name="boost_numeric_odeint.concepts"></a><a class="link" href="concepts.html" title="Concepts">Concepts</a> +</h2></div></div></div> +<div class="toc"><dl class="toc"> +<dt><span class="section"><a href="concepts/system.html">System</a></span></dt> +<dt><span class="section"><a href="concepts/symplectic_system.html">Symplectic + System</a></span></dt> +<dt><span class="section"><a href="concepts/simple_symplectic_system.html">Simple + Symplectic System</a></span></dt> +<dt><span class="section"><a href="concepts/implicit_system.html">Implicit + System</a></span></dt> +<dt><span class="section"><a href="concepts/stepper.html">Stepper</a></span></dt> +<dt><span class="section"><a href="concepts/error_stepper.html">Error Stepper</a></span></dt> +<dt><span class="section"><a href="concepts/controlled_stepper.html">Controlled + Stepper</a></span></dt> +<dt><span class="section"><a href="concepts/dense_output_stepper.html">Dense + Output Stepper</a></span></dt> +<dt><span class="section"><a href="concepts/state_algebra_operations.html">State + Algebra Operations</a></span></dt> +<dt><span class="section"><a href="concepts/state_wrapper.html">State Wrapper</a></span></dt> +</dl></div> +<a name="odeint.concepts"></a> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="odeint_in_detail/binding_member_functions.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="concepts/system.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/controlled_stepper.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/controlled_stepper.html new file mode 100644 index 000000000..585551b9c --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/controlled_stepper.html @@ -0,0 +1,236 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Controlled Stepper</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../concepts.html" title="Concepts"> +<link rel="prev" href="error_stepper.html" title="Error Stepper"> +<link rel="next" href="dense_output_stepper.html" title="Dense Output Stepper"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="error_stepper.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dense_output_stepper.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.concepts.controlled_stepper"></a><a class="link" href="controlled_stepper.html" title="Controlled Stepper">Controlled + Stepper</a> +</h3></div></div></div> +<p> + This concept specifies the interface a controlled stepper has to fulfill + to be used within <a class="link" href="../odeint_in_detail/integrate_functions.html" title="Integrate functions">integrate + functions</a>. + </p> +<h5> +<a name="boost_numeric_odeint.concepts.controlled_stepper.h0"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.controlled_stepper.description"></a></span><a class="link" href="controlled_stepper.html#boost_numeric_odeint.concepts.controlled_stepper.description">Description</a> + </h5> +<p> + A controlled stepper following this Controlled Stepper concept provides the + possibility to perform one step of the solution <span class="emphasis"><em>x(t)</em></span> + of an ODE with step-size <span class="emphasis"><em>dt</em></span> to obtain <span class="emphasis"><em>x(t+dt)</em></span> + with a given step-size <span class="emphasis"><em>dt</em></span>. Depending on an error estimate + of the solution the step might be rejected and a smaller step-size is suggested. + </p> +<h5> +<a name="boost_numeric_odeint.concepts.controlled_stepper.h1"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.controlled_stepper.associated_types"></a></span><a class="link" href="controlled_stepper.html#boost_numeric_odeint.concepts.controlled_stepper.associated_types">Associated + types</a> + </h5> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + <p><span class="bold"><strong>state_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">state_type</span></code></p> +<p>The + type characterizing the state of the ODE, hence <span class="emphasis"><em>x</em></span>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>deriv_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">deriv_type</span></code></p> +<p>The + type characterizing the derivative of the ODE, hence <span class="emphasis"><em>d x/dt</em></span>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>time_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">time_type</span></code></p> +<p>The + type characterizing the dependent variable of the ODE, hence the time + <span class="emphasis"><em>t</em></span>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>value_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">value_type</span></code></p> +<p>The + numerical data type which is used within the stepper, something like + <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>, + <code class="computeroutput"><span class="identifier">complex</span><span class="special">&</span><span class="identifier">lt</span><span class="special">;</span> <span class="keyword">double</span> <span class="special">&</span><span class="identifier">gt</span><span class="special">;</span></code>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>stepper_category</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">stepper_category</span></code></p> +<p>A + tag type characterizing the category of the stepper. This type must be + convertible to <code class="computeroutput"><span class="identifier">controlled_stepper_tag</span></code>.</p> + </li> +</ul></div> +<h5> +<a name="boost_numeric_odeint.concepts.controlled_stepper.h2"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.controlled_stepper.notation"></a></span><a class="link" href="controlled_stepper.html#boost_numeric_odeint.concepts.controlled_stepper.notation">Notation</a> + </h5> +<div class="variablelist"> +<p class="title"><b></b></p> +<dl class="variablelist"> +<dt><span class="term"><code class="computeroutput"><span class="identifier">ControlledStepper</span></code></span></dt> +<dd><p> + A type that is a model of Controlled Stepper + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">State</span></code></span></dt> +<dd><p> + A type representing the state <span class="emphasis"><em>x</em></span> of the ODE + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">Time</span></code></span></dt> +<dd><p> + A type representing the time <span class="emphasis"><em>t</em></span> of the ODE + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">stepper</span></code></span></dt> +<dd><p> + An object of type <code class="computeroutput"><span class="identifier">ControlledStepper</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">x</span></code></span></dt> +<dd><p> + Object of type <code class="computeroutput"><span class="identifier">State</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">t</span></code>, <code class="computeroutput"><span class="identifier">dt</span></code></span></dt> +<dd><p> + Objects of type <code class="computeroutput"><span class="identifier">Time</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">sys</span></code></span></dt> +<dd><p> + An object defining the ODE, should be a model of <a class="link" href="system.html" title="System">System</a>, + <a class="link" href="symplectic_system.html" title="Symplectic System">Symplectic + System</a>, <a class="link" href="simple_symplectic_system.html" title="Simple Symplectic System">Simple + Symplectic System</a> or <a class="link" href="implicit_system.html" title="Implicit System">Implicit + System</a>. + </p></dd> +</dl> +</div> +<h5> +<a name="boost_numeric_odeint.concepts.controlled_stepper.h3"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.controlled_stepper.valid_expressions"></a></span><a class="link" href="controlled_stepper.html#boost_numeric_odeint.concepts.controlled_stepper.valid_expressions">Valid + Expressions</a> + </h5> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody><tr> +<td> + <p> + Do step + </p> + </td> +<td> + <p> +</p> +<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">stepper</span><span class="special">.</span><span class="identifier">try_step</span><span class="special">(</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">)</span></pre> +<p> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">controlled_step_result</span></code> + </p> + </td> +<td> + <p> + Tries one step of step size <code class="computeroutput"><span class="identifier">dt</span></code>. + If the step was successful, <code class="computeroutput"><span class="identifier">success</span></code> + is returned, the resulting state is written to <code class="computeroutput"><span class="identifier">x</span></code>, + the new time is stored in <code class="computeroutput"><span class="identifier">t</span></code> + and <code class="computeroutput"><span class="identifier">dt</span></code> now contains + a new (possibly larger) step-size for the next step. If the error + was too big, <code class="computeroutput"><span class="identifier">rejected</span></code> + is returned and the results are neglected - <code class="computeroutput"><span class="identifier">x</span></code> + and <code class="computeroutput"><span class="identifier">t</span></code> are unchanged + and <code class="computeroutput"><span class="identifier">dt</span></code> now contains + a reduced step-size to be used for the next try. + </p> + </td> +</tr></tbody> +</table></div> +<h5> +<a name="boost_numeric_odeint.concepts.controlled_stepper.h4"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.controlled_stepper.models"></a></span><a class="link" href="controlled_stepper.html#boost_numeric_odeint.concepts.controlled_stepper.models">Models</a> + </h5> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">controlled_error_stepper</span><span class="special"><</span> <span class="identifier">runge_kutta_cash_karp54</span> + <span class="special">></span></code> + </li> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">controlled_error_stepper_fsal</span><span class="special"><</span> <span class="identifier">runge_kutta_dopri5</span> + <span class="special">></span></code> + </li> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">controlled_error_stepper</span><span class="special"><</span> <span class="identifier">runge_kutta_fehlberg78</span> + <span class="special">></span></code> + </li> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">rosenbrock4_controller</span></code> + </li> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">bulirsch_stoer</span></code> + </li> +</ul></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="error_stepper.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dense_output_stepper.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/dense_output_stepper.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/dense_output_stepper.html new file mode 100644 index 000000000..57b02d50a --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/dense_output_stepper.html @@ -0,0 +1,320 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Dense Output Stepper</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../concepts.html" title="Concepts"> +<link rel="prev" href="controlled_stepper.html" title="Controlled Stepper"> +<link rel="next" href="state_algebra_operations.html" title="State Algebra Operations"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="controlled_stepper.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="state_algebra_operations.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.concepts.dense_output_stepper"></a><a class="link" href="dense_output_stepper.html" title="Dense Output Stepper">Dense + Output Stepper</a> +</h3></div></div></div> +<p> + This concept specifies the interface a dense output stepper has to fulfill + to be used within <a class="link" href="../odeint_in_detail/integrate_functions.html" title="Integrate functions">integrate + functions</a>. + </p> +<h5> +<a name="boost_numeric_odeint.concepts.dense_output_stepper.h0"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.dense_output_stepper.description"></a></span><a class="link" href="dense_output_stepper.html#boost_numeric_odeint.concepts.dense_output_stepper.description">Description</a> + </h5> +<p> + A dense output stepper following this Dense Output Stepper concept provides + the possibility to perform a single step of the solution <span class="emphasis"><em>x(t)</em></span> + of an ODE to obtain <span class="emphasis"><em>x(t+dt)</em></span>. The step-size <code class="computeroutput"><span class="identifier">dt</span></code> might be adjusted automatically due + to error control. Dense output steppers also can interpolate the solution + to calculate the state <span class="emphasis"><em>x(t')</em></span> at any point <span class="emphasis"><em>t + <= t' <= t+dt</em></span>. + </p> +<h5> +<a name="boost_numeric_odeint.concepts.dense_output_stepper.h1"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.dense_output_stepper.associated_types"></a></span><a class="link" href="dense_output_stepper.html#boost_numeric_odeint.concepts.dense_output_stepper.associated_types">Associated + types</a> + </h5> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + <p><span class="bold"><strong>state_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">state_type</span></code></p> +<p>The + type characterizing the state of the ODE, hence <span class="emphasis"><em>x</em></span>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>deriv_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">deriv_type</span></code></p> +<p>The + type characterizing the derivative of the ODE, hence <span class="emphasis"><em>d x/dt</em></span>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>time_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">time_type</span></code></p> +<p>The + type characterizing the dependent variable of the ODE, hence the time + <span class="emphasis"><em>t</em></span>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>value_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">value_type</span></code></p> +<p>The + numerical data type which is used within the stepper, something like + <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>, + <code class="computeroutput"><span class="identifier">complex</span><span class="special">&</span><span class="identifier">lt</span><span class="special">;</span> <span class="keyword">double</span> <span class="special">&</span><span class="identifier">gt</span><span class="special">;</span></code>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>stepper_category</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">stepper_category</span></code></p> +<p>A + tag type characterizing the category of the stepper. This type must be + convertible to <code class="computeroutput"><span class="identifier">dense_output_stepper_tag</span></code>.</p> + </li> +</ul></div> +<h5> +<a name="boost_numeric_odeint.concepts.dense_output_stepper.h2"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.dense_output_stepper.notation"></a></span><a class="link" href="dense_output_stepper.html#boost_numeric_odeint.concepts.dense_output_stepper.notation">Notation</a> + </h5> +<div class="variablelist"> +<p class="title"><b></b></p> +<dl class="variablelist"> +<dt><span class="term"><code class="computeroutput"><span class="identifier">Stepper</span></code></span></dt> +<dd><p> + A type that is a model of Dense Output Stepper + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">State</span></code></span></dt> +<dd><p> + A type representing the state <span class="emphasis"><em>x</em></span> of the ODE + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">stepper</span></code></span></dt> +<dd><p> + An object of type <code class="computeroutput"><span class="identifier">Stepper</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">x0</span></code>, <code class="computeroutput"><span class="identifier">x</span></code></span></dt> +<dd><p> + Object of type <code class="computeroutput"><span class="identifier">State</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">t0</span></code>, <code class="computeroutput"><span class="identifier">dt0</span></code>, <code class="computeroutput"><span class="identifier">t</span></code></span></dt> +<dd><p> + Objects of type <code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">time_type</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">sys</span></code></span></dt> +<dd><p> + An object defining the ODE, should be a model of <a class="link" href="system.html" title="System">System</a>, + <a class="link" href="symplectic_system.html" title="Symplectic System">Symplectic + System</a>, <a class="link" href="simple_symplectic_system.html" title="Simple Symplectic System">Simple + Symplectic System</a> or <a class="link" href="implicit_system.html" title="Implicit System">Implicit + System</a>. + </p></dd> +</dl> +</div> +<h5> +<a name="boost_numeric_odeint.concepts.dense_output_stepper.h3"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.dense_output_stepper.valid_expressions"></a></span><a class="link" href="dense_output_stepper.html#boost_numeric_odeint.concepts.dense_output_stepper.valid_expressions">Valid + Expressions</a> + </h5> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Initialize integration + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">stepper</span><span class="special">.</span><span class="identifier">initialize</span><span class="special">(</span> + <span class="identifier">x0</span> <span class="special">,</span> + <span class="identifier">t0</span> <span class="special">,</span> + <span class="identifier">dt0</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + void + </p> + </td> +<td> + <p> + Initializes the stepper with initial values <code class="computeroutput"><span class="identifier">x0</span></code>, + <code class="computeroutput"><span class="identifier">t0</span></code> and <code class="computeroutput"><span class="identifier">dt0</span></code>. + </p> + </td> +</tr> +<tr> +<td> + <p> + Do step + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">stepper</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> + <span class="identifier">sys</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> + <span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">time_type</span> <span class="special">,</span> + <span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">time_type</span> <span class="special">></span></code> + </p> + </td> +<td> + <p> + Performs one step using the ODE defined by <code class="computeroutput"><span class="identifier">sys</span></code>. + The step-size might be changed internally due to error control. + This function returns a pair containing <code class="computeroutput"><span class="identifier">t</span></code> + and <code class="computeroutput"><span class="identifier">t</span><span class="special">+</span><span class="identifier">dt</span></code> representing the interval + for which interpolation can be performed. + </p> + </td> +</tr> +<tr> +<td> + <p> + Do interpolation + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">stepper</span><span class="special">.</span><span class="identifier">calc_state</span><span class="special">(</span> + <span class="identifier">t_inter</span> <span class="special">,</span> + <span class="identifier">x</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">void</span></code> + </p> + </td> +<td> + <p> + Performs the interpolation to calculate /x(t<sub>inter</sub>/) where /t <= + t<sub>inter</sub> <= t+dt/. + </p> + </td> +</tr> +<tr> +<td> + <p> + Get current time + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">stepper</span><span class="special">.</span><span class="identifier">current_time</span><span class="special">()</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">time_type</span><span class="special">&</span></code> + </p> + </td> +<td> + <p> + Returns the current time <span class="emphasis"><em>t+dt</em></span> of the stepper, + that is the end time of the last step and the starting time for + the next call of <code class="computeroutput"><span class="identifier">do_step</span></code> + </p> + </td> +</tr> +<tr> +<td> + <p> + Get current state + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">stepper</span><span class="special">.</span><span class="identifier">current_state</span><span class="special">()</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">state_type</span><span class="special">&</span></code> + </p> + </td> +<td> + <p> + Returns the current state of the stepper, that is <span class="emphasis"><em>x(t+dt)</em></span>, + the state at the time returned by <code class="computeroutput"><span class="identifier">stepper</span><span class="special">.</span><span class="identifier">current_time</span><span class="special">()</span></code> + </p> + </td> +</tr> +</tbody> +</table></div> +<h5> +<a name="boost_numeric_odeint.concepts.dense_output_stepper.h4"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.dense_output_stepper.models"></a></span><a class="link" href="dense_output_stepper.html#boost_numeric_odeint.concepts.dense_output_stepper.models">Models</a> + </h5> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">dense_output_controlled_explicit_fsal</span><span class="special"><</span> <span class="identifier">controlled_error_stepper_fsal</span><span class="special"><</span> <span class="identifier">runge_kutta_dopri5</span> + <span class="special">></span></code> + </li> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">bulirsch_stoer_dense_out</span></code> + </li> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">rosenbrock4_dense_output</span></code> + </li> +</ul></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="controlled_stepper.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="state_algebra_operations.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/error_stepper.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/error_stepper.html new file mode 100644 index 000000000..300dd0080 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/error_stepper.html @@ -0,0 +1,370 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Error Stepper</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../concepts.html" title="Concepts"> +<link rel="prev" href="stepper.html" title="Stepper"> +<link rel="next" href="controlled_stepper.html" title="Controlled Stepper"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="stepper.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="controlled_stepper.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.concepts.error_stepper"></a><a class="link" href="error_stepper.html" title="Error Stepper">Error Stepper</a> +</h3></div></div></div> +<p> + This concepts specifies the interface an error stepper has to fulfill to + be used within a ControlledErrorStepper. An error stepper must always fulfill + the stepper concept. This can trivially implemented by + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">System</span> <span class="special">></span> +<span class="identifier">error_stepper</span><span class="special">::</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">System</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">time_type</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">time_type</span> <span class="identifier">dt</span> <span class="special">)</span> +<span class="special">{</span> + <span class="identifier">state_type</span> <span class="identifier">xerr</span><span class="special">;</span> + <span class="comment">// allocate xerr</span> + <span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">,</span> <span class="identifier">xerr</span> <span class="special">);</span> +<span class="special">}</span> +</pre> +<p> + </p> +<h5> +<a name="boost_numeric_odeint.concepts.error_stepper.h0"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.error_stepper.description"></a></span><a class="link" href="error_stepper.html#boost_numeric_odeint.concepts.error_stepper.description">Description</a> + </h5> +<p> + An error stepper following this Error Stepper concept is capable of doing + one step of the solution <span class="emphasis"><em>x(t)</em></span> of an ODE with step-size + <span class="emphasis"><em>dt</em></span> to obtain <span class="emphasis"><em>x(t+dt)</em></span> and also computing + an error estimate <span class="emphasis"><em>x<sub>err</sub></em></span> of the result. Error Steppers + can be Runge-Kutta steppers, symplectic steppers as well as implicit steppers. + Based on the stepper type, the ODE is defined as <a class="link" href="system.html" title="System">System</a>, + <a class="link" href="symplectic_system.html" title="Symplectic System">Symplectic + System</a>, <a class="link" href="simple_symplectic_system.html" title="Simple Symplectic System">Simple + Symplectic System</a> or <a class="link" href="implicit_system.html" title="Implicit System">Implicit + System</a>. + </p> +<h5> +<a name="boost_numeric_odeint.concepts.error_stepper.h1"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.error_stepper.refinement_of"></a></span><a class="link" href="error_stepper.html#boost_numeric_odeint.concepts.error_stepper.refinement_of">Refinement + of</a> + </h5> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + DefaultConstructable + </li> +<li class="listitem"> + CopyConstructable + </li> +<li class="listitem"> + Stepper + </li> +</ul></div> +<h5> +<a name="boost_numeric_odeint.concepts.error_stepper.h2"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.error_stepper.associated_types"></a></span><a class="link" href="error_stepper.html#boost_numeric_odeint.concepts.error_stepper.associated_types">Associated + types</a> + </h5> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + <p><span class="bold"><strong>state_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">state_type</span></code></p> +<p>The + type characterizing the state of the ODE, hence <span class="emphasis"><em>x</em></span>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>deriv_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">deriv_type</span></code></p> +<p>The + type characterizing the derivative of the ODE, hence <span class="emphasis"><em>d x/dt</em></span>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>time_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">time_type</span></code></p> +<p>The + type characterizing the dependent variable of the ODE, hence the time + <span class="emphasis"><em>t</em></span>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>value_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">value_type</span></code></p> +<p>The + numerical data type which is used within the stepper, something like + <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>, + <code class="computeroutput"><span class="identifier">complex</span><span class="special">&</span><span class="identifier">lt</span><span class="special">;</span> <span class="keyword">double</span> <span class="special">&</span><span class="identifier">gt</span><span class="special">;</span></code>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>order_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">order_type</span></code></p> +<p>The + type characterizing the order of the ODE, typically <code class="computeroutput"><span class="keyword">unsigned</span> + <span class="keyword">short</span></code>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>stepper_category</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">stepper_category</span></code></p> +<p>A + tag type characterizing the category of the stepper. This type must be + convertible to <code class="computeroutput"><span class="identifier">error_stepper_tag</span></code>.</p> + </li> +</ul></div> +<h5> +<a name="boost_numeric_odeint.concepts.error_stepper.h3"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.error_stepper.notation"></a></span><a class="link" href="error_stepper.html#boost_numeric_odeint.concepts.error_stepper.notation">Notation</a> + </h5> +<div class="variablelist"> +<p class="title"><b></b></p> +<dl class="variablelist"> +<dt><span class="term"><code class="computeroutput"><span class="identifier">ErrorStepper</span></code></span></dt> +<dd><p> + A type that is a model of Error Stepper + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">State</span></code></span></dt> +<dd><p> + A type representing the state <span class="emphasis"><em>x</em></span> of the ODE + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">Error</span></code></span></dt> +<dd><p> + A type representing the error calculated by the stepper, usually same + as <code class="computeroutput"><span class="identifier">State</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">Time</span></code></span></dt> +<dd><p> + A type representing the time <span class="emphasis"><em>t</em></span> of the ODE + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">stepper</span></code></span></dt> +<dd><p> + An object of type <code class="computeroutput"><span class="identifier">ErrorStepper</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">x</span></code></span></dt> +<dd><p> + Object of type <code class="computeroutput"><span class="identifier">State</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">xerr</span></code></span></dt> +<dd><p> + Object of type <code class="computeroutput"><span class="identifier">Error</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">t</span></code>, <code class="computeroutput"><span class="identifier">dt</span></code></span></dt> +<dd><p> + Objects of type <code class="computeroutput"><span class="identifier">Time</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">sys</span></code></span></dt> +<dd><p> + An object defining the ODE, should be a model of either <a class="link" href="system.html" title="System">System</a>, + <a class="link" href="symplectic_system.html" title="Symplectic System">Symplectic + System</a>, <a class="link" href="simple_symplectic_system.html" title="Simple Symplectic System">Simple + Symplectic System</a> or <a class="link" href="implicit_system.html" title="Implicit System">Implicit + System</a>. + </p></dd> +</dl> +</div> +<h5> +<a name="boost_numeric_odeint.concepts.error_stepper.h4"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.error_stepper.valid_expressions"></a></span><a class="link" href="error_stepper.html#boost_numeric_odeint.concepts.error_stepper.valid_expressions">Valid + Expressions</a> + </h5> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Get the stepper order + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">stepper</span><span class="special">.</span><span class="identifier">order</span><span class="special">()</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">order_type</span></code> + </p> + </td> +<td> + <p> + Returns the order of the stepper for one step without error estimation. + </p> + </td> +</tr> +<tr> +<td> + <p> + Get the stepper order + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">stepper</span><span class="special">.</span><span class="identifier">stepper_order</span><span class="special">()</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">order_type</span></code> + </p> + </td> +<td> + <p> + Returns the order of the stepper for one error estimation step + which is used for error calculation. + </p> + </td> +</tr> +<tr> +<td> + <p> + Get the error order + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">stepper</span><span class="special">.</span><span class="identifier">errorr_order</span><span class="special">()</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">order_type</span></code> + </p> + </td> +<td> + <p> + Returns the order of the error step which is used for error calculation. + </p> + </td> +</tr> +<tr> +<td> + <p> + Do step + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">stepper</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> + <span class="identifier">sys</span> <span class="special">,</span> + <span class="identifier">x</span> <span class="special">,</span> + <span class="identifier">t</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">void</span></code> + </p> + </td> +<td> + <p> + Performs one step of step size <code class="computeroutput"><span class="identifier">dt</span></code>. + The newly obtained state is written in-place to <code class="computeroutput"><span class="identifier">x</span></code>. + </p> + </td> +</tr> +<tr> +<td> + <p> + Do step with error estimation + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">stepper</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> + <span class="identifier">sys</span> <span class="special">,</span> + <span class="identifier">x</span> <span class="special">,</span> + <span class="identifier">t</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">,</span> + <span class="identifier">xerr</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">void</span></code> + </p> + </td> +<td> + <p> + Performs one step of step size <code class="computeroutput"><span class="identifier">dt</span></code> + with error estimation. The newly obtained state is written in-place + to <code class="computeroutput"><span class="identifier">x</span></code> and the estimated + error to <code class="computeroutput"><span class="identifier">xerr</span></code>. + </p> + </td> +</tr> +</tbody> +</table></div> +<h5> +<a name="boost_numeric_odeint.concepts.error_stepper.h5"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.error_stepper.models"></a></span><a class="link" href="error_stepper.html#boost_numeric_odeint.concepts.error_stepper.models">Models</a> + </h5> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">runge_kutta_cash_karp54</span></code> + </li> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">runge_kutta_dopri5</span></code> + </li> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">runge_kutta_fehlberg78</span></code> + </li> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">rosenbrock4</span></code> + </li> +</ul></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="stepper.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="controlled_stepper.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/implicit_system.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/implicit_system.html new file mode 100644 index 000000000..be021f459 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/implicit_system.html @@ -0,0 +1,185 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Implicit System</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../concepts.html" title="Concepts"> +<link rel="prev" href="simple_symplectic_system.html" title="Simple Symplectic System"> +<link rel="next" href="stepper.html" title="Stepper"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="simple_symplectic_system.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="stepper.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.concepts.implicit_system"></a><a class="link" href="implicit_system.html" title="Implicit System">Implicit + System</a> +</h3></div></div></div> +<h5> +<a name="boost_numeric_odeint.concepts.implicit_system.h0"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.implicit_system.description"></a></span><a class="link" href="implicit_system.html#boost_numeric_odeint.concepts.implicit_system.description">Description</a> + </h5> +<p> + This concept describes how to define a ODE that can be solved by an implicit + routine. Implicit routines need not only the function <span class="emphasis"><em>f(x,t)</em></span> + but also the Jacobian <span class="emphasis"><em>df/dx = A(x,t)</em></span>. <span class="emphasis"><em>A</em></span> + is a matrix and implicit routines need to solve the linear problem <span class="emphasis"><em>Ax + = b</em></span>. In odeint this is implemented with use of <a href="http://www.boost.org/doc/libs/release/libs/numeric/ublas/index.html" target="_top">Boost.uBLAS</a>, + therefore, the <span class="emphasis"><em>state_type</em></span> implicit routines is <span class="emphasis"><em>ublas::vector</em></span> + and the matrix is defined as <span class="emphasis"><em>ublas::matrix</em></span>. + </p> +<h5> +<a name="boost_numeric_odeint.concepts.implicit_system.h1"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.implicit_system.notation"></a></span><a class="link" href="implicit_system.html#boost_numeric_odeint.concepts.implicit_system.notation">Notation</a> + </h5> +<div class="variablelist"> +<p class="title"><b></b></p> +<dl class="variablelist"> +<dt><span class="term"><code class="computeroutput"><span class="identifier">System</span></code></span></dt> +<dd><p> + A type that is a model of <code class="computeroutput"><span class="identifier">Implicit</span> + <span class="identifier">System</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">Time</span></code></span></dt> +<dd><p> + A type representing the time of the ODE + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">sys</span></code></span></dt> +<dd><p> + An object of type <code class="computeroutput"><span class="identifier">System</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">x</span></code></span></dt> +<dd><p> + Object of type ublas::vector + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">dxdt</span></code></span></dt> +<dd><p> + Object of type ublas::vector + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">jacobi</span></code></span></dt> +<dd><p> + Object of type ublas::matrix + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">t</span></code></span></dt> +<dd><p> + Object of type <code class="computeroutput"><span class="identifier">Time</span></code> + </p></dd> +</dl> +</div> +<h5> +<a name="boost_numeric_odeint.concepts.implicit_system.h2"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.implicit_system.valid_expressions"></a></span><a class="link" href="implicit_system.html#boost_numeric_odeint.concepts.implicit_system.valid_expressions">Valid + Expressions</a> + </h5> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Calculate <span class="emphasis"><em>dx/dt := f(x,t)</em></span> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">sys</span><span class="special">.</span><span class="identifier">first</span><span class="special">(</span> + <span class="identifier">x</span> <span class="special">,</span> + <span class="identifier">dxdt</span> <span class="special">,</span> + <span class="identifier">t</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">void</span></code> + </p> + </td> +<td> + <p> + Calculates <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">t</span><span class="special">)</span></code>, + the result is stored into dxdt + </p> + </td> +</tr> +<tr> +<td> + <p> + Calculate <span class="emphasis"><em>A := df/dx (x,t)</em></span> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">sys</span><span class="special">.</span><span class="identifier">second</span><span class="special">(</span> + <span class="identifier">x</span> <span class="special">,</span> + <span class="identifier">jacobi</span> <span class="special">,</span> + <span class="identifier">t</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">void</span></code> + </p> + </td> +<td> + <p> + Calculates the Jacobian of <span class="emphasis"><em>f</em></span> at <span class="emphasis"><em>x</em></span>,<span class="emphasis"><em>t</em></span>, + the result is stored into <code class="computeroutput"><span class="identifier">jacobi</span></code> + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="simple_symplectic_system.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="stepper.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/simple_symplectic_system.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/simple_symplectic_system.html new file mode 100644 index 000000000..4ada2c93e --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/simple_symplectic_system.html @@ -0,0 +1,188 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Simple Symplectic System</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../concepts.html" title="Concepts"> +<link rel="prev" href="symplectic_system.html" title="Symplectic System"> +<link rel="next" href="implicit_system.html" title="Implicit System"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="symplectic_system.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="implicit_system.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.concepts.simple_symplectic_system"></a><a class="link" href="simple_symplectic_system.html" title="Simple Symplectic System">Simple + Symplectic System</a> +</h3></div></div></div> +<h5> +<a name="boost_numeric_odeint.concepts.simple_symplectic_system.h0"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.simple_symplectic_system.description"></a></span><a class="link" href="simple_symplectic_system.html#boost_numeric_odeint.concepts.simple_symplectic_system.description">Description</a> + </h5> +<p> + In most Hamiltonian systems the kinetic term is a quadratic term in the momentum + <span class="emphasis"><em>H<sub>kin</sub> = p^2 / 2m</em></span> and in many cases it is possible to rescale + coordinates and set <span class="emphasis"><em>m=1</em></span> which leads to a trivial equation + of motion: + </p> +<p> + <span class="emphasis"><em>q'(t) = f(p) = p. </em></span> + </p> +<p> + while for <span class="emphasis"><em>p'</em></span> we still have the general form + </p> +<p> + <span class="emphasis"><em>p'(t) = g(q) </em></span> + </p> +<p> + As this case is very frequent we introduced a concept where only the nontrivial + equation for <span class="emphasis"><em>p'</em></span> has to be provided to the symplectic + stepper. We call this concept <span class="emphasis"><em>SimpleSymplecticSystem</em></span> + </p> +<h5> +<a name="boost_numeric_odeint.concepts.simple_symplectic_system.h1"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.simple_symplectic_system.notation"></a></span><a class="link" href="simple_symplectic_system.html#boost_numeric_odeint.concepts.simple_symplectic_system.notation">Notation</a> + </h5> +<div class="variablelist"> +<p class="title"><b></b></p> +<dl class="variablelist"> +<dt><span class="term">System</span></dt> +<dd><p> + A type that is a model of SimpleSymplecticSystem + </p></dd> +<dt><span class="term">Coor</span></dt> +<dd><p> + The type of the coordinate <span class="emphasis"><em>q</em></span> + </p></dd> +<dt><span class="term">MomentumDeriv</span></dt> +<dd><p> + The type of the derivative of momentum <span class="emphasis"><em>p'</em></span> + </p></dd> +<dt><span class="term">sys</span></dt> +<dd><p> + An object that models System + </p></dd> +<dt><span class="term">q</span></dt> +<dd><p> + Object of type Coor + </p></dd> +<dt><span class="term">dpdt</span></dt> +<dd><p> + Object of type MomentumDeriv + </p></dd> +</dl> +</div> +<h5> +<a name="boost_numeric_odeint.concepts.simple_symplectic_system.h2"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.simple_symplectic_system.valid_expressions"></a></span><a class="link" href="simple_symplectic_system.html#boost_numeric_odeint.concepts.simple_symplectic_system.valid_expressions">Valid + Expressions</a> + </h5> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Check for pair + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_pair</span><span class="special"><</span> + <span class="identifier">System</span> <span class="special">>::</span><span class="identifier">type</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code> + </p> + </td> +<td> + <p> + Check if System is a pair, should be evaluated to false in this + case. + </p> + </td> +</tr> +<tr> +<td> + <p> + Calculate <span class="emphasis"><em>dp/dt = g(q)</em></span> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">sys</span><span class="special">(</span> + <span class="identifier">q</span> <span class="special">,</span> + <span class="identifier">dpdt</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">void</span></code> + </p> + </td> +<td> + <p> + Calculates <span class="emphasis"><em>g(q)</em></span>, the result is stored into + <code class="computeroutput"><span class="identifier">dpdt</span></code> + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="symplectic_system.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="implicit_system.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/state_algebra_operations.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/state_algebra_operations.html new file mode 100644 index 000000000..83a21326c --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/state_algebra_operations.html @@ -0,0 +1,839 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>State Algebra Operations</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../concepts.html" title="Concepts"> +<link rel="prev" href="dense_output_stepper.html" title="Dense Output Stepper"> +<link rel="next" href="state_wrapper.html" title="State Wrapper"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="dense_output_stepper.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="state_wrapper.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.concepts.state_algebra_operations"></a><a class="link" href="state_algebra_operations.html" title="State Algebra Operations">State + Algebra Operations</a> +</h3></div></div></div> +<div class="toc"><dl class="toc"> +<dt><span class="section"><a href="state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.operations">Operations</a></span></dt> +<dt><span class="section"><a href="state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.algebra">Algebra</a></span></dt> +<dt><span class="section"><a href="state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.pre_defined_implementations">Pre-Defined + implementations</a></span></dt> +<dt><span class="section"><a href="state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.example_expressions">Example + expressions</a></span></dt> +</dl></div> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p> + The following does not apply to implicit steppers like implicit_euler or + Rosenbrock 4 as there the <code class="computeroutput"><span class="identifier">state_type</span></code> + can not be changed from <code class="computeroutput"><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">vector</span></code> + and no algebra/operations are used. + </p></td></tr> +</table></div> +<h5> +<a name="boost_numeric_odeint.concepts.state_algebra_operations.h0"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.state_algebra_operations.description"></a></span><a class="link" href="state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.description">Description</a> + </h5> +<p> + The <code class="computeroutput"><span class="identifier">State</span></code>, <code class="computeroutput"><span class="identifier">Algebra</span></code> and <code class="computeroutput"><span class="identifier">Operations</span></code> + together define a concept describing how the mathematical vector operations + required for the stepper algorithms are performed. The typical vector operation + done within steppers is + </p> +<p> + <span class="emphasis"><em><span class="bold"><strong>y</strong></span> = Σ α<sub>i</sub> <span class="bold"><strong>x<sub>i</sub></strong></span></em></span>. + </p> +<p> + The <code class="computeroutput"><span class="identifier">State</span></code> represents the + state variable of an ODE, usually denoted with <span class="emphasis"><em>x</em></span>. Algorithmically, + the state is often realized as a <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span></code> or <code class="computeroutput"><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">N</span> <span class="special">></span></code>, + however, the genericity of odeint enables you to basically use anything as + a state type. The algorithmic counterpart of such mathematical expressions + is divided into two parts. First, the <code class="computeroutput"><span class="identifier">Algebra</span></code> + is used to account for the vector character of the equation. In the case + of a <code class="computeroutput"><span class="identifier">vector</span></code> as state type + this means the <code class="computeroutput"><span class="identifier">Algebra</span></code> is + responsible for iteration over all vector elements. Second, the <code class="computeroutput"><span class="identifier">Operations</span></code> are used to represent the actual + operation applied to each of the vector elements. So the <code class="computeroutput"><span class="identifier">Algebra</span></code> + iterates over all elements of the <code class="computeroutput"><span class="identifier">State</span></code>s + and calls an operation taken from the <code class="computeroutput"><span class="identifier">Operations</span></code> + for each element. This is where <code class="computeroutput"><span class="identifier">State</span></code>, + <code class="computeroutput"><span class="identifier">Algebra</span></code> and <code class="computeroutput"><span class="identifier">Operations</span></code> have to work together to make + odeint running. Please have a look at the <code class="computeroutput"><span class="identifier">range_algebra</span></code> + and <code class="computeroutput"><span class="identifier">default_operations</span></code> to + see an example how this is implemented. + </p> +<p> + In the following we describe how <code class="computeroutput"><span class="identifier">State</span></code>, + <code class="computeroutput"><span class="identifier">Algebra</span></code> and <code class="computeroutput"><span class="identifier">Operations</span></code> are used together within the + stepper implementations. + </p> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.concepts.state_algebra_operations.operations"></a><a class="link" href="state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.operations" title="Operations">Operations</a> +</h4></div></div></div> +<h6> +<a name="boost_numeric_odeint.concepts.state_algebra_operations.operations.h0"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.state_algebra_operations.operations.notation"></a></span><a class="link" href="state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.operations.notation">Notation</a> + </h6> +<div class="variablelist"> +<p class="title"><b></b></p> +<dl class="variablelist"> +<dt><span class="term"><code class="computeroutput"><span class="identifier">Operations</span></code></span></dt> +<dd><p> + The operations type + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">Value1</span></code>, ... , + <code class="computeroutput"><span class="identifier">ValueN</span></code></span></dt> +<dd><p> + Types representing the value or time type of stepper + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">Scale</span></code></span></dt> +<dd><p> + Type of the scale operation + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">scale</span></code></span></dt> +<dd><p> + Object of type <code class="computeroutput"><span class="identifier">Scale</span></code> + </p></dd> +<dt><span class="term"><code class="literal">ScaleSum<span class="emphasis"><em>N</em></span></code></span></dt> +<dd><p> + Type that represents a general scale_sum operation, <code class="literal"><span class="emphasis"><em>N</em></span></code> + should be replaced by a number from 1 to 14. + </p></dd> +<dt><span class="term"><code class="literal">scale_sum<span class="emphasis"><em>N</em></span></code></span></dt> +<dd><p> + Object of type <code class="literal">ScaleSum<span class="emphasis"><em>N</em></span></code>, + <code class="literal"><span class="emphasis"><em>N</em></span></code> should be replaced by a + number from 1 to 14. + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">ScaleSumSwap2</span></code></span></dt> +<dd><p> + Type of the scale sum swap operation + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">scale_sum_swap2</span></code></span></dt> +<dd><p> + Object of type <code class="computeroutput"><span class="identifier">ScaleSumSwap2</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">a1</span><span class="special">,</span> + <span class="identifier">a2</span><span class="special">,</span> + <span class="special">...</span></code></span></dt> +<dd><p> + Objects of type <code class="computeroutput"><span class="identifier">Value1</span></code>, + <code class="computeroutput"><span class="identifier">Value2</span></code>, ... + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">y</span><span class="special">,</span> + <span class="identifier">x1</span><span class="special">,</span> + <span class="identifier">x2</span><span class="special">,</span> + <span class="special">...</span></code></span></dt> +<dd><p> + Objects of <code class="computeroutput"><span class="identifier">State</span></code>'s + value type + </p></dd> +</dl> +</div> +<h6> +<a name="boost_numeric_odeint.concepts.state_algebra_operations.operations.h1"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.state_algebra_operations.operations.valid_expressions"></a></span><a class="link" href="state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.operations.valid_expressions">Valid + Expressions</a> + </h6> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Get scale operation + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">Operations</span><span class="special">::</span><span class="identifier">scale</span><span class="special"><</span> + <span class="identifier">Value</span> <span class="special">></span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">Scale</span></code> + </p> + </td> +<td> + <p> + Get <code class="computeroutput"><span class="identifier">Scale</span></code> from + <code class="computeroutput"><span class="identifier">Operations</span></code> + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">Scale</span></code> constructor + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">Scale</span><span class="special"><</span> + <span class="identifier">Value</span> <span class="special">>(</span> + <span class="identifier">a</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">Scale</span></code> + </p> + </td> +<td> + <p> + Constructs a <code class="computeroutput"><span class="identifier">Scale</span></code> + object + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">Scale</span></code> operation + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">scale</span><span class="special">(</span> + <span class="identifier">x</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">void</span></code> + </p> + </td> +<td> + <p> + Calculates <code class="computeroutput"><span class="identifier">x</span> <span class="special">*=</span> <span class="identifier">a</span></code> + </p> + </td> +</tr> +<tr> +<td> + <p> + Get general <code class="computeroutput"><span class="identifier">scale_sum</span></code> + operation + </p> + </td> +<td> + <p> + <code class="literal">Operations::scale_sum<span class="emphasis"><em>N</em></span>< Value1 + , ... , ValueN ></code> + </p> + </td> +<td> + <p> + <code class="literal">ScaleSum<span class="emphasis"><em>N</em></span></code> + </p> + </td> +<td> + <p> + Get the <code class="literal">ScaleSum<span class="emphasis"><em>N</em></span></code> type + from <code class="computeroutput"><span class="identifier">Operations</span></code>, + <code class="literal"><span class="emphasis"><em>N</em></span></code> should be replaced + by a number from 1 to 14. + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">scale_sum</span></code> constructor + </p> + </td> +<td> + <p> + <code class="literal">ScaleSum<span class="emphasis"><em>N</em></span>< Value1 , ... , ValueN + >( a1 , ... , aN )</code> + </p> + </td> +<td> + <p> + <code class="literal">ScaleSum<span class="emphasis"><em>N</em></span></code> + </p> + </td> +<td> + <p> + Constructs a <code class="computeroutput"><span class="identifier">scale_sum</span></code> + object given <code class="literal"><span class="emphasis"><em>N</em></span></code> parameter + values with <code class="literal"><span class="emphasis"><em>N</em></span></code> between + 1 and 14. + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">scale_sum</span></code> operation + </p> + </td> +<td> + <p> + <code class="literal">scale_sum<span class="emphasis"><em>N</em></span>( y , x1 , ... , xN )</code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">void</span></code> + </p> + </td> +<td> + <p> + Calculates <code class="computeroutput"><span class="identifier">y</span> <span class="special">=</span> <span class="identifier">a1</span><span class="special">*</span><span class="identifier">x1</span> + <span class="special">+</span> <span class="identifier">a2</span><span class="special">*</span><span class="identifier">x2</span> + <span class="special">+</span> <span class="special">...</span> + <span class="special">+</span> <span class="identifier">aN</span><span class="special">*</span><span class="identifier">xN</span></code>. + Note that this is an <code class="literal"><span class="emphasis"><em>N</em></span>+1</code>-ary + function call. + </p> + </td> +</tr> +<tr> +<td> + <p> + Get scale sum swap operation + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">Operations</span><span class="special">::</span><span class="identifier">scale_sum_swap2</span><span class="special"><</span> + <span class="identifier">Value1</span> <span class="special">,</span> + <span class="identifier">Value2</span> <span class="special">></span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">ScaleSumSwap2</span></code> + </p> + </td> +<td> + <p> + Get scale sum swap from operations + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">ScaleSumSwap2</span></code> + constructor + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">ScaleSumSwap2</span><span class="special"><</span> <span class="identifier">Value1</span> + <span class="special">,</span> <span class="identifier">Value2</span> + <span class="special">>(</span> <span class="identifier">a1</span> + <span class="special">,</span> <span class="identifier">a2</span> + <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">ScaleSumSwap2</span></code> + </p> + </td> +<td> + <p> + Constructor + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">ScaleSumSwap2</span></code> + operation + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">scale_sum_swap2</span><span class="special">(</span> <span class="identifier">x1</span> + <span class="special">,</span> <span class="identifier">x2</span> + <span class="special">,</span> <span class="identifier">x3</span> + <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">void</span></code> + </p> + </td> +<td> + <p> + Calculates <code class="computeroutput"><span class="identifier">tmp</span> <span class="special">=</span> <span class="identifier">x1</span></code>, + <code class="computeroutput"><span class="identifier">x1</span> <span class="special">=</span> + <span class="identifier">a1</span><span class="special">*</span><span class="identifier">x2</span> <span class="special">+</span> + <span class="identifier">a2</span><span class="special">*</span><span class="identifier">x3</span></code> and <code class="computeroutput"><span class="identifier">x2</span> + <span class="special">=</span> <span class="identifier">tmp</span></code>. + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.concepts.state_algebra_operations.algebra"></a><a class="link" href="state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.algebra" title="Algebra">Algebra</a> +</h4></div></div></div> +<h6> +<a name="boost_numeric_odeint.concepts.state_algebra_operations.algebra.h0"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.state_algebra_operations.algebra.notation"></a></span><a class="link" href="state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.algebra.notation">Notation</a> + </h6> +<div class="variablelist"> +<p class="title"><b></b></p> +<dl class="variablelist"> +<dt><span class="term"><code class="computeroutput"><span class="identifier">State</span></code></span></dt> +<dd><p> + The state type + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">Algebra</span></code></span></dt> +<dd><p> + The algebra type + </p></dd> +<dt><span class="term"><code class="literal">Operation<span class="emphasis"><em>N</em></span></code></span></dt> +<dd><p> + An <code class="literal"><span class="emphasis"><em>N</em></span></code>-ary operation type, + <code class="literal"><span class="emphasis"><em>N</em></span></code> should be a number from + 1 to 14. + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">algebra</span></code></span></dt> +<dd><p> + Object of type <code class="computeroutput"><span class="identifier">Algebra</span></code> + </p></dd> +<dt><span class="term"><code class="literal">operation<span class="emphasis"><em>N</em></span></code></span></dt> +<dd><p> + Object of type <code class="literal">Operation<span class="emphasis"><em>N</em></span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">y</span><span class="special">,</span> + <span class="identifier">x1</span><span class="special">,</span> + <span class="identifier">x2</span><span class="special">,</span> + <span class="special">...</span></code></span></dt> +<dd><p> + Objects of type <code class="computeroutput"><span class="identifier">State</span></code> + </p></dd> +</dl> +</div> +<h6> +<a name="boost_numeric_odeint.concepts.state_algebra_operations.algebra.h1"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.state_algebra_operations.algebra.valid_expressions"></a></span><a class="link" href="state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.algebra.valid_expressions">Valid + Expressions</a> + </h6> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Vector Operation with arity 2 + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">algebra</span><span class="special">.</span><span class="identifier">for_each2</span><span class="special">(</span> + <span class="identifier">y</span> <span class="special">,</span> + <span class="identifier">x</span> <span class="special">,</span> + <span class="identifier">operation2</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + void + </p> + </td> +<td> + <p> + Calls <code class="computeroutput"><span class="identifier">operation2</span><span class="special">(</span> <span class="identifier">y_i</span> + <span class="special">,</span> <span class="identifier">x_i</span> + <span class="special">)</span></code> for each element <code class="computeroutput"><span class="identifier">y_i</span></code> of <code class="computeroutput"><span class="identifier">y</span></code> + and <code class="computeroutput"><span class="identifier">x_i</span></code> of <code class="computeroutput"><span class="identifier">x</span></code>. + </p> + </td> +</tr> +<tr> +<td> + <p> + Vector Operation with arity 3 + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">algebra</span><span class="special">.</span><span class="identifier">for_each3</span><span class="special">(</span> + <span class="identifier">y</span> <span class="special">,</span> + <span class="identifier">x1</span> <span class="special">,</span> + <span class="identifier">x2</span> <span class="special">,</span> + <span class="identifier">operation3</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + void + </p> + </td> +<td> + <p> + Calls <code class="computeroutput"><span class="identifier">operation3</span><span class="special">(</span> <span class="identifier">y_i</span> + <span class="special">,</span> <span class="identifier">x1_i</span> + <span class="special">,</span> <span class="identifier">x2_i</span> + <span class="special">)</span></code> for each element <code class="computeroutput"><span class="identifier">y_i</span></code> of <code class="computeroutput"><span class="identifier">y</span></code> + and <code class="computeroutput"><span class="identifier">x1_i</span></code> of + <code class="computeroutput"><span class="identifier">x1</span></code> and <code class="computeroutput"><span class="identifier">x2_i</span></code> of <code class="computeroutput"><span class="identifier">x2</span></code>. + </p> + </td> +</tr> +<tr> +<td> + <p> + Vector Operation with arity <code class="literal"><span class="emphasis"><em>N</em></span></code> + </p> + </td> +<td> + <p> + <code class="literal">algebra.for_each<span class="emphasis"><em>N</em></span>( y , x1 , ... + , xN , operation<span class="emphasis"><em>N</em></span> )</code> + </p> + </td> +<td> + <p> + void + </p> + </td> +<td> + <p> + Calls <code class="literal">operation<span class="emphasis"><em>N</em></span>( y_i , x1_i , + ... , xN_i )</code> for each element <code class="computeroutput"><span class="identifier">y_i</span></code> + of <code class="computeroutput"><span class="identifier">y</span></code> and <code class="computeroutput"><span class="identifier">x1_i</span></code> of <code class="computeroutput"><span class="identifier">x1</span></code> + and so on. <code class="literal"><span class="emphasis"><em>N</em></span></code> should be + replaced by a number between 1 and 14. + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.concepts.state_algebra_operations.pre_defined_implementations"></a><a class="link" href="state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.pre_defined_implementations" title="Pre-Defined implementations">Pre-Defined + implementations</a> +</h4></div></div></div> +<p> + As standard configuration odeint uses the <code class="computeroutput"><span class="identifier">range_algebra</span></code> + and <code class="computeroutput"><span class="identifier">default_operations</span></code> + which suffices most situations. However, a few more possibilities exist + either to gain better performance or to ensure interoperability with other + libraries. In the following we list the existing <code class="computeroutput"><span class="identifier">Algebra</span></code>/<code class="computeroutput"><span class="identifier">Operations</span></code> configurations that can be + used in the steppers. + </p> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + <code class="computeroutput"><span class="identifier">State</span></code> + </p> + </th> +<th> + <p> + <code class="computeroutput"><span class="identifier">Algebra</span></code> + </p> + </th> +<th> + <p> + <code class="computeroutput"><span class="identifier">Operations</span></code> + </p> + </th> +<th> + <p> + Remarks + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Anything supporting <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a>, + like <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code>, + <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code>,... based on a <code class="computeroutput"><span class="identifier">value_type</span></code> that supports operators + +,* (typically <code class="computeroutput"><span class="keyword">double</span></code>) + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">range_algebra</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">default_operations</span></code> + </p> + </td> +<td> + <p> + Standard implementation, applicable for most typical situations. + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code> based on a <code class="computeroutput"><span class="identifier">value_type</span></code> that supports operators + +,* + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">array_algebra</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">default_operations</span></code> + </p> + </td> +<td> + <p> + Special implementation for boost::array with better performance + than <code class="computeroutput"><span class="identifier">range_algebra</span></code> + </p> + </td> +</tr> +<tr> +<td> + <p> + Anything that defines operators + within itself and * with scalar + (Mathematically spoken, anything that is a vector space). + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">vector_space_algebra</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">default_operations</span></code> + </p> + </td> +<td> + <p> + For the use of <a class="link" href="controlled_stepper.html" title="Controlled Stepper">Controlled + Stepper</a>, the template <code class="computeroutput"><span class="identifier">vector_space_reduce</span></code> + has to be instantiated. + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">thrust</span><span class="special">::</span><span class="identifier">device_vector</span></code>, <code class="computeroutput"><span class="identifier">thrust</span><span class="special">::</span><span class="identifier">host_vector</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">thrust_algebra</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">thrust_operations</span></code> + </p> + </td> +<td> + <p> + For running odeint on CUDA devices by using <a href="http://code.google.com/p/thrust/" target="_top">Thrust</a> + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code> or anything which allocates + the elements in a C-like manner + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">vector_space_algebra</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">mkl_operations</span></code> + </p> + </td> +<td> + <p> + Using the <a href="http://software.intel.com/en-us/articles/intel-mkl/" target="_top">Intel + Math Kernel Library</a> in odeint for maximum performance. + Currently, only the RK4 stepper is supported. + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.concepts.state_algebra_operations.example_expressions"></a><a class="link" href="state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.example_expressions" title="Example expressions">Example + expressions</a> +</h4></div></div></div> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody><tr> +<td> + <p> + Vector operation + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">algebra</span><span class="special">.</span><span class="identifier">for_each3</span><span class="special">(</span> + <span class="identifier">y</span> <span class="special">,</span> + <span class="identifier">x1</span> <span class="special">,</span> + <span class="identifier">x2</span> <span class="special">,</span> + <span class="identifier">Operations</span><span class="special">::</span><span class="identifier">scale_sum2</span><span class="special"><</span> + <span class="identifier">Value1</span> <span class="special">,</span> + <span class="identifier">Value2</span> <span class="special">>(</span> + <span class="identifier">a1</span> <span class="special">,</span> + <span class="identifier">a2</span> <span class="special">)</span> + <span class="special">)</span></code> + </p> + </td> +<td> + <p> + void + </p> + </td> +<td> + <p> + Calculates <span class="emphasis"><em><span class="bold"><strong>y</strong></span> = a1 + <span class="bold"><strong>x1</strong></span> + a2 <span class="bold"><strong>x2</strong></span></em></span> + </p> + </td> +</tr></tbody> +</table></div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="dense_output_stepper.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="state_wrapper.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/state_wrapper.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/state_wrapper.html new file mode 100644 index 000000000..ba6879a34 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/state_wrapper.html @@ -0,0 +1,234 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>State Wrapper</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../concepts.html" title="Concepts"> +<link rel="prev" href="state_algebra_operations.html" title="State Algebra Operations"> +<link rel="next" href="../literature.html" title="Literature"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="state_algebra_operations.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../literature.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.concepts.state_wrapper"></a><a class="link" href="state_wrapper.html" title="State Wrapper">State Wrapper</a> +</h3></div></div></div> +<h5> +<a name="boost_numeric_odeint.concepts.state_wrapper.h0"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.state_wrapper.description"></a></span><a class="link" href="state_wrapper.html#boost_numeric_odeint.concepts.state_wrapper.description">Description</a> + </h5> +<p> + The <code class="computeroutput"><span class="identifier">State</span> <span class="identifier">Wrapper</span></code> + concept describes the way odeint creates temporary state objects to store + intermediate results within the stepper's <code class="computeroutput"><span class="identifier">do_step</span></code> + methods. + </p> +<h5> +<a name="boost_numeric_odeint.concepts.state_wrapper.h1"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.state_wrapper.notation"></a></span><a class="link" href="state_wrapper.html#boost_numeric_odeint.concepts.state_wrapper.notation">Notation</a> + </h5> +<div class="variablelist"> +<p class="title"><b></b></p> +<dl class="variablelist"> +<dt><span class="term"><code class="computeroutput"><span class="identifier">State</span></code></span></dt> +<dd><p> + A type that is the <code class="computeroutput"><span class="identifier">state_type</span></code> + of the ODE + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">WrappedState</span></code></span></dt> +<dd><p> + A type that is a model of State Wrapper for the state type <code class="computeroutput"><span class="identifier">State</span></code>. + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">x</span></code></span></dt> +<dd><p> + Object of type <code class="computeroutput"><span class="identifier">State</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">w</span></code></span></dt> +<dd><p> + Object of type <code class="computeroutput"><span class="identifier">WrappedState</span></code> + </p></dd> +</dl> +</div> +<h5> +<a name="boost_numeric_odeint.concepts.state_wrapper.h2"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.state_wrapper.valid_expressions"></a></span><a class="link" href="state_wrapper.html#boost_numeric_odeint.concepts.state_wrapper.valid_expressions">Valid + Expressions</a> + </h5> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Get resizeability + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">is_resizeable</span><span class="special"><</span> + <span class="identifier">State</span> <span class="special">></span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">false_type</span></code> or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">true_type</span></code> + </p> + </td> +<td> + <p> + Returns <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">true_type</span></code> if the <code class="computeroutput"><span class="identifier">State</span></code> is resizeable, <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">false_type</span></code> otherwise. + </p> + </td> +</tr> +<tr> +<td> + <p> + Create <code class="computeroutput"><span class="identifier">WrappedState</span></code> + type + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">state_wrapper</span><span class="special"><</span> + <span class="identifier">State</span> <span class="special">></span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">WrappedState</span></code> + </p> + </td> +<td> + <p> + Creates the type for a <code class="computeroutput"><span class="identifier">WrappedState</span></code> + for the state type <code class="computeroutput"><span class="identifier">State</span></code> + </p> + </td> +</tr> +<tr> +<td> + <p> + Constructor + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">WrappedState</span><span class="special">()</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">WrappedState</span></code> + </p> + </td> +<td> + <p> + Constructs a state wrapper with an empty state + </p> + </td> +</tr> +<tr> +<td> + <p> + Copy Constructor + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">WrappedState</span><span class="special">(</span> + <span class="identifier">w</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">WrappedState</span></code> + </p> + </td> +<td> + <p> + Constructs a state wrapper with a state of the same size as the + state in <code class="computeroutput"><span class="identifier">w</span></code> + </p> + </td> +</tr> +<tr> +<td> + <p> + Get state + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">w</span><span class="special">.</span><span class="identifier">m_v</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">State</span></code> + </p> + </td> +<td> + <p> + Returns the <code class="computeroutput"><span class="identifier">State</span></code> + object of this state wrapper. + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="state_algebra_operations.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../literature.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/stepper.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/stepper.html new file mode 100644 index 000000000..8b59bf246 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/stepper.html @@ -0,0 +1,280 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Stepper</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../concepts.html" title="Concepts"> +<link rel="prev" href="implicit_system.html" title="Implicit System"> +<link rel="next" href="error_stepper.html" title="Error Stepper"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="implicit_system.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="error_stepper.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.concepts.stepper"></a><a class="link" href="stepper.html" title="Stepper">Stepper</a> +</h3></div></div></div> +<p> + This concepts specifies the interface a simple stepper has to fulfill to + be used within the <a class="link" href="../odeint_in_detail/integrate_functions.html" title="Integrate functions">integrate + functions</a>. + </p> +<h5> +<a name="boost_numeric_odeint.concepts.stepper.h0"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.stepper.description"></a></span><a class="link" href="stepper.html#boost_numeric_odeint.concepts.stepper.description">Description</a> + </h5> +<p> + The basic stepper concept. A basic stepper following this Stepper concept + is able to perform a single step of the solution <span class="emphasis"><em>x(t)</em></span> + of an ODE to obtain <span class="emphasis"><em>x(t+dt)</em></span> using a given step size + <span class="emphasis"><em>dt</em></span>. Basic steppers can be Runge-Kutta steppers, symplectic + steppers as well as implicit steppers. Depending on the actual stepper, the + ODE is defined as <a class="link" href="system.html" title="System">System</a>, + <a class="link" href="symplectic_system.html" title="Symplectic System">Symplectic + System</a>, <a class="link" href="simple_symplectic_system.html" title="Simple Symplectic System">Simple + Symplectic System</a> or <a class="link" href="implicit_system.html" title="Implicit System">Implicit + System</a>. Note that all error steppers are also basic steppers. + </p> +<h5> +<a name="boost_numeric_odeint.concepts.stepper.h1"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.stepper.refinement_of"></a></span><a class="link" href="stepper.html#boost_numeric_odeint.concepts.stepper.refinement_of">Refinement + of</a> + </h5> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + DefaultConstructable + </li> +<li class="listitem"> + CopyConstructable + </li> +</ul></div> +<h5> +<a name="boost_numeric_odeint.concepts.stepper.h2"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.stepper.associated_types"></a></span><a class="link" href="stepper.html#boost_numeric_odeint.concepts.stepper.associated_types">Associated + types</a> + </h5> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + <p><span class="bold"><strong>state_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">state_type</span></code></p> +<p>The + type characterizing the state of the ODE, hence <span class="emphasis"><em>x</em></span>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>deriv_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">deriv_type</span></code></p> +<p>The + type characterizing the derivative of the ODE, hence <span class="emphasis"><em>d x/dt</em></span>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>time_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">time_type</span></code></p> +<p>The + type characterizing the dependent variable of the ODE, hence the time + <span class="emphasis"><em>t</em></span>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>value_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">value_type</span></code></p> +<p>The + numerical data type which is used within the stepper, something like + <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>, + <code class="computeroutput"><span class="identifier">complex</span><span class="special">&</span><span class="identifier">lt</span><span class="special">;</span> <span class="keyword">double</span> <span class="special">&</span><span class="identifier">gt</span><span class="special">;</span></code>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>order_type</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">order_type</span></code></p> +<p>The + type characterizing the order of the ODE, typically <code class="computeroutput"><span class="keyword">unsigned</span> + <span class="keyword">short</span></code>.</p> + </li> +<li class="listitem"> + <p><span class="bold"><strong>stepper_category</strong></span></p> +<p><code class="computeroutput"><span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">stepper_category</span></code></p> +<p>A + tag type characterizing the category of the stepper. This type must be + convertible to <code class="computeroutput"><span class="identifier">stepper_tag</span></code>.</p> + </li> +</ul></div> +<h5> +<a name="boost_numeric_odeint.concepts.stepper.h3"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.stepper.notation"></a></span><a class="link" href="stepper.html#boost_numeric_odeint.concepts.stepper.notation">Notation</a> + </h5> +<div class="variablelist"> +<p class="title"><b></b></p> +<dl class="variablelist"> +<dt><span class="term"><code class="computeroutput"><span class="identifier">Stepper</span></code></span></dt> +<dd><p> + A type that is a model of Stepper + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">State</span></code></span></dt> +<dd><p> + A type representing the state <span class="emphasis"><em>x</em></span> of the ODE + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">Time</span></code></span></dt> +<dd><p> + A type representing the time <span class="emphasis"><em>t</em></span> of the ODE + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">stepper</span></code></span></dt> +<dd><p> + An object of type <code class="computeroutput"><span class="identifier">Stepper</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">x</span></code></span></dt> +<dd><p> + Object of type <code class="computeroutput"><span class="identifier">State</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">t</span></code>, <code class="computeroutput"><span class="identifier">dt</span></code></span></dt> +<dd><p> + Objects of type <code class="computeroutput"><span class="identifier">Time</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">sys</span></code></span></dt> +<dd><p> + An object defining the ODE. Depending on the Stepper this might be + a model of <a class="link" href="system.html" title="System">System</a>, + <a class="link" href="symplectic_system.html" title="Symplectic System">Symplectic + System</a>, <a class="link" href="simple_symplectic_system.html" title="Simple Symplectic System">Simple + Symplectic System</a> or <a class="link" href="implicit_system.html" title="Implicit System">Implicit + System</a> + </p></dd> +</dl> +</div> +<h5> +<a name="boost_numeric_odeint.concepts.stepper.h4"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.stepper.valid_expressions"></a></span><a class="link" href="stepper.html#boost_numeric_odeint.concepts.stepper.valid_expressions">Valid Expressions</a> + </h5> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Get the order + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">stepper</span><span class="special">.</span><span class="identifier">order</span><span class="special">()</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">order_type</span></code> + </p> + </td> +<td> + <p> + Returns the order of the stepper. + </p> + </td> +</tr> +<tr> +<td> + <p> + Do step + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">stepper</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> + <span class="identifier">sys</span> <span class="special">,</span> + <span class="identifier">x</span> <span class="special">,</span> + <span class="identifier">t</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">void</span></code> + </p> + </td> +<td> + <p> + Performs one step of step size <code class="computeroutput"><span class="identifier">dt</span></code>. + The newly obtained state is written in place in <code class="computeroutput"><span class="identifier">x</span></code>. + </p> + </td> +</tr> +</tbody> +</table></div> +<h5> +<a name="boost_numeric_odeint.concepts.stepper.h5"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.stepper.models"></a></span><a class="link" href="stepper.html#boost_numeric_odeint.concepts.stepper.models">Models</a> + </h5> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">runge_kutta4</span></code> + </li> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">euler</span></code> + </li> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">runge_kutta_cash_karp54</span></code> + </li> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">runge_kutta_dopri5</span></code> + </li> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">runge_kutta_fehlberg78</span></code> + </li> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">modified_midpoint</span></code> + </li> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">rosenbrock4</span></code> + </li> +</ul></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="implicit_system.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="error_stepper.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/symplectic_system.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/symplectic_system.html new file mode 100644 index 000000000..fd5049d93 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/symplectic_system.html @@ -0,0 +1,242 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Symplectic System</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../concepts.html" title="Concepts"> +<link rel="prev" href="system.html" title="System"> +<link rel="next" href="simple_symplectic_system.html" title="Simple Symplectic System"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="system.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="simple_symplectic_system.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.concepts.symplectic_system"></a><a class="link" href="symplectic_system.html" title="Symplectic System">Symplectic + System</a> +</h3></div></div></div> +<h5> +<a name="boost_numeric_odeint.concepts.symplectic_system.h0"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.symplectic_system.description"></a></span><a class="link" href="symplectic_system.html#boost_numeric_odeint.concepts.symplectic_system.description">Description</a> + </h5> +<p> + This concept describes how to define a symplectic system written with generalized + coordinate <code class="computeroutput"><span class="identifier">q</span></code> and generalized + momentum <code class="computeroutput"><span class="identifier">p</span></code>: + </p> +<p> + <span class="emphasis"><em>q'(t) = f(p) </em></span> + </p> +<p> + <span class="emphasis"><em>p'(t) = g(q) </em></span> + </p> +<p> + Such a situation is typically found for Hamiltonian systems with a separable + Hamiltonian: + </p> +<p> + <span class="emphasis"><em>H(p,q) = H<sub>kin</sub>(p) + V(q) </em></span> + </p> +<p> + which gives the equations of motion: + </p> +<p> + <span class="emphasis"><em>q'(t) = dH<sub>kin</sub> / dp = f(p) </em></span> + </p> +<p> + <span class="emphasis"><em>p'(t) = dV / dq = g(q) </em></span> + </p> +<p> + The algorithmic implementation of this situation is described by a pair of + callable objects for <span class="emphasis"><em>f</em></span> and <span class="emphasis"><em>g</em></span> with + a specific parameter signature. Such a system should be implemented as a + std::pair of functions or a functors. Symplectic systems are used in symplectic + steppers like <code class="computeroutput"><span class="identifier">symplectic_rkn_sb3a_mclachlan</span></code>. + </p> +<h5> +<a name="boost_numeric_odeint.concepts.symplectic_system.h1"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.symplectic_system.notation"></a></span><a class="link" href="symplectic_system.html#boost_numeric_odeint.concepts.symplectic_system.notation">Notation</a> + </h5> +<div class="variablelist"> +<p class="title"><b></b></p> +<dl class="variablelist"> +<dt><span class="term"><code class="computeroutput"><span class="identifier">System</span></code></span></dt> +<dd><p> + A type that is a model of SymplecticSystem + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">Coor</span></code></span></dt> +<dd><p> + The type of the coordinate <span class="emphasis"><em>q</em></span> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">Momentum</span></code></span></dt> +<dd><p> + The type of the momentum <span class="emphasis"><em>p</em></span> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">CoorDeriv</span></code></span></dt> +<dd><p> + The type of the derivative of coordinate <span class="emphasis"><em>q'</em></span> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">MomentumDeriv</span></code></span></dt> +<dd><p> + The type of the derivative of momentum <span class="emphasis"><em>p'</em></span> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">sys</span></code></span></dt> +<dd><p> + An object of the type <code class="computeroutput"><span class="identifier">System</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">q</span></code></span></dt> +<dd><p> + Object of type Coor + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">p</span></code></span></dt> +<dd><p> + Object of type Momentum + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">dqdt</span></code></span></dt> +<dd><p> + Object of type CoorDeriv + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">dpdt</span></code></span></dt> +<dd><p> + Object of type MomentumDeriv + </p></dd> +</dl> +</div> +<h5> +<a name="boost_numeric_odeint.concepts.symplectic_system.h2"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.symplectic_system.valid_expressions"></a></span><a class="link" href="symplectic_system.html#boost_numeric_odeint.concepts.symplectic_system.valid_expressions">Valid + expressions</a> + </h5> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Check for pair + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_pair</span><span class="special"><</span> + <span class="identifier">System</span> <span class="special">>::</span><span class="identifier">type</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code> + </p> + </td> +<td> + <p> + Check if System is a pair + </p> + </td> +</tr> +<tr> +<td> + <p> + Calculate <span class="emphasis"><em>dq/dt = f(p)</em></span> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">sys</span><span class="special">.</span><span class="identifier">first</span><span class="special">(</span> + <span class="identifier">p</span> <span class="special">,</span> + <span class="identifier">dqdt</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">void</span></code> + </p> + </td> +<td> + <p> + Calculates <span class="emphasis"><em>f(p)</em></span>, the result is stored into + <code class="computeroutput"><span class="identifier">dqdt</span></code> + </p> + </td> +</tr> +<tr> +<td> + <p> + Calculate <span class="emphasis"><em>dp/dt = g(q)</em></span> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">sys</span><span class="special">.</span><span class="identifier">second</span><span class="special">(</span> + <span class="identifier">q</span> <span class="special">,</span> + <span class="identifier">dpdt</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">void</span></code> + </p> + </td> +<td> + <p> + Calculates <span class="emphasis"><em>g(q)</em></span>, the result is stored into + <code class="computeroutput"><span class="identifier">dpdt</span></code> + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="system.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="simple_symplectic_system.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/system.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/system.html new file mode 100644 index 000000000..67b7d138c --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/concepts/system.html @@ -0,0 +1,159 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>System</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../concepts.html" title="Concepts"> +<link rel="prev" href="../concepts.html" title="Concepts"> +<link rel="next" href="symplectic_system.html" title="Symplectic System"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../concepts.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="symplectic_system.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.concepts.system"></a><a class="link" href="system.html" title="System">System</a> +</h3></div></div></div> +<h5> +<a name="boost_numeric_odeint.concepts.system.h0"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.system.description"></a></span><a class="link" href="system.html#boost_numeric_odeint.concepts.system.description">Description</a> + </h5> +<p> + The System concept models the algorithmic implementation of the rhs. of the + ODE <span class="emphasis"><em>x' = f(x,t)</em></span>. The only requirement for this concept + is that it should be callable with a specific parameter syntax (see below). + A System is typically implemented as a function or a functor. Systems fulfilling + this concept are required by all Runge-Kutta steppers as well as the Bulirsch-Stoer + steppers. However, symplectic and implicit steppers work with other system + concepts, see <a class="link" href="symplectic_system.html" title="Symplectic System">Symplectic + System</a> and <a class="link" href="implicit_system.html" title="Implicit System">Implicit + System</a>. + </p> +<h5> +<a name="boost_numeric_odeint.concepts.system.h1"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.system.notation"></a></span><a class="link" href="system.html#boost_numeric_odeint.concepts.system.notation">Notation</a> + </h5> +<div class="variablelist"> +<p class="title"><b></b></p> +<dl class="variablelist"> +<dt><span class="term"><code class="computeroutput"><span class="identifier">System</span></code></span></dt> +<dd><p> + A type that is a model of System + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">State</span></code></span></dt> +<dd><p> + A type representing the state <span class="emphasis"><em>x</em></span> of the ODE + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">Deriv</span></code></span></dt> +<dd><p> + A type representing the derivative <span class="emphasis"><em>x'</em></span> of the ODE + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">Time</span></code></span></dt> +<dd><p> + A type representing the time + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">sys</span></code></span></dt> +<dd><p> + An object of type <code class="computeroutput"><span class="identifier">System</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">x</span></code></span></dt> +<dd><p> + Object of type <code class="computeroutput"><span class="identifier">State</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">dxdt</span></code></span></dt> +<dd><p> + Object of type <code class="computeroutput"><span class="identifier">Deriv</span></code> + </p></dd> +<dt><span class="term"><code class="computeroutput"><span class="identifier">t</span></code></span></dt> +<dd><p> + Object of type <code class="computeroutput"><span class="identifier">Time</span></code> + </p></dd> +</dl> +</div> +<h5> +<a name="boost_numeric_odeint.concepts.system.h2"></a> + <span class="phrase"><a name="boost_numeric_odeint.concepts.system.valid_expressions"></a></span><a class="link" href="system.html#boost_numeric_odeint.concepts.system.valid_expressions">Valid expressions</a> + </h5> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody><tr> +<td> + <p> + Calculate <span class="emphasis"><em>dx/dt := f(x,t)</em></span> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">sys</span><span class="special">(</span> + <span class="identifier">x</span> <span class="special">,</span> + <span class="identifier">dxdt</span> <span class="special">,</span> + <span class="identifier">t</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">void</span></code> + </p> + </td> +<td> + <p> + Calculates f(x,t), the result is stored into dxdt + </p> + </td> +</tr></tbody> +</table></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../concepts.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="symplectic_system.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/getting_started.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/getting_started.html new file mode 100644 index 000000000..07ef3e0a5 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/getting_started.html @@ -0,0 +1,51 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Getting started</title> +<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="prev" href="../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="next" href="getting_started/overview.html" title="Overview"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../logo.jpg"></td> +<td align="center"><a href="../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../index.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="getting_started/overview.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h2 class="title" style="clear: both"> +<a name="boost_numeric_odeint.getting_started"></a><a class="link" href="getting_started.html" title="Getting started">Getting started</a> +</h2></div></div></div> +<div class="toc"><dl class="toc"> +<dt><span class="section"><a href="getting_started/overview.html">Overview</a></span></dt> +<dt><span class="section"><a href="getting_started/usage__compilation__headers.html">Usage, + Compilation, Headers</a></span></dt> +<dt><span class="section"><a href="getting_started/short_example.html">Short + Example</a></span></dt> +</dl></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../index.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="getting_started/overview.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/getting_started/overview.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/getting_started/overview.html new file mode 100644 index 000000000..d800ae3bb --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/getting_started/overview.html @@ -0,0 +1,1177 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Overview</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../getting_started.html" title="Getting started"> +<link rel="prev" href="../getting_started.html" title="Getting started"> +<link rel="next" href="usage__compilation__headers.html" title="Usage, Compilation, Headers"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../getting_started.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../getting_started.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="usage__compilation__headers.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.getting_started.overview"></a><a class="link" href="overview.html" title="Overview">Overview</a> +</h3></div></div></div> +<div class="caution"><table border="0" summary="Caution"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../../../../../doc/src/images/caution.png"></td> +<th align="left">Caution</th> +</tr> +<tr><td align="left" valign="top"><p> + Boost.Numeric.Odeint is not an official boost library! + </p></td></tr> +</table></div> +<p> + odeint is a library for solving initial value problems (IVP) of ordinary + differential equations. Mathematically, these problems are formulated as + follows: + </p> +<p> + <span class="emphasis"><em>x'(t) = f(x,t)</em></span>, <span class="emphasis"><em>x(0) = x0</em></span>. + </p> +<p> + <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>f</em></span> can be vectors and the + solution is some function <span class="emphasis"><em>x(t)</em></span> fulfilling both equations + above. In the following we will refer to <span class="emphasis"><em>x'(t)</em></span> also + <code class="computeroutput"><span class="identifier">dxdt</span></code> which is also our notation + for the derivative in the source code. + </p> +<p> + Ordinary differential equations occur nearly everywhere in natural sciences. + For example, the whole Newtonian mechanics are described by second order + differential equations. Be sure, you will find them in every discipline. + They also occur if partial differential equations (PDEs) are discretized. + Then, a system of coupled ordinary differential occurs, sometimes also referred + as lattices ODEs. + </p> +<p> + Numerical approximations for the solution <span class="emphasis"><em>x(t)</em></span> are calculated + iteratively. The easiest algorithm is the Euler scheme, where starting at + <span class="emphasis"><em>x(0)</em></span> one finds <span class="emphasis"><em>x(dt) = x(0) + dt f(x(0),0)</em></span>. + Now one can use <span class="emphasis"><em>x(dt)</em></span> and obtain <span class="emphasis"><em>x(2dt)</em></span> + in a similar way and so on. The Euler method is of order 1, that means the + error at each step is <span class="emphasis"><em>~ dt<sup>2</sup></em></span>. This is, of course, not + very satisfying, which is why the Euler method is rarely used for real life + problems and serves just as illustrative example. + </p> +<p> + The main focus of odeint is to provide numerical methods implemented in a + way where the algorithm is completely independent on the data structure used + to represent the state <span class="emphasis"><em>x</em></span>. In doing so, odeint is applicable + for a broad variety of situations and it can be used with many other libraries. + Besides the usual case where the state is defined as a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code> + or a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code>, we provide native support for the + following libraries: + </p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + <a href="http://www.boost.org/doc/libs/release/libs/numeric/ublas/index.html" target="_top">Boost.uBLAS</a> + </li> +<li class="listitem"> + <a href="http://code.google.com/p/thrust/" target="_top">Thrust</a>, making + odeint naturally running on CUDA devices + </li> +<li class="listitem"> + gsl_vector for compatibility with the many numerical function in the + GSL + </li> +<li class="listitem"> + <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a> + </li> +<li class="listitem"> + <a href="http://www.boost.org/doc/libs/release/libs/fusion/index.html" target="_top">Boost.Fusion</a> + (the state type can be a fusion vector) + </li> +<li class="listitem"> + <a href="http://www.boost.org/doc/libs/release/libs/units/index.html" target="_top">Boost.Units</a> + </li> +<li class="listitem"> + <a href="http://software.intel.com/en-us/articles/intel-mkl/" target="_top">Intel + Math Kernel Library</a> for maximum performance + </li> +<li class="listitem"> + <a href="https://github.com/ddemidov/vexcl" target="_top">VexCL</a> for OpenCL + </li> +<li class="listitem"> + <a href="http://www.boost.org/doc/libs/1_47_0/libs/graph/doc/table_of_contents.html" target="_top">Boost.Graph</a> + (still experimentally) + </li> +</ul></div> +<p> + In odeint, the following algorithms are implemented: + </p> +<div class="table"> +<a name="boost_numeric_odeint.getting_started.overview.stepper_algorithms"></a><p class="title"><b>Table 1.1. Stepper Algorithms</b></p> +<div class="table-contents"><table class="table" summary="Stepper Algorithms"> +<colgroup> +<col> +<col> +<col> +<col> +<col> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Algorithm + </p> + </th> +<th> + <p> + Class + </p> + </th> +<th> + <p> + Concept + </p> + </th> +<th> + <p> + System Concept + </p> + </th> +<th> + <p> + Order + </p> + </th> +<th> + <p> + Error Estimation + </p> + </th> +<th> + <p> + Dense Output + </p> + </th> +<th> + <p> + Internal state + </p> + </th> +<th> + <p> + Remarks + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Explicit Euler + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">euler</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/dense_output_stepper.html" title="Dense Output Stepper">Dense + Output Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + 1 + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Very simple, only for demonstrating purpose + </p> + </td> +</tr> +<tr> +<td> + <p> + Modified Midpoint + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">modified_midpoint</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + configurable (2) + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Used in Bulirsch-Stoer implementation + </p> + </td> +</tr> +<tr> +<td> + <p> + Runge-Kutta 4 + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">runge_kutta4</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + 4 + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + The classical Runge-Kutta scheme, good general scheme without error + control + </p> + </td> +</tr> +<tr> +<td> + <p> + Cash-Karp + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">runge_kutta_cash_karp54</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error + Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + 5 + </p> + </td> +<td> + <p> + Yes (4) + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Good general scheme with error estimation, to be used in controlled_error_stepper + </p> + </td> +</tr> +<tr> +<td> + <p> + Dormand-Prince 5 + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">runge_kutta_dopri5</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error + Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + 5 + </p> + </td> +<td> + <p> + Yes (4) + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Standard method with error control and dense output, to be used + in controlled_error_stepper and in dense_output_controlled_explicit_fsal. + </p> + </td> +</tr> +<tr> +<td> + <p> + Fehlberg 78 + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">runge_kutta_fehlberg78</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error + Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + 8 + </p> + </td> +<td> + <p> + Yes (7) + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Good high order method with error estimation, to be used in controlled_error_stepper. + </p> + </td> +</tr> +<tr> +<td> + <p> + Adams Bashforth + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">adams_bashforth</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + configurable + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Multistep method + </p> + </td> +</tr> +<tr> +<td> + <p> + Adams Moulton + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">adams_moulton</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + configurable + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Multistep method + </p> + </td> +</tr> +<tr> +<td> + <p> + Adams Bashforth Moulton + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">adams_bashforth_moulton</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + configurable + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Combined multistep method + </p> + </td> +</tr> +<tr> +<td> + <p> + Controlled Runge-Kutta + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">controlled_runge_kutta</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/controlled_stepper.html" title="Controlled Stepper">Controlled + Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + depends + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + depends + </p> + </td> +<td> + <p> + Error control for <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error + Stepper</a>. Requires an <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error + Stepper</a> from above. Order depends on the given ErrorStepper + </p> + </td> +</tr> +<tr> +<td> + <p> + Dense Output Runge-Kutta + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">dense_output_runge_kutta</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/dense_output_stepper.html" title="Dense Output Stepper">Dense + Output Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + depends + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Dense output for <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + and <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error + Stepper</a> from above if they provide dense output functionality + (like <code class="computeroutput"><span class="identifier">euler</span></code> and + <code class="computeroutput"><span class="identifier">runge_kutta_dopri5</span></code>). + Order depends on the given stepper. + </p> + </td> +</tr> +<tr> +<td> + <p> + Bulirsch-Stoer + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">bulirsch_stoer</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/controlled_stepper.html" title="Controlled Stepper">Controlled + Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + variable + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Stepper with step size and order control. Very good if high precision + is required. + </p> + </td> +</tr> +<tr> +<td> + <p> + Bulirsch-Stoer Dense Output + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">bulirsch_stoer_dense_out</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/dense_output_stepper.html" title="Dense Output Stepper">Dense + Output Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + variable + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Stepper with step size and order control as well as dense output. + Very good if high precision and dense output is required. + </p> + </td> +</tr> +<tr> +<td> + <p> + Implicit Euler + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">implicit_euler</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/implicit_system.html" title="Implicit System">Implicit + System</a> + </p> + </td> +<td> + <p> + 1 + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Basic implicit routine. Requires the Jacobian. Works only with + <a href="http://www.boost.org/doc/libs/release/libs/numeric/ublas/index.html" target="_top">Boost.uBLAS</a> + vectors as state types. + </p> + </td> +</tr> +<tr> +<td> + <p> + Rosenbrock 4 + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">rosenbrock4</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error + Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/implicit_system.html" title="Implicit System">Implicit + System</a> + </p> + </td> +<td> + <p> + 4 + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Good for stiff systems. Works only with <a href="http://www.boost.org/doc/libs/release/libs/numeric/ublas/index.html" target="_top">Boost.uBLAS</a> + vectors as state types. + </p> + </td> +</tr> +<tr> +<td> + <p> + Controlled Rosenbrock 4 + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">rosenbrock4_controller</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/controlled_stepper.html" title="Controlled Stepper">Controlled + Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/implicit_system.html" title="Implicit System">Implicit + System</a> + </p> + </td> +<td> + <p> + 4 + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Rosenbrock 4 with error control. Works only with <a href="http://www.boost.org/doc/libs/release/libs/numeric/ublas/index.html" target="_top">Boost.uBLAS</a> + vectors as state types. + </p> + </td> +</tr> +<tr> +<td> + <p> + Dense Output Rosenbrock 4 + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">rosenbrock4_dense_output</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/dense_output_stepper.html" title="Dense Output Stepper">Dense + Output Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/implicit_system.html" title="Implicit System">Implicit + System</a> + </p> + </td> +<td> + <p> + 4 + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Controlled Rosenbrock 4 with dense output. Works only with <a href="http://www.boost.org/doc/libs/release/libs/numeric/ublas/index.html" target="_top">Boost.uBLAS</a> + vectors as state types. + </p> + </td> +</tr> +<tr> +<td> + <p> + Symplectic Euler + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">symplectic_euler</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/symplectic_system.html" title="Symplectic System">Symplectic + System</a> <a class="link" href="../concepts/simple_symplectic_system.html" title="Simple Symplectic System">Simple + Symplectic System</a> + </p> + </td> +<td> + <p> + 1 + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Basic symplectic solver for separable Hamiltonian system + </p> + </td> +</tr> +<tr> +<td> + <p> + Symplectic RKN McLachlan + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">symplectic_rkn_sb3a_mclachlan</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/symplectic_system.html" title="Symplectic System">Symplectic + System</a> <a class="link" href="../concepts/simple_symplectic_system.html" title="Simple Symplectic System">Simple + Symplectic System</a> + </p> + </td> +<td> + <p> + 4 + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Symplectic solver for separable Hamiltonian system with 6 stages + and order 4. + </p> + </td> +</tr> +<tr> +<td> + <p> + Symplectic RKN McLachlan + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">symplectic_rkn_sb3a_m4_mclachlan</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/symplectic_system.html" title="Symplectic System">Symplectic + System</a> <a class="link" href="../concepts/simple_symplectic_system.html" title="Simple Symplectic System">Simple + Symplectic System</a> + </p> + </td> +<td> + <p> + 4 + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Symplectic solver with 5 stages and order 4, can be used with arbitrary + precision types. + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<br class="table-break"> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../getting_started.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../getting_started.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="usage__compilation__headers.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/getting_started/short_example.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/getting_started/short_example.html new file mode 100644 index 000000000..2008762ea --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/getting_started/short_example.html @@ -0,0 +1,208 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Short Example</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../getting_started.html" title="Getting started"> +<link rel="prev" href="usage__compilation__headers.html" title="Usage, Compilation, Headers"> +<link rel="next" href="../tutorial.html" title="Tutorial"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="usage__compilation__headers.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../getting_started.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../tutorial.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.getting_started.short_example"></a><a class="link" href="short_example.html" title="Short Example">Short + Example</a> +</h3></div></div></div> +<p> + Imaging, you want to numerically integrate a harmonic oscillator with friction. + The equations of motion are given by <span class="emphasis"><em>x'' = -x + γ x'</em></span>. + Odeint only deals with first order ODEs that have no higher derivatives than + x' involved. However, any higher order ODE can be transformed to a system + of first order ODEs by introducing the new variables <span class="emphasis"><em>q=x</em></span> + and <span class="emphasis"><em>p=x'</em></span> such that <span class="emphasis"><em>w=(q,p)</em></span>. To + apply numerical integration one first has to design the right hand side of + the equation <span class="emphasis"><em>w' = f(w) = (p,-q+γ p)</em></span>: + </p> +<p> +</p> +<pre class="programlisting"><span class="comment">/* The type of container used to hold the state vector */</span> +<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span> + +<span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">gam</span> <span class="special">=</span> <span class="number">0.15</span><span class="special">;</span> + +<span class="comment">/* The rhs of x' = f(x) */</span> +<span class="keyword">void</span> <span class="identifier">harmonic_oscillator</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="comment">/* t */</span> <span class="special">)</span> +<span class="special">{</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">gam</span><span class="special">*</span><span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span> +<span class="special">}</span> +</pre> +<p> + </p> +<p> + Here we chose <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span></code> + as the state type, but others are also possible, for example <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span><span class="number">2</span><span class="special">></span></code>. odeint is designed in such a way that + you can easily use your own state types. Next, the ODE is defined which is + in this case a simple function calculating <span class="emphasis"><em>f(x)</em></span>. The + parameter signature of this function is crucial: the integration methods + will always call them in the form <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> + <span class="identifier">dxdt</span><span class="special">,</span> + <span class="identifier">t</span><span class="special">)</span></code> + (there are exceptions for some special routines). So, even if there is no + explicit time dependence, one has to define <code class="computeroutput"><span class="identifier">t</span></code> + as a function parameter. + </p> +<p> + Now, we have to define the initial state from which the integration should + start: + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">state_type</span> <span class="identifier">x</span><span class="special">(</span><span class="number">2</span><span class="special">);</span> +<span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="number">1.0</span><span class="special">;</span> <span class="comment">// start at x=1.0, p=0.0</span> +<span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> +</pre> +<p> + </p> +<p> + For the integration itself we'll use the <code class="computeroutput"><span class="identifier">integrate</span></code> + function, which is a convenient way to get quick results. It is based on + the error-controlled <code class="computeroutput"><span class="identifier">runge_kutta54_cash_karp</span></code> + stepper (5th order) and uses adaptive step-size. + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">size_t</span> <span class="identifier">steps</span> <span class="special">=</span> <span class="identifier">integrate</span><span class="special">(</span> <span class="identifier">harmonic_oscillator</span> <span class="special">,</span> + <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.1</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + The integrate function expects as parameters the rhs of the ode as defined + above, the initial state <code class="computeroutput"><span class="identifier">x</span></code>, + the start-and end-time of the integration as well as the initial time step=size. + Note, that <code class="computeroutput"><span class="identifier">integrate</span></code> uses + an adaptive step-size during the integration steps so the time points will + not be equally spaced. The integration returns the number of steps that were + applied and updates x which is set to the approximate solution of the ODE + at the end of integration. + </p> +<p> + It is also possible to represent the ode system as a class. The rhs must + then be implemented as a functor - a class with an overloaded function call + operator: + </p> +<p> +</p> +<pre class="programlisting"><span class="comment">/* The rhs of x' = f(x) defined as a class */</span> +<span class="keyword">class</span> <span class="identifier">harm_osc</span> <span class="special">{</span> + + <span class="keyword">double</span> <span class="identifier">m_gam</span><span class="special">;</span> + +<span class="keyword">public</span><span class="special">:</span> + <span class="identifier">harm_osc</span><span class="special">(</span> <span class="keyword">double</span> <span class="identifier">gam</span> <span class="special">)</span> <span class="special">:</span> <span class="identifier">m_gam</span><span class="special">(</span><span class="identifier">gam</span><span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()</span> <span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="comment">/* t */</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">m_gam</span><span class="special">*</span><span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + which can be used via + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">harm_osc</span> <span class="identifier">ho</span><span class="special">(</span><span class="number">0.15</span><span class="special">);</span> +<span class="identifier">steps</span> <span class="special">=</span> <span class="identifier">integrate</span><span class="special">(</span> <span class="identifier">ho</span> <span class="special">,</span> + <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.1</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + In order to observe the solution during the integration steps all you have + to do is to provide a reasonable observer. An example is + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">push_back_state_and_time</span> +<span class="special">{</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">>&</span> <span class="identifier">m_states</span><span class="special">;</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">>&</span> <span class="identifier">m_times</span><span class="special">;</span> + + <span class="identifier">push_back_state_and_time</span><span class="special">(</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <span class="special">&</span><span class="identifier">states</span> <span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="special">&</span><span class="identifier">times</span> <span class="special">)</span> + <span class="special">:</span> <span class="identifier">m_states</span><span class="special">(</span> <span class="identifier">states</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_times</span><span class="special">(</span> <span class="identifier">times</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">m_states</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">);</span> + <span class="identifier">m_times</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span> <span class="identifier">t</span> <span class="special">);</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + which stores the intermediate steps in a container. Note, the argument structure + of the ()-operator: odeint calls the observer exactly in this way, providing + the current state and time. Now, you only have to pass this container to + the integration function: + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">state_type</span><span class="special">></span> <span class="identifier">x_vec</span><span class="special">;</span> +<span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">times</span><span class="special">;</span> + +<span class="identifier">steps</span> <span class="special">=</span> <span class="identifier">integrate</span><span class="special">(</span> <span class="identifier">harmonic_oscillator</span> <span class="special">,</span> + <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.1</span> <span class="special">,</span> + <span class="identifier">push_back_state_and_time</span><span class="special">(</span> <span class="identifier">x_vec</span> <span class="special">,</span> <span class="identifier">times</span> <span class="special">)</span> <span class="special">);</span> + +<span class="comment">/* output */</span> +<span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> <span class="identifier">i</span><span class="special"><=</span><span class="identifier">steps</span><span class="special">;</span> <span class="identifier">i</span><span class="special">++</span> <span class="special">)</span> +<span class="special">{</span> + <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">times</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special"><<</span> <span class="char">'\t'</span> <span class="special"><<</span> <span class="identifier">x_vec</span><span class="special">[</span><span class="identifier">i</span><span class="special">][</span><span class="number">0</span><span class="special">]</span> <span class="special"><<</span> <span class="char">'\t'</span> <span class="special"><<</span> <span class="identifier">x_vec</span><span class="special">[</span><span class="identifier">i</span><span class="special">][</span><span class="number">1</span><span class="special">]</span> <span class="special"><<</span> <span class="char">'\n'</span><span class="special">;</span> +<span class="special">}</span> +</pre> +<p> + </p> +<p> + That is all. You can use functional libraries like <a href="http://www.boost.org/doc/libs/release/doc/html/lambda.html" target="_top">Boost.Lambda</a> + or <a href="http://www.boost.org/doc/libs/1_46_1/libs/spirit/phoenix/doc/html/index.html" target="_top">Boost.Phoenix</a> + to ease the creation of observer functions. + </p> +<p> + The full cpp file for this example can be found here: <a href="../../../../../../../libs/numeric/odeint/examples/harmonic_oscillator.cpp" target="_top">harmonic_oscillator.cpp</a> + </p> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="usage__compilation__headers.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../getting_started.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../tutorial.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/getting_started/usage__compilation__headers.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/getting_started/usage__compilation__headers.html new file mode 100644 index 000000000..11fc4434e --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/getting_started/usage__compilation__headers.html @@ -0,0 +1,96 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Usage, Compilation, Headers</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../getting_started.html" title="Getting started"> +<link rel="prev" href="overview.html" title="Overview"> +<link rel="next" href="short_example.html" title="Short Example"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="overview.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../getting_started.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="short_example.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.getting_started.usage__compilation__headers"></a><a class="link" href="usage__compilation__headers.html" title="Usage, Compilation, Headers">Usage, + Compilation, Headers</a> +</h3></div></div></div> +<p> + odeint is a header-only library, no linking against pre-compiled code is + required. It can be included by + </p> +<p> +</p> +<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">odeint</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> +</pre> +<p> + </p> +<p> + which includes all headers of the library. All functions and classes from + odeint live in the namespace + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">;</span> +</pre> +<p> + </p> +<p> + It is also possible to include only parts of the library. This is the recommended + way since it saves a lot of compilation time. + </p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">odeint</span><span class="special">/</span><span class="identifier">stepper</span><span class="special">/</span><span class="identifier">XYZ</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> + - the include path for all steppers, XYZ is a placeholder for a stepper. + </li> +<li class="listitem"> + <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">odeint</span><span class="special">/</span><span class="identifier">algebra</span><span class="special">/</span><span class="identifier">XYZ</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> + - all algebras. + </li> +<li class="listitem"> + <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">odeint</span><span class="special">/</span><span class="identifier">util</span><span class="special">/</span><span class="identifier">XYZ</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> + - the utility functions like <code class="computeroutput"><span class="identifier">is_resizeable</span></code>, + <code class="computeroutput"><span class="identifier">same_size</span></code>, or <code class="computeroutput"><span class="identifier">resize</span></code>. + </li> +<li class="listitem"> + <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">odeint</span><span class="special">/</span><span class="identifier">integrate</span><span class="special">/</span><span class="identifier">XYZ</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> + - the integrate routines. + </li> +<li class="listitem"> + <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">odeint</span><span class="special">/</span><span class="identifier">iterator</span><span class="special">/</span><span class="identifier">XYZ</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> + - the range and iterator functions. + </li> +<li class="listitem"> + <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">odeint</span><span class="special">/</span><span class="identifier">external</span><span class="special">/</span><span class="identifier">XYZ</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> + - any binders to external libraries. + </li> +</ul></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="overview.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../getting_started.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="short_example.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/literature.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/literature.html new file mode 100644 index 000000000..07f0bcbb9 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/literature.html @@ -0,0 +1,103 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Literature</title> +<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="prev" href="concepts/state_wrapper.html" title="State Wrapper"> +<link rel="next" href="acknowledgments.html" title="Acknowledgments"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../logo.jpg"></td> +<td align="center"><a href="../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="concepts/state_wrapper.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgments.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h2 class="title" style="clear: both"> +<a name="boost_numeric_odeint.literature"></a><a class="link" href="literature.html" title="Literature">Literature</a> +</h2></div></div></div> +<p> + <span class="bold"><strong>General information about numerical integration of ordinary + differential equations:</strong></span> + </p> +<p> + <a name="numerical_recipies"></a>[1] Press William H et al., Numerical Recipes + 3rd Edition: The Art of Scientific Computing, 3rd ed. (Cambridge University + Press, 2007). + </p> +<p> + <a name="hairer_solving_odes_1"></a>[2] Ernst Hairer, Syvert P. Nørsett, and + Gerhard Wanner, Solving Ordinary Differential Equations I: Nonstiff Problems, + 2nd ed. (Springer, Berlin, 2009). + </p> +<p> + <a name="hairer_solving_odes_2"></a>[3] Ernst Hairer and Gerhard Wanner, Solving + Ordinary Differential Equations II: Stiff and Differential-Algebraic Problems, + 2nd ed. (Springer, Berlin, 2010). + </p> +<p> + <span class="bold"><strong>Symplectic integration of numerical integration:</strong></span> + </p> +<p> + <a name="hairer_geometrical_numeric_integration"></a>[4] Ernst Hairer, Gerhard + Wanner, and Christian Lubich, Geometric Numerical Integration: Structure-Preserving + Algorithms for Ordinary Differential Equations, 2nd ed. (Springer-Verlag Gmbh, + 2006). + </p> +<p> + <a name="leimkuhler_reich_simulating_hamiltonian_dynamics"></a>[5] Leimkuhler + Benedict and Reich Sebastian, Simulating Hamiltonian Dynamics (Cambridge University + Press, 2005). + </p> +<p> + <span class="bold"><strong>Special symplectic methods:</strong></span> + </p> +<p> + <a name="symplectic_yoshida_symplectic_integrators"></a>[6] Haruo Yoshida, + “Construction of higher order symplectic integrators,” Physics Letters + A 150, no. 5 (November 12, 1990): 262-268. + </p> +<p> + <a name="symplectic_mylachlan_symmetric_composition_mehtods"></a>[7] Robert + I. McLachlan, “On the numerical integration of ordinary differential equations + by symmetric composition methods,” SIAM J. Sci. Comput. 16, no. 1 (1995): + 151-168. + </p> +<p> + <span class="bold"><strong>Special systems:</strong></span> + </p> +<p> + <a name="fpu_scholarpedia"></a>[8] <a href="http://www.scholarpedia.org/article/Fermi-Pasta-Ulam_nonlinear_lattice_oscillations" target="_top">Fermi-Pasta-Ulam + nonlinear lattice oscillations</a> + </p> +<p> + <a name="synchronization_pikovsky_rosenblum"></a>[9] Arkady Pikovsky, Michael + Rosemblum, and Jürgen Kurths, Synchronization: A Universal Concept in Nonlinear + Sciences. (Cambridge University Press, 2001). + </p> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="concepts/state_wrapper.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgments.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail.html new file mode 100644 index 000000000..0f389209d --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail.html @@ -0,0 +1,59 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>odeint in detail</title> +<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="prev" href="tutorial/all_examples.html" title="All examples"> +<link rel="next" href="odeint_in_detail/steppers.html" title="Steppers"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../logo.jpg"></td> +<td align="center"><a href="../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="tutorial/all_examples.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="odeint_in_detail/steppers.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h2 class="title" style="clear: both"> +<a name="boost_numeric_odeint.odeint_in_detail"></a><a class="link" href="odeint_in_detail.html" title="odeint in detail">odeint in detail</a> +</h2></div></div></div> +<div class="toc"><dl class="toc"> +<dt><span class="section"><a href="odeint_in_detail/steppers.html">Steppers</a></span></dt> +<dt><span class="section"><a href="odeint_in_detail/generation_functions.html">Generation + functions</a></span></dt> +<dt><span class="section"><a href="odeint_in_detail/integrate_functions.html">Integrate + functions</a></span></dt> +<dt><span class="section"><a href="odeint_in_detail/state_types__algebras_and_operations.html">State + types, algebras and operations</a></span></dt> +<dt><span class="section"><a href="odeint_in_detail/using_boost__ref.html">Using + boost::ref</a></span></dt> +<dt><span class="section"><a href="odeint_in_detail/using_boost__range.html">Using + boost::range</a></span></dt> +<dt><span class="section"><a href="odeint_in_detail/binding_member_functions.html">Binding + member functions</a></span></dt> +</dl></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="tutorial/all_examples.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="odeint_in_detail/steppers.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/binding_member_functions.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/binding_member_functions.html new file mode 100644 index 000000000..15e085983 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/binding_member_functions.html @@ -0,0 +1,131 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Binding member functions</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../odeint_in_detail.html" title="odeint in detail"> +<link rel="prev" href="using_boost__range.html" title="Using boost::range"> +<link rel="next" href="../concepts.html" title="Concepts"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="using_boost__range.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../concepts.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.binding_member_functions"></a><a class="link" href="binding_member_functions.html" title="Binding member functions">Binding + member functions</a> +</h3></div></div></div> +<div class="toc"><dl class="toc"><dt><span class="section"><a href="binding_member_functions.html#boost_numeric_odeint.odeint_in_detail.binding_member_functions.binding_member_functions_in_c__11">Binding + member functions in C++11</a></span></dt></dl></div> +<p> + Binding member functions to a function objects suitable for odeint system + function is not easy, at least in C++03. The usual way of using __boost_bind + does not work because of the forwarding problem. odeint provides two <code class="computeroutput"><span class="identifier">do_step</span></code> method which only differ in the + const specifiers of the arguments and __boost_bind binders only provide the + specializations up to two argument which is not enough for odeint. + </p> +<p> + But one can easily implement the according binders themself: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Obj</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Mem</span> <span class="special">></span> +<span class="keyword">class</span> <span class="identifier">ode_wrapper</span> +<span class="special">{</span> + <span class="identifier">Obj</span> <span class="identifier">m_obj</span><span class="special">;</span> + <span class="identifier">Mem</span> <span class="identifier">m_mem</span><span class="special">;</span> + +<span class="keyword">public</span><span class="special">:</span> + + <span class="identifier">ode_wrapper</span><span class="special">(</span> <span class="identifier">Obj</span> <span class="identifier">obj</span> <span class="special">,</span> <span class="identifier">Mem</span> <span class="identifier">mem</span> <span class="special">)</span> <span class="special">:</span> <span class="identifier">m_obj</span><span class="special">(</span> <span class="identifier">obj</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_mem</span><span class="special">(</span> <span class="identifier">mem</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">State</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Deriv</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Time</span> <span class="special">></span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">Deriv</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="identifier">Time</span> <span class="identifier">t</span> <span class="special">)</span> + <span class="special">{</span> + <span class="special">(</span><span class="identifier">m_obj</span><span class="special">.*</span><span class="identifier">m_mem</span><span class="special">)(</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">dxdt</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">);</span> + <span class="special">}</span> +<span class="special">};</span> + +<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Obj</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Mem</span> <span class="special">></span> +<span class="identifier">ode_wrapper</span><span class="special"><</span> <span class="identifier">Obj</span> <span class="special">,</span> <span class="identifier">Mem</span> <span class="special">></span> <span class="identifier">make_ode_wrapper</span><span class="special">(</span> <span class="identifier">Obj</span> <span class="identifier">obj</span> <span class="special">,</span> <span class="identifier">Mem</span> <span class="identifier">mem</span> <span class="special">)</span> +<span class="special">{</span> + <span class="keyword">return</span> <span class="identifier">ode_wrapper</span><span class="special"><</span> <span class="identifier">Obj</span> <span class="special">,</span> <span class="identifier">Mem</span> <span class="special">>(</span> <span class="identifier">obj</span> <span class="special">,</span> <span class="identifier">mem</span> <span class="special">);</span> +<span class="special">}</span> +</pre> +<p> + </p> +<p> + One can use this binder as follows + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">lorenz</span> +<span class="special">{</span> + <span class="keyword">void</span> <span class="identifier">ode</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="number">10.0</span> <span class="special">*</span> <span class="special">(</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">);</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="number">28.0</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">2</span><span class="special">];</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">2</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="number">8.0</span> <span class="special">/</span> <span class="number">3.0</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">2</span><span class="special">]</span> <span class="special">+</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span> + <span class="special">}</span> +<span class="special">};</span> + +<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span> <span class="keyword">int</span> <span class="identifier">argc</span> <span class="special">,</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">argv</span><span class="special">[]</span> <span class="special">)</span> +<span class="special">{</span> + <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">;</span> + <span class="identifier">state_type</span> <span class="identifier">x</span> <span class="special">=</span> <span class="special">{{</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">}};</span> + <span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">runge_kutta4</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">>()</span> <span class="special">,</span> <span class="identifier">make_ode_wrapper</span><span class="special">(</span> <span class="identifier">lorenz</span><span class="special">()</span> <span class="special">,</span> <span class="special">&</span><span class="identifier">lorenz</span><span class="special">::</span><span class="identifier">ode</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.01</span> <span class="special">);</span> + <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span> +<span class="special">}</span> +</pre> +<p> + </p> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.binding_member_functions.binding_member_functions_in_c__11"></a><a class="link" href="binding_member_functions.html#boost_numeric_odeint.odeint_in_detail.binding_member_functions.binding_member_functions_in_c__11" title="Binding member functions in C++11">Binding + member functions in C++11</a> +</h4></div></div></div> +<p> + In C++11 one can use <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bind</span></code> + and one does not need to implement the bind themself: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">pl</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">placeholders</span><span class="special">;</span> + +<span class="identifier">state_type</span> <span class="identifier">x</span> <span class="special">=</span> <span class="special">{{</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">}};</span> +<span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">runge_kutta4</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">>()</span> <span class="special">,</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(</span> <span class="special">&</span><span class="identifier">lorenz</span><span class="special">::</span><span class="identifier">ode</span> <span class="special">,</span> <span class="identifier">lorenz</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">pl</span><span class="special">::</span><span class="identifier">_1</span> <span class="special">,</span> <span class="identifier">pl</span><span class="special">::</span><span class="identifier">_2</span> <span class="special">,</span> <span class="identifier">pl</span><span class="special">::</span><span class="identifier">_3</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.01</span> <span class="special">);</span> +</pre> +<p> + </p> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="using_boost__range.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../concepts.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/generation_functions.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/generation_functions.html new file mode 100644 index 000000000..86dd3ffcb --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/generation_functions.html @@ -0,0 +1,310 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Generation functions</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../odeint_in_detail.html" title="odeint in detail"> +<link rel="prev" href="steppers.html" title="Steppers"> +<link rel="next" href="integrate_functions.html" title="Integrate functions"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="steppers.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="integrate_functions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.generation_functions"></a><a class="link" href="generation_functions.html" title="Generation functions">Generation + functions</a> +</h3></div></div></div> +<p> + In the <a class="link" href="../tutorial.html" title="Tutorial">Tutorial</a> we have + learned how we can use the generation functions <code class="computeroutput"><span class="identifier">make_controlled</span></code> + and <code class="computeroutput"><span class="identifier">make_dense_output</span></code> to + create controlled and dense output stepper from a simple stepper or an error + stepper. The syntax of these two functions is very simple: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">auto</span> <span class="identifier">stepper1</span> <span class="special">=</span> <span class="identifier">make_controlled</span><span class="special">(</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="identifier">stepper_type</span><span class="special">()</span> <span class="special">);</span> +<span class="keyword">auto</span> <span class="identifier">stepper2</span> <span class="special">=</span> <span class="identifier">make_dense_output</span><span class="special">(</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="identifier">stepper_type</span><span class="special">()</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + The first two parameters are the absolute and the relative error tolerances + and the third parameter is the stepper. In C++03 you can infer the type from + the <code class="computeroutput"><span class="identifier">result_of</span></code> mechanism: + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">make_controlled</span><span class="special"><</span> <span class="identifier">stepper_type</span> <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">stepper3</span> <span class="special">=</span> <span class="identifier">make_controlled</span><span class="special">(</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="identifier">stepper_type</span><span class="special">()</span> <span class="special">);</span> +<span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">make_dense_output</span><span class="special"><</span> <span class="identifier">stepper_type</span> <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">stepper4</span> <span class="special">=</span> <span class="identifier">make_dense_output</span><span class="special">(</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="identifier">stepper_type</span><span class="special">()</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + To use your own steppers with the <code class="computeroutput"><span class="identifier">make_controlled</span></code> + or <code class="computeroutput"><span class="identifier">make_dense_output</span></code> you + need to specialize two class templates. Suppose your steppers are called + <code class="computeroutput"><span class="identifier">custom_stepper</span></code>, <code class="computeroutput"><span class="identifier">custom_controller</span></code> and <code class="computeroutput"><span class="identifier">custom_dense_output</span></code>. + Then, the first class you need to specialize is <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">get_controller</span></code>, + a meta function returning the type of the controller: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + +<span class="keyword">template</span><span class="special"><></span> +<span class="keyword">struct</span> <span class="identifier">get_controller</span><span class="special"><</span> <span class="identifier">custom_stepper</span> <span class="special">></span> +<span class="special">{</span> + <span class="keyword">typedef</span> <span class="identifier">custom_controller</span> <span class="identifier">type</span><span class="special">;</span> +<span class="special">};</span> + +<span class="special">}</span> <span class="special">}</span> <span class="special">}</span> +</pre> +<p> + </p> +<p> + The second one is a factory class <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">controller_factory</span></code> + which constructs the controller from the tolerances and the stepper. In our + dummy implementation this class is + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + +<span class="keyword">template</span><span class="special"><></span> +<span class="keyword">struct</span> <span class="identifier">controller_factory</span><span class="special"><</span> <span class="identifier">custom_stepper</span> <span class="special">,</span> <span class="identifier">custom_controller</span> <span class="special">></span> +<span class="special">{</span> + <span class="identifier">custom_controller</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">double</span> <span class="identifier">abs_tol</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">rel_tol</span> <span class="special">,</span> <span class="keyword">const</span> <span class="identifier">custom_stepper</span> <span class="special">&</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="keyword">return</span> <span class="identifier">custom_controller</span><span class="special">();</span> + <span class="special">}</span> +<span class="special">};</span> + +<span class="special">}</span> <span class="special">}</span> <span class="special">}</span> +</pre> +<p> + </p> +<p> + This is all to use the <code class="computeroutput"><span class="identifier">make_controlled</span></code> + mechanism. Now you can use your controller via + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">auto</span> <span class="identifier">stepper5</span> <span class="special">=</span> <span class="identifier">make_controlled</span><span class="special">(</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="identifier">custom_stepper</span><span class="special">()</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + For the dense_output_stepper everything works similar. Here you have to specialize + <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">get_dense_output</span></code> and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">dense_output_factory</span></code>. + These two classes have the same syntax as their relatives <code class="computeroutput"><span class="identifier">get_controller</span></code> + and <code class="computeroutput"><span class="identifier">controller_factory</span></code>. + </p> +<p> + All controllers and dense-output steppers in odeint can be used with these + mechanisms. In the table below you will find, which steppers is constructed + from <code class="computeroutput"><span class="identifier">make_controlled</span></code> or + <code class="computeroutput"><span class="identifier">make_dense_output</span></code> if applied + on a stepper from odeint: + </p> +<div class="table"> +<a name="boost_numeric_odeint.odeint_in_detail.generation_functions.generation_functions_make_controlled__abs_error___rel_error___stepper__"></a><p class="title"><b>Table 1.7. Generation functions make_controlled( abs_error , rel_error , stepper + )</b></p> +<div class="table-contents"><table class="table" summary="Generation functions make_controlled( abs_error , rel_error , stepper + )"> +<colgroup> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Stepper + </p> + </th> +<th> + <p> + Result of make_controlled + </p> + </th> +<th> + <p> + Remarks + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">runge_kutta_cash_karp54</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">controlled_runge_kutta</span><span class="special"><</span> <span class="identifier">runge_kutta_cash_karp54</span> + <span class="special">,</span> <span class="identifier">default_error_checker</span><span class="special"><...></span> <span class="special">></span></code> + </p> + </td> +<td> + <p> + <span class="emphasis"><em>a<sub>x</sub>=1</em></span>, <span class="emphasis"><em>a<sub>dxdt</sub>=1</em></span> + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">runge_kutta_fehlberg78</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">controlled_runge_kutta</span><span class="special"><</span> <span class="identifier">runge_kutta_fehlberg78</span> + <span class="special">,</span> <span class="identifier">default_error_checker</span><span class="special"><...></span> <span class="special">></span></code> + </p> + </td> +<td> + <p> + <span class="emphasis"><em>a<sub>x</sub>=1</em></span>, <span class="emphasis"><em>a<sub>dxdt</sub>=1</em></span> + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">runge_kutta_dopri5</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">controlled_runge_kutta</span><span class="special"><</span> <span class="identifier">runge_kutta_dopri5</span> + <span class="special">,</span> <span class="identifier">default_error_checker</span><span class="special"><...></span> <span class="special">></span></code> + </p> + </td> +<td> + <p> + <span class="emphasis"><em>a <sub>x</sub>=1</em></span>, <span class="emphasis"><em>a<sub>dxdt</sub>=1</em></span> + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">rosenbrock4</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">rosenbrock4_controlled</span><span class="special"><</span> <span class="identifier">rosenbrock4</span> + <span class="special">></span></code> + </p> + </td> +<td> + <p> + - + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<br class="table-break"><div class="table"> +<a name="boost_numeric_odeint.odeint_in_detail.generation_functions.generation_functions_make_dense_output__abs_error___rel_error___stepper__"></a><p class="title"><b>Table 1.8. Generation functions make_dense_output( abs_error , rel_error , stepper + )</b></p> +<div class="table-contents"><table class="table" summary="Generation functions make_dense_output( abs_error , rel_error , stepper + )"> +<colgroup> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Stepper + </p> + </th> +<th> + <p> + Result of make_dense_output + </p> + </th> +<th> + <p> + Remarks + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">runge_kutta_dopri5</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">dense_output_runge_kutta</span><span class="special"><</span> <span class="identifier">controlled_runge_kutta</span><span class="special"><</span> <span class="identifier">runge_kutta_dopri5</span> + <span class="special">,</span> <span class="identifier">default_error_checker</span><span class="special"><...></span> <span class="special">></span> + <span class="special">></span></code> + </p> + </td> +<td> + <p> + <span class="emphasis"><em>a <sub>x</sub>=1</em></span>, <span class="emphasis"><em>a<sub>dxdt</sub>=1</em></span> + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">rosenbrock4</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">rosenbrock4_dense_output</span><span class="special"><</span> <span class="identifier">rosenbrock4_controller</span><span class="special"><</span> <span class="identifier">rosenbrock4</span> + <span class="special">></span> <span class="special">></span></code> + </p> + </td> +<td> + <p> + - + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<br class="table-break"> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="steppers.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="integrate_functions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/integrate_functions.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/integrate_functions.html new file mode 100644 index 000000000..cbb70b632 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/integrate_functions.html @@ -0,0 +1,349 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Integrate functions</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../odeint_in_detail.html" title="odeint in detail"> +<link rel="prev" href="generation_functions.html" title="Generation functions"> +<link rel="next" href="state_types__algebras_and_operations.html" title="State types, algebras and operations"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="generation_functions.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="state_types__algebras_and_operations.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.integrate_functions"></a><a class="link" href="integrate_functions.html" title="Integrate functions">Integrate + functions</a> +</h3></div></div></div> +<p> + Integrate functions perform the time evolution of a given ODE from some starting + time <span class="emphasis"><em>t<sub>0</sub></em></span> to a given end time <span class="emphasis"><em>t<sub>1</sub></em></span> + and starting at state <span class="emphasis"><em>x<sub>0</sub></em></span> by subsequent calls of a given + stepper's <code class="computeroutput"><span class="identifier">do_step</span></code> function. + Additionally, the user can provide an __observer to analyze the state during + time evolution. There are five different integrate functions which have different + strategies on when to call the observer function during integration. All + of the integrate functions except <code class="computeroutput"><span class="identifier">integrate_n_steps</span></code> + can be called with any stepper following one of the stepper concepts: <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> , <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error + Stepper</a> , <a class="link" href="../concepts/controlled_stepper.html" title="Controlled Stepper">Controlled + Stepper</a> , <a class="link" href="../concepts/dense_output_stepper.html" title="Dense Output Stepper">Dense + Output Stepper</a>. Depending on the abilities of the stepper, the integrate + functions make use of step-size control or dense output. + </p> +<h5> +<a name="boost_numeric_odeint.odeint_in_detail.integrate_functions.h0"></a> + <span class="phrase"><a name="boost_numeric_odeint.odeint_in_detail.integrate_functions.equidistant_observer_calls"></a></span><a class="link" href="integrate_functions.html#boost_numeric_odeint.odeint_in_detail.integrate_functions.equidistant_observer_calls">Equidistant + observer calls</a> + </h5> +<p> + If observer calls at equidistant time intervals <span class="emphasis"><em>dt</em></span> are + needed, the <code class="computeroutput"><span class="identifier">integrate_const</span></code> + or <code class="computeroutput"><span class="identifier">integrate_n_steps</span></code> function + should be used. We start with explaining <code class="computeroutput"><span class="identifier">integrate_const</span></code>: + </p> +<p> + <code class="computeroutput"><span class="identifier">integrate_const</span><span class="special">(</span> + <span class="identifier">stepper</span> <span class="special">,</span> + <span class="identifier">system</span> <span class="special">,</span> + <span class="identifier">x0</span> <span class="special">,</span> + <span class="identifier">t0</span> <span class="special">,</span> + <span class="identifier">t1</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">)</span></code> + </p> +<p> + <code class="computeroutput"><span class="identifier">integrate_const</span><span class="special">(</span> + <span class="identifier">stepper</span> <span class="special">,</span> + <span class="identifier">system</span> <span class="special">,</span> + <span class="identifier">x0</span> <span class="special">,</span> + <span class="identifier">t0</span> <span class="special">,</span> + <span class="identifier">t1</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">,</span> + <span class="identifier">observer</span> <span class="special">)</span></code> + </p> +<p> + These integrate the ODE given by <code class="computeroutput"><span class="identifier">system</span></code> + with subsequent steps from <code class="computeroutput"><span class="identifier">stepper</span></code>. + Integration start at <code class="computeroutput"><span class="identifier">t0</span></code> and + <code class="computeroutput"><span class="identifier">x0</span></code> and ends at some <span class="emphasis"><em>t' + = t<sub>0</sub> + n dt</em></span> with <span class="emphasis"><em>n</em></span> such that <span class="emphasis"><em>t<sub>1</sub> - + dt < t' <= t<sub>1</sub></em></span>. <code class="computeroutput"><span class="identifier">x0</span></code> + is changed to the approximative solution <span class="emphasis"><em>x(t')</em></span> at the + end of integration. If provided, the <code class="computeroutput"><span class="identifier">observer</span></code> + is invoked at times <span class="emphasis"><em>t<sub>0</sub></em></span>, <span class="emphasis"><em>t<sub>0</sub> + dt</em></span>, + <span class="emphasis"><em>t<sub>0</sub> + 2dt</em></span>, ... ,<span class="emphasis"><em>t'</em></span>. <code class="computeroutput"><span class="identifier">integrate_const</span></code> returns the number of steps + performed during the integration. Note that if you are using a simple <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> or <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error + Stepper</a> and want to make exactly <code class="computeroutput"><span class="identifier">n</span></code> + steps you should prefer the <code class="computeroutput"><span class="identifier">integrate_n_steps</span></code> + function below. + </p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + If <code class="computeroutput"><span class="identifier">stepper</span></code> is a <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> or <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error Stepper</a> + then <code class="computeroutput"><span class="identifier">dt</span></code> is also the step + size used for integration and the observer is called just after every + step. + </li> +<li class="listitem"> + If <code class="computeroutput"><span class="identifier">stepper</span></code> is a <a class="link" href="../concepts/controlled_stepper.html" title="Controlled Stepper">Controlled + Stepper</a> then <code class="computeroutput"><span class="identifier">dt</span></code> + is the initial step size. The actual step size will change due to error + control during time evolution. However, if an observer is provided the + step size will be adjusted such that the algorithm always calculates + <span class="emphasis"><em>x(t)</em></span> at <span class="emphasis"><em>t = t<sub>0</sub> + n dt</em></span> and calls + the observer at that point. Note that the use of <a class="link" href="../concepts/controlled_stepper.html" title="Controlled Stepper">Controlled + Stepper</a> is reasonable here only if <code class="computeroutput"><span class="identifier">dt</span></code> + is considerably larger than typical step sizes used by the stepper. + </li> +<li class="listitem"> + If <code class="computeroutput"><span class="identifier">stepper</span></code> is a <a class="link" href="../concepts/dense_output_stepper.html" title="Dense Output Stepper">Dense Output + Stepper</a> then <code class="computeroutput"><span class="identifier">dt</span></code> + is the initial step size. The actual step size will be adjusted during + integration due to error control. If an observer is provided dense output + is used to calculate <span class="emphasis"><em>x(t)</em></span> at <span class="emphasis"><em>t = t<sub>0</sub> + n + dt</em></span>. + </li> +</ul></div> +<h5> +<a name="boost_numeric_odeint.odeint_in_detail.integrate_functions.h1"></a> + <span class="phrase"><a name="boost_numeric_odeint.odeint_in_detail.integrate_functions.integrate_a_given_number_of_steps"></a></span><a class="link" href="integrate_functions.html#boost_numeric_odeint.odeint_in_detail.integrate_functions.integrate_a_given_number_of_steps">Integrate + a given number of steps</a> + </h5> +<p> + This function is very similar to <code class="computeroutput"><span class="identifier">integrate_const</span></code> + above. The only difference is that it does not take the end time as parameter, + but rather the number of steps. The integration is then performed until the + time <code class="computeroutput"><span class="identifier">t0</span><span class="special">+</span><span class="identifier">n</span><span class="special">*</span><span class="identifier">dt</span></code>. + </p> +<p> + <code class="computeroutput"><span class="identifier">integrate_n_steps</span><span class="special">(</span> + <span class="identifier">stepper</span> <span class="special">,</span> + <span class="identifier">system</span> <span class="special">,</span> + <span class="identifier">x0</span> <span class="special">,</span> + <span class="identifier">t0</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">,</span> + <span class="identifier">n</span> <span class="special">)</span></code> + </p> +<p> + <code class="computeroutput"><span class="identifier">integrate_n_steps</span><span class="special">(</span> + <span class="identifier">stepper</span> <span class="special">,</span> + <span class="identifier">system</span> <span class="special">,</span> + <span class="identifier">x0</span> <span class="special">,</span> + <span class="identifier">t0</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">,</span> + <span class="identifier">n</span> <span class="special">,</span> <span class="identifier">observer</span> <span class="special">)</span></code> + </p> +<p> + Integrates the ODE given by <code class="computeroutput"><span class="identifier">system</span></code> + with subsequent steps from <code class="computeroutput"><span class="identifier">stepper</span></code> + starting at <span class="emphasis"><em>x<sub>0</sub></em></span> and <span class="emphasis"><em>t<sub>0</sub></em></span>. If provided, + <code class="computeroutput"><span class="identifier">observer</span></code> is called after + every step and at the beginning with <code class="computeroutput"><span class="identifier">t0</span></code>, + similar as above. The approximate result for <span class="emphasis"><em>x( t<sub>0</sub> + n dt )</em></span> + is stored in <code class="computeroutput"><span class="identifier">x0</span></code>. This function + returns the end time <code class="computeroutput"><span class="identifier">t0</span> <span class="special">+</span> <span class="identifier">n</span><span class="special">*</span><span class="identifier">dt</span></code>. + </p> +<h5> +<a name="boost_numeric_odeint.odeint_in_detail.integrate_functions.h2"></a> + <span class="phrase"><a name="boost_numeric_odeint.odeint_in_detail.integrate_functions.observer_calls_at_each_step"></a></span><a class="link" href="integrate_functions.html#boost_numeric_odeint.odeint_in_detail.integrate_functions.observer_calls_at_each_step">Observer + calls at each step</a> + </h5> +<p> + If the observer should be called at each time step then the <code class="computeroutput"><span class="identifier">integrate_adaptive</span></code> function should be used. + Note that in the case of <a class="link" href="../concepts/controlled_stepper.html" title="Controlled Stepper">Controlled + Stepper</a> or <a class="link" href="../concepts/dense_output_stepper.html" title="Dense Output Stepper">Dense + Output Stepper</a> this leads to non-equidistant observer calls as the + step size changes. + </p> +<p> + <code class="computeroutput"><span class="identifier">integrate_adaptive</span><span class="special">(</span> + <span class="identifier">stepper</span> <span class="special">,</span> + <span class="identifier">system</span> <span class="special">,</span> + <span class="identifier">x0</span> <span class="special">,</span> + <span class="identifier">t0</span> <span class="special">,</span> + <span class="identifier">t1</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">)</span></code> + </p> +<p> + <code class="computeroutput"><span class="identifier">integrate_adaptive</span><span class="special">(</span> + <span class="identifier">stepper</span> <span class="special">,</span> + <span class="identifier">system</span> <span class="special">,</span> + <span class="identifier">x0</span> <span class="special">,</span> + <span class="identifier">t0</span> <span class="special">,</span> + <span class="identifier">t1</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">,</span> + <span class="identifier">observer</span> <span class="special">)</span></code> + </p> +<p> + Integrates the ODE given by <code class="computeroutput"><span class="identifier">system</span></code> + with subsequent steps from <code class="computeroutput"><span class="identifier">stepper</span></code>. + Integration start at <code class="computeroutput"><span class="identifier">t0</span></code> and + <code class="computeroutput"><span class="identifier">x0</span></code> and ends at <span class="emphasis"><em>t<sub>1</sub></em></span>. + <code class="computeroutput"><span class="identifier">x0</span></code> is changed to the approximative + solution <span class="emphasis"><em>x(t<sub>1</sub>)</em></span> at the end of integration. If provided, + the <code class="computeroutput"><span class="identifier">observer</span></code> is called after + each step (and before the first step at <code class="computeroutput"><span class="identifier">t0</span></code>). + <code class="computeroutput"><span class="identifier">integrate_adaptive</span></code> returns + the number of steps performed during the integration. + </p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + If <code class="computeroutput"><span class="identifier">stepper</span></code> is a <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> or <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error Stepper</a> + then <code class="computeroutput"><span class="identifier">dt</span></code> is the step size + used for integration and <code class="computeroutput"><span class="identifier">integrate_adaptive</span></code> + behaves like <code class="computeroutput"><span class="identifier">integrate_const</span></code> + except that for the last step the step size is reduced to ensure we end + exactly at <code class="computeroutput"><span class="identifier">t1</span></code>. If provided, + the observer is called at each step. + </li> +<li class="listitem"> + If <code class="computeroutput"><span class="identifier">stepper</span></code> is a <a class="link" href="../concepts/controlled_stepper.html" title="Controlled Stepper">Controlled + Stepper</a> then <code class="computeroutput"><span class="identifier">dt</span></code> + is the initial step size. The actual step size is changed according to + error control of the stepper. For the last step, the step size will be + reduced to ensure we end exactly at <code class="computeroutput"><span class="identifier">t1</span></code>. + If provided, the observer is called after each time step (and before + the first step at <code class="computeroutput"><span class="identifier">t0</span></code>). + </li> +<li class="listitem"> + If stepper is a <a class="link" href="../concepts/dense_output_stepper.html" title="Dense Output Stepper">Dense + Output Stepper</a> then <code class="computeroutput"><span class="identifier">dt</span></code> + is the initial step size and <code class="computeroutput"><span class="identifier">integrate_adaptive</span></code> + behaves just like for <a class="link" href="../concepts/controlled_stepper.html" title="Controlled Stepper">Controlled + Stepper</a> above. No dense output is used. + </li> +</ul></div> +<h5> +<a name="boost_numeric_odeint.odeint_in_detail.integrate_functions.h3"></a> + <span class="phrase"><a name="boost_numeric_odeint.odeint_in_detail.integrate_functions.observer_calls_at_given_time_points"></a></span><a class="link" href="integrate_functions.html#boost_numeric_odeint.odeint_in_detail.integrate_functions.observer_calls_at_given_time_points">Observer + calls at given time points</a> + </h5> +<p> + If the observer should be called at some user given time points the <code class="computeroutput"><span class="identifier">integrate_times</span></code> function should be used. + The times for observer calls are provided as a sequence of time values. The + sequence is either defined via two iterators pointing to begin and end of + the sequence or in terms of a <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a> + object. + </p> +<p> + <code class="computeroutput"><span class="identifier">integrate_times</span><span class="special">(</span> + <span class="identifier">stepper</span> <span class="special">,</span> + <span class="identifier">system</span> <span class="special">,</span> + <span class="identifier">x0</span> <span class="special">,</span> + <span class="identifier">times_start</span> <span class="special">,</span> + <span class="identifier">times_end</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">,</span> + <span class="identifier">observer</span> <span class="special">)</span></code> + </p> +<p> + <code class="computeroutput"><span class="identifier">integrate_times</span><span class="special">(</span> + <span class="identifier">stepper</span> <span class="special">,</span> + <span class="identifier">system</span> <span class="special">,</span> + <span class="identifier">x0</span> <span class="special">,</span> + <span class="identifier">time_range</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">,</span> + <span class="identifier">observer</span> <span class="special">)</span></code> + </p> +<p> + Integrates the ODE given by <code class="computeroutput"><span class="identifier">system</span></code> + with subsequent steps from <code class="computeroutput"><span class="identifier">stepper</span></code>. + Integration starts at <code class="computeroutput"><span class="special">*</span><span class="identifier">times_start</span></code> + and ends exactly at <code class="computeroutput"><span class="special">*(</span><span class="identifier">times_end</span><span class="special">-</span><span class="number">1</span><span class="special">)</span></code>. + <code class="computeroutput"><span class="identifier">x0</span></code> contains the approximate + solution at the end point of integration. This function requires an observer + which is invoked at the subsequent times <code class="computeroutput"><span class="special">*</span><span class="identifier">times_start</span><span class="special">++</span></code> + until <code class="computeroutput"><span class="identifier">times_start</span> <span class="special">==</span> + <span class="identifier">times_end</span></code>. If called with a <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a> + <code class="computeroutput"><span class="identifier">time_range</span></code> the function behaves + the same with <code class="computeroutput"><span class="identifier">times_start</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">time_range</span> + <span class="special">)</span></code> and <code class="computeroutput"><span class="identifier">times_end</span> + <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span> + <span class="identifier">time_range</span> <span class="special">)</span></code>. + <code class="computeroutput"><span class="identifier">integrate_times</span></code> returns the + number of steps performed during the integration. + </p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + If <code class="computeroutput"><span class="identifier">stepper</span></code> is a <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> or <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error Stepper</a> + <code class="computeroutput"><span class="identifier">dt</span></code> is the step size used + for integration. However, whenever a time point from the sequence is + approached the step size <code class="computeroutput"><span class="identifier">dt</span></code> + will be reduced to obtain the state <span class="emphasis"><em>x(t)</em></span> exactly + at the time point. + </li> +<li class="listitem"> + If <code class="computeroutput"><span class="identifier">stepper</span></code> is a <a class="link" href="../concepts/controlled_stepper.html" title="Controlled Stepper">Controlled + Stepper</a> then <code class="computeroutput"><span class="identifier">dt</span></code> + is the initial step size. The actual step size is adjusted during integration + according to error control. However, if a time point from the sequence + is approached the step size is reduced to obtain the state <span class="emphasis"><em>x(t)</em></span> + exactly at the time point. + </li> +<li class="listitem"> + If <code class="computeroutput"><span class="identifier">stepper</span></code> is a <a class="link" href="../concepts/dense_output_stepper.html" title="Dense Output Stepper">Dense Output + Stepper</a> then <code class="computeroutput"><span class="identifier">dt</span></code> + is the initial step size. The actual step size is adjusted during integration + according to error control. Dense output is used to obtain the states + <span class="emphasis"><em>x(t)</em></span> at the time points from the sequence. + </li> +</ul></div> +<h5> +<a name="boost_numeric_odeint.odeint_in_detail.integrate_functions.h4"></a> + <span class="phrase"><a name="boost_numeric_odeint.odeint_in_detail.integrate_functions.convenience_integrate_function"></a></span><a class="link" href="integrate_functions.html#boost_numeric_odeint.odeint_in_detail.integrate_functions.convenience_integrate_function">Convenience + integrate function</a> + </h5> +<p> + Additionally to the sophisticated integrate function above odeint also provides + a simple <code class="computeroutput"><span class="identifier">integrate</span></code> routine + which uses a dense output stepper based on <code class="computeroutput"><span class="identifier">runge_kutta_dopri5</span></code> + with standard error bounds <span class="emphasis"><em>10<sup>-6</sup></em></span> for the steps. + </p> +<p> + <code class="computeroutput"><span class="identifier">integrate</span><span class="special">(</span> + <span class="identifier">system</span> <span class="special">,</span> + <span class="identifier">x0</span> <span class="special">,</span> + <span class="identifier">t0</span> <span class="special">,</span> + <span class="identifier">t1</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">)</span></code> + </p> +<p> + <code class="computeroutput"><span class="identifier">integrate</span><span class="special">(</span> + <span class="identifier">system</span> <span class="special">,</span> + <span class="identifier">x0</span> <span class="special">,</span> + <span class="identifier">t0</span> <span class="special">,</span> + <span class="identifier">t1</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">,</span> + <span class="identifier">observer</span> <span class="special">)</span></code> + </p> +<p> + This function behaves exactly like <code class="computeroutput"><span class="identifier">integrate_adaptive</span></code> + above but no stepper has to be provided. It also returns the number of steps + performed during the integration. + </p> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="generation_functions.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="state_types__algebras_and_operations.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html new file mode 100644 index 000000000..ad09da399 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html @@ -0,0 +1,1335 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>State types, algebras and operations</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../odeint_in_detail.html" title="odeint in detail"> +<link rel="prev" href="integrate_functions.html" title="Integrate functions"> +<link rel="next" href="using_boost__ref.html" title="Using boost::ref"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="integrate_functions.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="using_boost__ref.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations"></a><a class="link" href="state_types__algebras_and_operations.html" title="State types, algebras and operations">State + types, algebras and operations</a> +</h3></div></div></div> +<div class="toc"><dl class="toc"> +<dt><span class="section"><a href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing">Construction/Resizing</a></span></dt> +<dt><span class="section"><a href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations">Algebras + and Operations</a></span></dt> +<dt><span class="section"><a href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.adapt_your_own_operations">Adapt + your own operations</a></span></dt> +</dl></div> +<p> + In odeint the stepper algorithms are implemented independently of the underlying + fundamental mathematical operations. This is realized by giving the user + full control over the state type and the mathematical operations for this + state type. Technically, this is done by introducing three concepts: StateType, + Algebra, Operations. Most of the steppers in odeint expect three class types + fulfilling these concepts as template parameters. Note that these concepts + are not fully independent of each other but rather a valid combination must + be provided in order to make the steppers work. In the following we will + give some examples on reasonable state_type-algebra-operations combinations. + For the most common state types, like <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span></code> or <code class="computeroutput"><span class="identifier">array</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span><span class="identifier">N</span><span class="special">></span></code> + the default values range_algebra and default_operations are perfectly fine + and odeint can be used as is without worrying about algebra/operations at + all. + </p> +<div class="important"><table border="0" summary="Important"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../../../../doc/src/images/important.png"></td> +<th align="left">Important</th> +</tr> +<tr><td align="left" valign="top"><p> + state_type, algebra and operations are not independent, a valid combination + must be provided to make odeint work properly + </p></td></tr> +</table></div> +<p> + Moreover, as odeint handles the memory required for intermediate temporary + objects itself, it also needs knowledge about how to create state_type objects + and maybe how to allocate memory (resizing). All in all, the following things + have to be taken care of when odeint is used with non-standard state types: + </p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + construction/destruction + </li> +<li class="listitem"> + resizing (if possible/required) + </li> +<li class="listitem"> + algebraic operations + </li> +</ul></div> +<p> + Again, odeint already provides basic interfaces for most of the usual state + types. So if you use a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>, + or a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code> as state type no additional work + is required, they just work out of the box. + </p> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing"></a><a class="link" href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing" title="Construction/Resizing">Construction/Resizing</a> +</h4></div></div></div> +<div class="toc"><dl class="toc"> +<dt><span class="section"><a href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.using_the_container_interface">Using + the container interface</a></span></dt> +<dt><span class="section"><a href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list">std::list</a></span></dt> +</dl></div> +<p> + We distinguish between two basic state types: fixed sized and dynamically + sized. For fixed size state types the default constructor <code class="computeroutput"><span class="identifier">state_type</span><span class="special">()</span></code> + already allocates the required memory, prominent example is <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">></span></code>. Dynamically sized types have to be + resized to make sure enough memory is allocated, the standard constructor + does not take care of the resizing. Examples for this are the STL containers + like <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span></code>. + </p> +<p> + The most easy way of getting your own state type to work with odeint is + to use a fixed size state, base calculations on the range_algebra and provide + the following functionality: + </p> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Construct State + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">State</span> <span class="identifier">x</span><span class="special">()</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">void</span></code> + </p> + </td> +<td> + <p> + Creates an instance of <code class="computeroutput"><span class="identifier">State</span></code> + and allocates memory. + </p> + </td> +</tr> +<tr> +<td> + <p> + Begin of the sequence + </p> + </td> +<td> + <p> + boost::begin(x) + </p> + </td> +<td> + <p> + Iterator + </p> + </td> +<td> + <p> + Returns an iterator pointing to the begin of the sequence + </p> + </td> +</tr> +<tr> +<td> + <p> + End of the sequence + </p> + </td> +<td> + <p> + boost::end(x) + </p> + </td> +<td> + <p> + Iterator + </p> + </td> +<td> + <p> + Returns an iterator pointing to the end of the sequence + </p> + </td> +</tr> +</tbody> +</table></div> +<div class="warning"><table border="0" summary="Warning"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../../../../../../doc/src/images/warning.png"></td> +<th align="left">Warning</th> +</tr> +<tr><td align="left" valign="top"><p> + If your state type does not allocate memory by default construction, + you <span class="bold"><strong>must define it as resizeable</strong></span> and + provide resize functionality (see below). Otherwise segmentation faults + will occur. + </p></td></tr> +</table></div> +<p> + So fixed sized arrays supported by <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a> + immediately work with odeint. For dynamically sized arrays one has to additionally + supply the resize functionality. First, the state has to be tagged as resizeable + by specializing the struct <code class="computeroutput"><span class="identifier">is_resizeable</span></code> + which consists of one typedef and one bool value: + </p> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Resizability + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">is_resizeable</span><span class="special"><</span><span class="identifier">State</span><span class="special">>::</span><span class="identifier">type</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">true_type</span></code> or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">false_type</span></code> + </p> + </td> +<td> + <p> + Determines resizeability of the state type, returns <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">true_type</span></code> if the state is resizeable. + </p> + </td> +</tr> +<tr> +<td> + <p> + Resizability + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">is_resizeable</span><span class="special"><</span><span class="identifier">State</span><span class="special">>::</span><span class="identifier">value</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">bool</span></code> + </p> + </td> +<td> + <p> + Same as above, but with <code class="computeroutput"><span class="keyword">bool</span></code> + value. + </p> + </td> +</tr> +</tbody> +</table></div> +<p> + Defining <code class="computeroutput"><span class="identifier">type</span></code> to be <code class="computeroutput"><span class="identifier">true_type</span></code> and <code class="computeroutput"><span class="identifier">value</span></code> + as <code class="computeroutput"><span class="keyword">true</span></code> tells odeint that + your state is resizeable. By default, odeint now expects the support of + <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code> and + a <code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">resize</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span><span class="special">(</span><span class="identifier">y</span><span class="special">)</span> <span class="special">)</span></code> + member function for resizing: + </p> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Get size + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span><span class="special">(</span> + <span class="identifier">x</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">size_type</span></code> + </p> + </td> +<td> + <p> + Returns the current size of x. + </p> + </td> +</tr> +<tr> +<td> + <p> + Resize + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">resize</span><span class="special">(</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span><span class="special">(</span> + <span class="identifier">y</span> <span class="special">)</span> + <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">void</span></code> + </p> + </td> +<td> + <p> + Resizes x to have the same size as y. + </p> + </td> +</tr> +</tbody> +</table></div> +<div class="section"> +<div class="titlepage"><div><div><h5 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.using_the_container_interface"></a><a class="link" href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.using_the_container_interface" title="Using the container interface">Using + the container interface</a> +</h5></div></div></div> +<p> + As a first example we take the most simple case and implement our own + vector <code class="computeroutput"><span class="identifier">my_vector</span></code> which + will provide a container interface. This makes <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a> + working out-of-box. We add a little functionality to our vector which + makes it allocate some default capacity by construction. This is helpful + when using resizing as then a resize can be assured to not require a + new allocation. + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> <span class="keyword">int</span> <span class="identifier">MAX_N</span> <span class="special">></span> +<span class="keyword">class</span> <span class="identifier">my_vector</span> +<span class="special">{</span> + <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">vector</span><span class="special">;</span> + +<span class="keyword">public</span><span class="special">:</span> + <span class="keyword">typedef</span> <span class="identifier">vector</span><span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">iterator</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">vector</span><span class="special">::</span><span class="identifier">const_iterator</span> <span class="identifier">const_iterator</span><span class="special">;</span> + +<span class="keyword">public</span><span class="special">:</span> + <span class="identifier">my_vector</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">N</span> <span class="special">)</span> + <span class="special">:</span> <span class="identifier">m_v</span><span class="special">(</span> <span class="identifier">N</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">m_v</span><span class="special">.</span><span class="identifier">reserve</span><span class="special">(</span> <span class="identifier">MAX_N</span> <span class="special">);</span> + <span class="special">}</span> + + <span class="identifier">my_vector</span><span class="special">()</span> + <span class="special">:</span> <span class="identifier">m_v</span><span class="special">()</span> + <span class="special">{</span> + <span class="identifier">m_v</span><span class="special">.</span><span class="identifier">reserve</span><span class="special">(</span> <span class="identifier">MAX_N</span> <span class="special">);</span> + <span class="special">}</span> + +<span class="comment">// ... [ implement container interface ]</span> +</pre> +<p> + </p> +<p> + The only thing that has to be done other than defining is thus declaring + my_vector as resizeable: + </p> +<p> +</p> +<pre class="programlisting"><span class="comment">// define my_vector as resizeable</span> + +<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + +<span class="keyword">template</span><span class="special"><</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">></span> +<span class="keyword">struct</span> <span class="identifier">is_resizeable</span><span class="special"><</span> <span class="identifier">my_vector</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span> <span class="special">></span> +<span class="special">{</span> + <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">true_type</span> <span class="identifier">type</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="identifier">type</span><span class="special">::</span><span class="identifier">value</span><span class="special">;</span> +<span class="special">};</span> + +<span class="special">}</span> <span class="special">}</span> <span class="special">}</span> +</pre> +<p> + </p> +<p> + If we wouldn't specialize the <code class="computeroutput"><span class="identifier">is_resizeable</span></code> + template, the code would still compile but odeint would not adjust the + size of temporary internal instances of my_vector and hence try to fill + zero-sized vectors resulting in segmentation faults! The full example + can be found in <a href="../../../../../../../libs/numeric/odeint/examples/my_vector.cpp" target="_top">my_vector.cpp</a> + </p> +</div> +<div class="section"> +<div class="titlepage"><div><div><h5 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list"></a><a class="link" href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list">std::list</a> +</h5></div></div></div> +<p> + If your state type does work with <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a>, + but handles resizing differently you are required to specialize two implementations + used by odeint to check a state's size and to resize: + </p> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Check size + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">same_size_impl</span><span class="special"><</span><span class="identifier">State</span><span class="special">,</span><span class="identifier">State</span><span class="special">>::</span><span class="identifier">same_size</span><span class="special">(</span><span class="identifier">x</span> + <span class="special">,</span> <span class="identifier">y</span><span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">bool</span></code> + </p> + </td> +<td> + <p> + Returns true if the size of x equals the size of y. + </p> + </td> +</tr> +<tr> +<td> + <p> + Resize + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">resize_impl</span><span class="special"><</span><span class="identifier">State</span><span class="special">,</span><span class="identifier">State</span><span class="special">>::</span><span class="identifier">resize</span><span class="special">(</span><span class="identifier">x</span> + <span class="special">,</span> <span class="identifier">y</span><span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="keyword">void</span></code> + </p> + </td> +<td> + <p> + Resizes x to have the same size as y. + </p> + </td> +</tr> +</tbody> +</table></div> +<p> + As an example we will use a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code> + as state type in odeint. Because <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code> + is not supported by <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span></code> + we have to replace the same_size and resize implementation to get list + to work with odeint. The following code shows the required template specializations: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span> + +<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + +<span class="keyword">template</span><span class="special"><</span> <span class="special">></span> +<span class="keyword">struct</span> <span class="identifier">is_resizeable</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> +<span class="special">{</span> <span class="comment">// declare resizeability</span> + <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">true_type</span> <span class="identifier">type</span><span class="special">;</span> + <span class="keyword">const</span> <span class="keyword">static</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="identifier">type</span><span class="special">::</span><span class="identifier">value</span><span class="special">;</span> +<span class="special">};</span> + +<span class="keyword">template</span><span class="special"><</span> <span class="special">></span> +<span class="keyword">struct</span> <span class="identifier">same_size_impl</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">></span> +<span class="special">{</span> <span class="comment">// define how to check size</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <span class="identifier">same_size</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">v1</span> <span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">v2</span> <span class="special">)</span> + <span class="special">{</span> + <span class="keyword">return</span> <span class="identifier">v1</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">==</span> <span class="identifier">v2</span><span class="special">.</span><span class="identifier">size</span><span class="special">();</span> + <span class="special">}</span> +<span class="special">};</span> + +<span class="keyword">template</span><span class="special"><</span> <span class="special">></span> +<span class="keyword">struct</span> <span class="identifier">resize_impl</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">></span> +<span class="special">{</span> <span class="comment">// define how to resize</span> + <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">resize</span><span class="special">(</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">v1</span> <span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">v2</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">v1</span><span class="special">.</span><span class="identifier">resize</span><span class="special">(</span> <span class="identifier">v2</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">);</span> + <span class="special">}</span> +<span class="special">};</span> + +<span class="special">}</span> <span class="special">}</span> <span class="special">}</span> +</pre> +<p> + </p> +<p> + With these definitions odeint knows how to resize <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code>s + and so they can be used as state types. A complete example can be found + in <a href="../../../../../../../libs/numeric/odeint/examples/list_lattice.cpp" target="_top">list_lattice.cpp</a>. + </p> +</div> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations"></a><a class="link" href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations" title="Algebras and Operations">Algebras + and Operations</a> +</h4></div></div></div> +<div class="toc"><dl class="toc"> +<dt><span class="section"><a href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector">GSL + Vector</a></span></dt> +<dt><span class="section"><a href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.vector_space_algebra">Vector + Space Algebra</a></span></dt> +<dt><span class="section"><a href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.boost_ublas">Boost.Ublas</a></span></dt> +<dt><span class="section"><a href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.point_type">Point + type</a></span></dt> +</dl></div> +<p> + To provide maximum flexibility odeint is implemented in a highly modularized + way. This means it is possible to change the underlying mathematical operations + without touching the integration algorithms. The fundamental mathematical + operations are those of a vector space, that is addition of <code class="computeroutput"><span class="identifier">state_types</span></code> and multiplication of <code class="computeroutput"><span class="identifier">state_type</span></code>s with a scalar (<code class="computeroutput"><span class="identifier">time_type</span></code>). In odeint this is realized + in two concepts: <span class="underline">Algebra</span> and <span class="underline">Operations</span>. The standard way how this works + is by the range algebra which provides functions that apply a specific + operation to each of the individual elements of a container based on the + <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a> + library. If your state type is not supported by <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a> + there are several possibilities to tell odeint how to do algebraic operations: + </p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + Implement <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span></code> and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span></code> + for your state type so it works with <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a>. + </li> +<li class="listitem"> + Implement vector-vector addition operator <code class="computeroutput"><span class="special">+</span></code> + and scalar-vector multiplication operator <code class="computeroutput"><span class="special">*</span></code> + and use the non-standard <code class="computeroutput"><span class="identifier">vector_space_algebra</span></code>. + </li> +<li class="listitem"> + Implement your own algebra that implements the required functions. + </li> +</ul></div> +<div class="section"> +<div class="titlepage"><div><div><h5 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector"></a><a class="link" href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector">GSL + Vector</a> +</h5></div></div></div> +<p> + In the following example we will try to use the <code class="computeroutput"><span class="identifier">gsl_vector</span></code> + type from <a href="http://www.gsl.org" target="_top">GSL</a> (GNU Scientific + Library) as state type in odeint. We will realize this by implementing + a wrapper around the gsl_vector that takes care of construction/destruction. + Also, <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a> + is extended such that it works with <code class="computeroutput"><span class="identifier">gsl_vector</span></code>s + as well which required also the implementation of a new <code class="computeroutput"><span class="identifier">gsl_iterator</span></code>. + </p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p> + odeint already includes all the code presented here, see <a href="../../../../../../../boost/numeric/odeint/external/gsl/gsl_wrapper.hpp" target="_top">gsl_wrapper.hpp</a>, + so <code class="computeroutput"><span class="identifier">gsl_vector</span></code>s can + be used straight out-of-box. The following description is just for + educational purpose. + </p></td></tr> +</table></div> +<p> + The GSL is a C library, so <code class="computeroutput"><span class="identifier">gsl_vector</span></code> + has neither constructor, nor destructor or any <code class="computeroutput"><span class="identifier">begin</span></code> + or <code class="computeroutput"><span class="identifier">end</span></code> function, no iterators + at all. So to make it work with odeint plenty of things have to be implemented. + Note that all of the work shown here is already included in odeint, so + using <code class="computeroutput"><span class="identifier">gsl_vector</span></code>s in + odeint doesn't require any further adjustments. We present it here just + as an educational example. We start with defining appropriate constructors + and destructors. This is done by specializing the <code class="computeroutput"><span class="identifier">state_wrapper</span></code> + for <code class="computeroutput"><span class="identifier">gsl_vector</span></code>. State + wrappers are used by the steppers internally to create and manage temporary + instances of state types: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> +<span class="keyword">struct</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">gsl_vector</span><span class="special">*</span> <span class="special">></span> +<span class="special">{</span> + <span class="keyword">typedef</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">gsl_vector</span><span class="special">*</span> <span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">state_wrapper</span><span class="special"><</span> <span class="identifier">gsl_vector</span><span class="special">*</span> <span class="special">></span> <span class="identifier">state_wrapper_type</span><span class="special">;</span> + + <span class="identifier">state_type</span> <span class="identifier">m_v</span><span class="special">;</span> + + <span class="identifier">state_wrapper</span><span class="special">(</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">m_v</span> <span class="special">=</span> <span class="identifier">gsl_vector_alloc</span><span class="special">(</span> <span class="number">1</span> <span class="special">);</span> + <span class="special">}</span> + + <span class="identifier">state_wrapper</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_wrapper_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">resize</span><span class="special">(</span> <span class="identifier">m_v</span> <span class="special">,</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">m_v</span> <span class="special">);</span> + <span class="identifier">gsl_vector_memcpy</span><span class="special">(</span> <span class="identifier">m_v</span> <span class="special">,</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">m_v</span> <span class="special">);</span> + <span class="special">}</span> + + + <span class="special">~</span><span class="identifier">state_wrapper</span><span class="special">()</span> + <span class="special">{</span> + <span class="identifier">gsl_vector_free</span><span class="special">(</span> <span class="identifier">m_v</span> <span class="special">);</span> + <span class="special">}</span> + +<span class="special">};</span> +</pre> +<p> + </p> +<p> + This <code class="computeroutput"><span class="identifier">state_wrapper</span></code> specialization + tells odeint how gsl_vectors are created, copied and destroyed. Next + we need resizing, this is required because gsl_vectors are dynamically + sized objects: +</p> +<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> +<span class="keyword">struct</span> <span class="identifier">is_resizeable</span><span class="special"><</span> <span class="identifier">gsl_vector</span><span class="special">*</span> <span class="special">></span> +<span class="special">{</span> + <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">true_type</span> <span class="identifier">type</span><span class="special">;</span> + <span class="keyword">const</span> <span class="keyword">static</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="identifier">type</span><span class="special">::</span><span class="identifier">value</span><span class="special">;</span> +<span class="special">};</span> + +<span class="keyword">template</span> <span class="special"><></span> +<span class="keyword">struct</span> <span class="identifier">same_size_impl</span><span class="special"><</span> <span class="identifier">gsl_vector</span><span class="special">*</span> <span class="special">,</span> <span class="identifier">gsl_vector</span><span class="special">*</span> <span class="special">></span> +<span class="special">{</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <span class="identifier">same_size</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">gsl_vector</span><span class="special">*</span> <span class="identifier">x</span> <span class="special">,</span> <span class="keyword">const</span> <span class="identifier">gsl_vector</span><span class="special">*</span> <span class="identifier">y</span> <span class="special">)</span> + <span class="special">{</span> + <span class="keyword">return</span> <span class="identifier">x</span><span class="special">-></span><span class="identifier">size</span> <span class="special">==</span> <span class="identifier">y</span><span class="special">-></span><span class="identifier">size</span><span class="special">;</span> + <span class="special">}</span> +<span class="special">};</span> + +<span class="keyword">template</span> <span class="special"><></span> +<span class="keyword">struct</span> <span class="identifier">resize_impl</span><span class="special"><</span> <span class="identifier">gsl_vector</span><span class="special">*</span> <span class="special">,</span> <span class="identifier">gsl_vector</span><span class="special">*</span> <span class="special">></span> +<span class="special">{</span> + <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">resize</span><span class="special">(</span> <span class="identifier">gsl_vector</span><span class="special">*</span> <span class="identifier">x</span> <span class="special">,</span> <span class="keyword">const</span> <span class="identifier">gsl_vector</span><span class="special">*</span> <span class="identifier">y</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">gsl_vector_free</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">);</span> + <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">gsl_vector_alloc</span><span class="special">(</span> <span class="identifier">y</span><span class="special">-></span><span class="identifier">size</span> <span class="special">);</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + Up to now, we defined creation/destruction and resizing, but gsl_vectors + also don't support iterators, so we first implement a gsl iterator: + </p> +<p> +</p> +<pre class="programlisting"><span class="comment">/* + * defines an iterator for gsl_vector + */</span> +<span class="keyword">class</span> <span class="identifier">gsl_vector_iterator</span> + <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_facade</span><span class="special"><</span> <span class="identifier">gsl_vector_iterator</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">,</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">random_access_traversal_tag</span> <span class="special">></span> +<span class="special">{</span> +<span class="keyword">public</span> <span class="special">:</span> + + <span class="identifier">gsl_vector_iterator</span><span class="special">(</span> <span class="keyword">void</span> <span class="special">):</span> <span class="identifier">m_p</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special">,</span> <span class="identifier">m_stride</span><span class="special">(</span> <span class="number">0</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + <span class="keyword">explicit</span> <span class="identifier">gsl_vector_iterator</span><span class="special">(</span> <span class="identifier">gsl_vector</span> <span class="special">*</span><span class="identifier">p</span> <span class="special">)</span> <span class="special">:</span> <span class="identifier">m_p</span><span class="special">(</span> <span class="identifier">p</span><span class="special">-></span><span class="identifier">data</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_stride</span><span class="special">(</span> <span class="identifier">p</span><span class="special">-></span><span class="identifier">stride</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + <span class="keyword">friend</span> <span class="identifier">gsl_vector_iterator</span> <span class="identifier">end_iterator</span><span class="special">(</span> <span class="identifier">gsl_vector</span> <span class="special">*</span> <span class="special">);</span> + +<span class="keyword">private</span> <span class="special">:</span> + + <span class="keyword">friend</span> <span class="keyword">class</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_core_access</span><span class="special">;</span> + <span class="keyword">friend</span> <span class="keyword">class</span> <span class="identifier">const_gsl_vector_iterator</span><span class="special">;</span> + + <span class="keyword">void</span> <span class="identifier">increment</span><span class="special">(</span> <span class="keyword">void</span> <span class="special">)</span> <span class="special">{</span> <span class="identifier">m_p</span> <span class="special">+=</span> <span class="identifier">m_stride</span><span class="special">;</span> <span class="special">}</span> + <span class="keyword">void</span> <span class="identifier">decrement</span><span class="special">(</span> <span class="keyword">void</span> <span class="special">)</span> <span class="special">{</span> <span class="identifier">m_p</span> <span class="special">-=</span> <span class="identifier">m_stride</span><span class="special">;</span> <span class="special">}</span> + <span class="keyword">void</span> <span class="identifier">advance</span><span class="special">(</span> <span class="identifier">ptrdiff_t</span> <span class="identifier">n</span> <span class="special">)</span> <span class="special">{</span> <span class="identifier">m_p</span> <span class="special">+=</span> <span class="identifier">n</span><span class="special">*</span><span class="identifier">m_stride</span><span class="special">;</span> <span class="special">}</span> + <span class="keyword">bool</span> <span class="identifier">equal</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">gsl_vector_iterator</span> <span class="special">&</span><span class="identifier">other</span> <span class="special">)</span> <span class="keyword">const</span> <span class="special">{</span> <span class="keyword">return</span> <span class="keyword">this</span><span class="special">-></span><span class="identifier">m_p</span> <span class="special">==</span> <span class="identifier">other</span><span class="special">.</span><span class="identifier">m_p</span><span class="special">;</span> <span class="special">}</span> + <span class="keyword">bool</span> <span class="identifier">equal</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">const_gsl_vector_iterator</span> <span class="special">&</span><span class="identifier">other</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">double</span><span class="special">&</span> <span class="identifier">dereference</span><span class="special">(</span> <span class="keyword">void</span> <span class="special">)</span> <span class="keyword">const</span> <span class="special">{</span> <span class="keyword">return</span> <span class="special">*</span><span class="identifier">m_p</span><span class="special">;</span> <span class="special">}</span> + + <span class="keyword">double</span> <span class="special">*</span><span class="identifier">m_p</span><span class="special">;</span> + <span class="identifier">size_t</span> <span class="identifier">m_stride</span><span class="special">;</span> +<span class="special">};</span> +</pre> +<p> + A similar class exists for the <code class="computeroutput"><span class="keyword">const</span></code> + version of the iterator. Then we have a function returning the end iterator + (similarly for <code class="computeroutput"><span class="keyword">const</span></code> again): +</p> +<pre class="programlisting"><span class="identifier">gsl_vector_iterator</span> <span class="identifier">end_iterator</span><span class="special">(</span> <span class="identifier">gsl_vector</span> <span class="special">*</span><span class="identifier">x</span> <span class="special">)</span> +<span class="special">{</span> + <span class="identifier">gsl_vector_iterator</span> <span class="identifier">iter</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">);</span> + <span class="identifier">iter</span><span class="special">.</span><span class="identifier">m_p</span> <span class="special">+=</span> <span class="identifier">iter</span><span class="special">.</span><span class="identifier">m_stride</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">-></span><span class="identifier">size</span><span class="special">;</span> + <span class="keyword">return</span> <span class="identifier">iter</span><span class="special">;</span> +<span class="special">}</span> +</pre> +<p> + </p> +<p> + Finally, the bindings for <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a> + are added: +</p> +<pre class="programlisting"><span class="comment">// template<></span> +<span class="keyword">inline</span> <span class="identifier">gsl_vector_iterator</span> <span class="identifier">range_begin</span><span class="special">(</span> <span class="identifier">gsl_vector</span> <span class="special">*</span><span class="identifier">x</span> <span class="special">)</span> +<span class="special">{</span> + <span class="keyword">return</span> <span class="identifier">gsl_vector_iterator</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">);</span> +<span class="special">}</span> + +<span class="comment">// template<></span> +<span class="keyword">inline</span> <span class="identifier">gsl_vector_iterator</span> <span class="identifier">range_end</span><span class="special">(</span> <span class="identifier">gsl_vector</span> <span class="special">*</span><span class="identifier">x</span> <span class="special">)</span> +<span class="special">{</span> + <span class="keyword">return</span> <span class="identifier">end_iterator</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">);</span> +<span class="special">}</span> +</pre> +<p> + Again with similar definitions for the <code class="computeroutput"><span class="keyword">const</span></code> + versions. This eventually makes odeint work with gsl vectors as state + types. The full code for these bindings is found in <a href="../../../../../../../boost/numeric/odeint/external/gsl/gsl_wrapper.hpp" target="_top">gsl_wrapper.hpp</a>. + It might look rather complicated but keep in mind that gsl is a pre-compiled + C library. + </p> +</div> +<div class="section"> +<div class="titlepage"><div><div><h5 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.vector_space_algebra"></a><a class="link" href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.vector_space_algebra" title="Vector Space Algebra">Vector + Space Algebra</a> +</h5></div></div></div> +<p> + As seen above, the standard way of performing algebraic operations on + container-like state types in odeint is to iterate through the elements + of the container and perform the operations element-wise on the underlying + value type. This is realized by means of the <code class="computeroutput"><span class="identifier">range_algebra</span></code> + that uses <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a> + for obtaining iterators of the state types. However, there are other + ways to implement the algebraic operations on containers, one of which + is defining the addition/multiplication operators for the containers + directly and then using the <code class="computeroutput"><span class="identifier">vector_space_algebra</span></code>. + If you use this algebra, the following operators have to be defined for + the state_type: + </p> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Addition + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">x</span> <span class="special">+</span> + <span class="identifier">y</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">state_type</span></code> + </p> + </td> +<td> + <p> + Calculates the vector sum 'x+y'. + </p> + </td> +</tr> +<tr> +<td> + <p> + Assign addition + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">x</span> <span class="special">+=</span> + <span class="identifier">y</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">state_type</span></code> + </p> + </td> +<td> + <p> + Performs x+y in place. + </p> + </td> +</tr> +<tr> +<td> + <p> + Scalar multiplication + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">a</span> <span class="special">*</span> + <span class="identifier">x</span> </code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">state_type</span></code> + </p> + </td> +<td> + <p> + Performs multiplication of vector x with scalar a. + </p> + </td> +</tr> +<tr> +<td> + <p> + Assign scalar multiplication + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">x</span> <span class="special">*=</span> + <span class="identifier">a</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">state_type</span></code> + </p> + </td> +<td> + <p> + Performs in-place multiplication of vector x with scalar a. + </p> + </td> +</tr> +</tbody> +</table></div> +<p> + Defining these operators makes your state type work with any basic Runge-Kutta + stepper. However, if you want to use step-size control, some more functionality + is required. Specifically, operations like <span class="emphasis"><em>max<sub>i</sub>( |err<sub>i</sub>| / (alpha + * |s<sub>i</sub>|) )</em></span> have to be performed. <span class="emphasis"><em>err</em></span> and + <span class="emphasis"><em>s</em></span> are state_types, alpha is a scalar. As you can + see, we need element wise absolute value and division as well as an reduce + operation to get the maximum value. So for controlled steppers the following + things have to be implemented: + </p> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Name + </p> + </th> +<th> + <p> + Expression + </p> + </th> +<th> + <p> + Type + </p> + </th> +<th> + <p> + Semantics + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Division + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">x</span> <span class="special">/</span> + <span class="identifier">y</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">state_type</span></code> + </p> + </td> +<td> + <p> + Calculates the element-wise division 'x/y' + </p> + </td> +</tr> +<tr> +<td> + <p> + Absolute value + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">abs</span><span class="special">(</span> + <span class="identifier">x</span> <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">state_type</span></code> + </p> + </td> +<td> + <p> + Element wise absolute value + </p> + </td> +</tr> +<tr> +<td> + <p> + Reduce + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">vector_space_reduce_impl</span><span class="special"><</span> <span class="identifier">state_type</span> + <span class="special">>::</span><span class="identifier">reduce</span><span class="special">(</span> <span class="identifier">state</span> + <span class="special">,</span> <span class="identifier">operation</span> + <span class="special">,</span> <span class="identifier">init</span> + <span class="special">)</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">value_type</span></code> + </p> + </td> +<td> + <p> + Performs the <code class="computeroutput"><span class="identifier">operation</span></code> + for subsequently each element of <code class="computeroutput"><span class="identifier">state</span></code> + and returns the aggregate value. E.g. + </p> + <p> + <code class="computeroutput"><span class="identifier">init</span> <span class="special">=</span> + <span class="keyword">operator</span><span class="special">(</span> + <span class="identifier">init</span> <span class="special">,</span> + <span class="identifier">state</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> + <span class="special">);</span></code> + </p> + <p> + <code class="computeroutput"><span class="identifier">init</span> <span class="special">=</span> + <span class="keyword">operator</span><span class="special">(</span> + <span class="identifier">init</span> <span class="special">,</span> + <span class="identifier">state</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> + <span class="special">)</span></code> + </p> + <p> + <code class="computeroutput"><span class="special">...</span></code> + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<div class="section"> +<div class="titlepage"><div><div><h5 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.boost_ublas"></a><a class="link" href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.boost_ublas" title="Boost.Ublas">Boost.Ublas</a> +</h5></div></div></div> +<p> + As an example for the employment of the <code class="computeroutput"><span class="identifier">vector_space_algebra</span></code> + we will adopt <code class="computeroutput"><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">vector</span></code> from <a href="http://www.boost.org/doc/libs/release/libs/numeric/ublas/index.html" target="_top">Boost.uBLAS</a> + to work as a state type in odeint. This is particularly easy because + <code class="computeroutput"><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">vector</span></code> supports vector-vector addition + and scalar-vector multiplication described above as well as <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span></code>. It also has a resize member function + so all that has to be done in this case is to declare resizability: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span> + +<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + +<span class="keyword">template</span><span class="special"><></span> +<span class="keyword">struct</span> <span class="identifier">is_resizeable</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> +<span class="special">{</span> + <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">true_type</span> <span class="identifier">type</span><span class="special">;</span> + <span class="keyword">const</span> <span class="keyword">static</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="identifier">type</span><span class="special">::</span><span class="identifier">value</span><span class="special">;</span> +<span class="special">};</span> + +<span class="special">}</span> <span class="special">}</span> <span class="special">}</span> +</pre> +<p> + </p> +<p> + Now ublas::vector can be used as state type for simple Runge-Kutta steppers + in odeint by specifying the <code class="computeroutput"><span class="identifier">vector_space_algebra</span></code> + as algebra in the template parameter list of the stepper. The following + code shows the corresponding definitions: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> +<span class="special">{</span> + <span class="identifier">state_type</span> <span class="identifier">x</span><span class="special">(</span><span class="number">3</span><span class="special">);</span> + <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="number">10.0</span><span class="special">;</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="number">5.0</span> <span class="special">;</span> <span class="identifier">x</span><span class="special">[</span><span class="number">2</span><span class="special">]</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">runge_kutta4</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">vector_space_algebra</span> <span class="special">></span> <span class="identifier">stepper</span><span class="special">;</span> + <span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">stepper</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">lorenz</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> + <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.1</span> <span class="special">);</span> +<span class="special">}</span> +</pre> +<p> + </p> +<p> + Note again, that we haven't supported the requirements for controlled + steppers, but only for simple Runge-Kutta methods. You can find the full + example in <a href="../../../../../../../libs/numeric/odeint/examples/ublas/lorenz_ublas.cpp" target="_top">lorenz_ublas.cpp</a>. + </p> +</div> +<div class="section"> +<div class="titlepage"><div><div><h5 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.point_type"></a><a class="link" href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.point_type" title="Point type">Point + type</a> +</h5></div></div></div> +<p> + Here we show how to implement the required operators on a state type. + As example we define a new class <code class="computeroutput"><span class="identifier">point3D</span></code> + representing a three-dimensional vector with components x,y,z and define + addition and scalar multiplication operators for it. We use <a href="http://www.boost.org/doc/libs/release/doc/html/operators.html" target="_top">Boost.Operators</a> + to reduce the amount of code to be written. The class for the point type + looks as follows: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">point3D</span> <span class="special">:</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">additive1</span><span class="special"><</span> <span class="identifier">point3D</span> <span class="special">,</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">additive2</span><span class="special"><</span> <span class="identifier">point3D</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">,</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiplicative2</span><span class="special"><</span> <span class="identifier">point3D</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">></span> <span class="special">></span> <span class="special">></span> +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + + <span class="keyword">double</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">y</span> <span class="special">,</span> <span class="identifier">z</span><span class="special">;</span> + + <span class="identifier">point3D</span><span class="special">()</span> + <span class="special">:</span> <span class="identifier">x</span><span class="special">(</span> <span class="number">0.0</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">y</span><span class="special">(</span> <span class="number">0.0</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">z</span><span class="special">(</span> <span class="number">0.0</span> <span class="special">)</span> + <span class="special">{</span> <span class="special">}</span> + + <span class="identifier">point3D</span><span class="special">(</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">val</span> <span class="special">)</span> + <span class="special">:</span> <span class="identifier">x</span><span class="special">(</span> <span class="identifier">val</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">y</span><span class="special">(</span> <span class="identifier">val</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">z</span><span class="special">(</span> <span class="identifier">val</span> <span class="special">)</span> + <span class="special">{</span> <span class="special">}</span> + + <span class="identifier">point3D</span><span class="special">(</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">_x</span> <span class="special">,</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">_y</span> <span class="special">,</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">_z</span> <span class="special">)</span> + <span class="special">:</span> <span class="identifier">x</span><span class="special">(</span> <span class="identifier">_x</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">y</span><span class="special">(</span> <span class="identifier">_y</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">z</span><span class="special">(</span> <span class="identifier">_z</span> <span class="special">)</span> + <span class="special">{</span> <span class="special">}</span> + + <span class="identifier">point3D</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">+=(</span> <span class="keyword">const</span> <span class="identifier">point3D</span> <span class="special">&</span><span class="identifier">p</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">x</span> <span class="special">+=</span> <span class="identifier">p</span><span class="special">.</span><span class="identifier">x</span><span class="special">;</span> <span class="identifier">y</span> <span class="special">+=</span> <span class="identifier">p</span><span class="special">.</span><span class="identifier">y</span><span class="special">;</span> <span class="identifier">z</span> <span class="special">+=</span> <span class="identifier">p</span><span class="special">.</span><span class="identifier">z</span><span class="special">;</span> + <span class="keyword">return</span> <span class="special">*</span><span class="keyword">this</span><span class="special">;</span> + <span class="special">}</span> + + <span class="identifier">point3D</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">*=(</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">a</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">x</span> <span class="special">*=</span> <span class="identifier">a</span><span class="special">;</span> <span class="identifier">y</span> <span class="special">*=</span> <span class="identifier">a</span><span class="special">;</span> <span class="identifier">z</span> <span class="special">*=</span> <span class="identifier">a</span><span class="special">;</span> + <span class="keyword">return</span> <span class="special">*</span><span class="keyword">this</span><span class="special">;</span> + <span class="special">}</span> + +<span class="special">};</span> +</pre> +<p> + </p> +<p> + By deriving from <a href="http://www.boost.org/doc/libs/release/doc/html/operators.html" target="_top">Boost.Operators</a> + classes we don't have to define outer class operators like <code class="computeroutput"><span class="keyword">operator</span><span class="special">+(</span> <span class="identifier">point3D</span> <span class="special">,</span> + <span class="identifier">point3D</span> <span class="special">)</span></code> + because that is taken care of by the operators library. Note that for + simple Runge-Kutta schemes (like <code class="computeroutput"><span class="identifier">runge_kutta4</span></code>) + only the <code class="computeroutput"><span class="special">+</span></code> and <code class="computeroutput"><span class="special">*</span></code> operators are required. If, however, + a controlled stepper is used one also needs to specify the division operator + <code class="computeroutput"><span class="special">/</span></code> because calculation of + the error term involves an element wise division of the state types. + Additionally, controlled steppers require an <code class="computeroutput"><span class="identifier">abs</span></code> + function calculating the element-wise absolute value for the state type: + </p> +<p> +</p> +<pre class="programlisting"><span class="comment">// only required for steppers with error control</span> +<span class="identifier">point3D</span> <span class="keyword">operator</span><span class="special">/(</span> <span class="keyword">const</span> <span class="identifier">point3D</span> <span class="special">&</span><span class="identifier">p1</span> <span class="special">,</span> <span class="keyword">const</span> <span class="identifier">point3D</span> <span class="special">&</span><span class="identifier">p2</span> <span class="special">)</span> +<span class="special">{</span> + <span class="keyword">return</span> <span class="identifier">point3D</span><span class="special">(</span> <span class="identifier">p1</span><span class="special">.</span><span class="identifier">x</span><span class="special">/</span><span class="identifier">p2</span><span class="special">.</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">p1</span><span class="special">.</span><span class="identifier">y</span><span class="special">/</span><span class="identifier">p2</span><span class="special">.</span><span class="identifier">y</span> <span class="special">,</span> <span class="identifier">p1</span><span class="special">.</span><span class="identifier">z</span><span class="special">/</span><span class="identifier">p1</span><span class="special">.</span><span class="identifier">z</span> <span class="special">);</span> +<span class="special">}</span> + +<span class="identifier">point3D</span> <span class="identifier">abs</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">point3D</span> <span class="special">&</span><span class="identifier">p</span> <span class="special">)</span> +<span class="special">{</span> + <span class="keyword">return</span> <span class="identifier">point3D</span><span class="special">(</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">p</span><span class="special">.</span><span class="identifier">x</span><span class="special">)</span> <span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">p</span><span class="special">.</span><span class="identifier">y</span><span class="special">)</span> <span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">p</span><span class="special">.</span><span class="identifier">z</span><span class="special">)</span> <span class="special">);</span> +<span class="special">}</span> +</pre> +<p> + </p> +<p> + Finally, we have to add a specialization for <code class="computeroutput"><span class="identifier">reduce</span></code> + implementing a reduction over the state type: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> +<span class="comment">// specialization of vector_space_reduce, only required for steppers with error control</span> +<span class="keyword">template</span><span class="special"><></span> +<span class="keyword">struct</span> <span class="identifier">vector_space_reduce</span><span class="special"><</span> <span class="identifier">point3D</span> <span class="special">></span> +<span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Value</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Op</span> <span class="special">></span> + <span class="identifier">Value</span> <span class="keyword">operator</span><span class="special">()</span> <span class="special">(</span> <span class="keyword">const</span> <span class="identifier">point3D</span> <span class="special">&</span><span class="identifier">p</span> <span class="special">,</span> <span class="identifier">Op</span> <span class="identifier">op</span> <span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">init</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">init</span> <span class="special">=</span> <span class="identifier">op</span><span class="special">(</span> <span class="identifier">init</span> <span class="special">,</span> <span class="identifier">p</span><span class="special">.</span><span class="identifier">x</span> <span class="special">);</span> + <span class="comment">//std::cout << init << " ";</span> + <span class="identifier">init</span> <span class="special">=</span> <span class="identifier">op</span><span class="special">(</span> <span class="identifier">init</span> <span class="special">,</span> <span class="identifier">p</span><span class="special">.</span><span class="identifier">y</span> <span class="special">);</span> + <span class="comment">//std::cout << init << " ";</span> + <span class="identifier">init</span> <span class="special">=</span> <span class="identifier">op</span><span class="special">(</span> <span class="identifier">init</span> <span class="special">,</span> <span class="identifier">p</span><span class="special">.</span><span class="identifier">z</span> <span class="special">);</span> + <span class="comment">//std::cout << init << std::endl;</span> + <span class="keyword">return</span> <span class="identifier">init</span><span class="special">;</span> + <span class="special">}</span> +<span class="special">};</span> +<span class="special">}</span> <span class="special">}</span> <span class="special">}</span> +</pre> +<p> + </p> +<p> + Again, note that the two last steps were only required if you want to + use controlled steppers. For simple steppers definition of the simple + <code class="computeroutput"><span class="special">+=</span></code> and <code class="computeroutput"><span class="special">*=</span></code> + operators are sufficient. Having defined such a point type, we can easily + perform the integration on a Lorenz system by using the <code class="computeroutput"><span class="identifier">vector_space_algebra</span></code> again: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">sigma</span> <span class="special">=</span> <span class="number">10.0</span><span class="special">;</span> +<span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">R</span> <span class="special">=</span> <span class="number">28.0</span><span class="special">;</span> +<span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">b</span> <span class="special">=</span> <span class="number">8.0</span> <span class="special">/</span> <span class="number">3.0</span><span class="special">;</span> + +<span class="keyword">void</span> <span class="identifier">lorenz</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">point3D</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">point3D</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span> +<span class="special">{</span> + <span class="identifier">dxdt</span><span class="special">.</span><span class="identifier">x</span> <span class="special">=</span> <span class="identifier">sigma</span> <span class="special">*</span> <span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">y</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">x</span> <span class="special">);</span> + <span class="identifier">dxdt</span><span class="special">.</span><span class="identifier">y</span> <span class="special">=</span> <span class="identifier">R</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">x</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">y</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">x</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">z</span><span class="special">;</span> + <span class="identifier">dxdt</span><span class="special">.</span><span class="identifier">z</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">b</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">z</span> <span class="special">+</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">x</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">y</span><span class="special">;</span> +<span class="special">}</span> + +<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">;</span> + +<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> +<span class="special">{</span> + + <span class="identifier">point3D</span> <span class="identifier">x</span><span class="special">(</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">5.0</span> <span class="special">,</span> <span class="number">5.0</span> <span class="special">);</span> + <span class="comment">// point type defines it's own operators -> use vector_space_algebra !</span> + <span class="keyword">typedef</span> <span class="identifier">runge_kutta_dopri5</span><span class="special"><</span> <span class="identifier">point3D</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">point3D</span> <span class="special">,</span> + <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">vector_space_algebra</span> <span class="special">></span> <span class="identifier">stepper</span><span class="special">;</span> + <span class="keyword">int</span> <span class="identifier">steps</span> <span class="special">=</span> <span class="identifier">integrate_adaptive</span><span class="special">(</span> <span class="identifier">make_controlled</span><span class="special"><</span><span class="identifier">stepper</span><span class="special">>(</span> <span class="number">1E-10</span> <span class="special">,</span> <span class="number">1E-10</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">lorenz</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> + <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.1</span> <span class="special">);</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">x</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"steps: "</span> <span class="special"><<</span> <span class="identifier">steps</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> +<span class="special">}</span> +</pre> +<p> + </p> +<p> + The whole example can be found in <a href="../../../../../../../libs/numeric/odeint/examples/lorenz_point.cpp" target="_top">lorenz_point.cpp</a> + </p> +</div> +</div> +<p> + gsl_vector, gsl_matrix, ublas::matrix, blitz::matrix, thrust + </p> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.adapt_your_own_operations"></a><a class="link" href="state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.adapt_your_own_operations" title="Adapt your own operations">Adapt + your own operations</a> +</h4></div></div></div> +<p> + to be continued + </p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + thrust + </li> +<li class="listitem"> + gsl_complex + </li> +<li class="listitem"> + min, max, pow + </li> +</ul></div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="integrate_functions.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="using_boost__ref.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/steppers.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/steppers.html new file mode 100644 index 000000000..406f8783d --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/steppers.html @@ -0,0 +1,2364 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Steppers</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../odeint_in_detail.html" title="odeint in detail"> +<link rel="prev" href="../odeint_in_detail.html" title="odeint in detail"> +<link rel="next" href="generation_functions.html" title="Generation functions"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="generation_functions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.steppers"></a><a class="link" href="steppers.html" title="Steppers">Steppers</a> +</h3></div></div></div> +<div class="toc"><dl class="toc"> +<dt><span class="section"><a href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.explicit_steppers">Explicit + steppers</a></span></dt> +<dt><span class="section"><a href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.symplectic_solvers">Symplectic + solvers</a></span></dt> +<dt><span class="section"><a href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.implicit_solvers">Implicit + solvers</a></span></dt> +<dt><span class="section"><a href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.multistep_methods">Multistep + methods</a></span></dt> +<dt><span class="section"><a href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.controlled_steppers">Controlled + steppers</a></span></dt> +<dt><span class="section"><a href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.dense_output_steppers">Dense + output steppers</a></span></dt> +<dt><span class="section"><a href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.using_steppers">Using + steppers</a></span></dt> +<dt><span class="section"><a href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.stepper_overview">Stepper + overview</a></span></dt> +<dt><span class="section"><a href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers">Custom + steppers</a></span></dt> +<dt><span class="section"><a href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers">Custom + Runge-Kutta steppers</a></span></dt> +</dl></div> +<p> + Solving ordinary differential equation numerically is usually done iteratively, + that is a given state of an ordinary differential equation is iterated forward + <span class="emphasis"><em>x(t) -> x(t+dt) -> x(t+2dt)</em></span>. The steppers in odeint + perform one single step. The most general stepper type is described by the + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> concept. + The stepper concepts of odeint are described in detail in section <a class="link" href="../concepts.html" title="Concepts">Concepts</a>, + here we briefly present the mathematical and numerical details of the steppers. + The <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + has two versions of the <code class="computeroutput"><span class="identifier">do_step</span></code> + method, one with an in-place transform of the current state and one with + an out-of-place transform: + </p> +<p> + <code class="computeroutput"><span class="identifier">do_step</span><span class="special">(</span> + <span class="identifier">sys</span> <span class="special">,</span> + <span class="identifier">inout</span> <span class="special">,</span> + <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">)</span></code> + </p> +<p> + <code class="computeroutput"><span class="identifier">do_step</span><span class="special">(</span> + <span class="identifier">sys</span> <span class="special">,</span> + <span class="identifier">in</span> <span class="special">,</span> + <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">out</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">)</span></code> + </p> +<p> + The first parameter is always the system function - a function describing + the ODE. In the first version the second parameter is the step which is here + updated in-place and the third and the fourth parameters are the time and + step size (the time step). After a call to <code class="computeroutput"><span class="identifier">do_step</span></code> + the state <code class="computeroutput"><span class="identifier">inout</span></code> is updated + and now represents an approximate solution of the ODE at time <span class="emphasis"><em>t+dt</em></span>. + In the second version the second argument is the state of the ODE at time + <span class="emphasis"><em>t</em></span>, the third argument is t, the fourth argument is the + approximate solution at time <span class="emphasis"><em>t+dt</em></span> which is filled by + <code class="computeroutput"><span class="identifier">do_step</span></code> and the fifth argument + is the time step. Note that these functions do not change the time <code class="computeroutput"><span class="identifier">t</span></code>. + </p> +<p> + <span class="bold"><strong>System functions</strong></span> + </p> +<p> + Up to now, we have nothing said about the system function. This function + depends on the stepper. For the explicit Runge-Kutta steppers this function + can be a simple callable object hence a simple (global) C-function or a functor. + The parameter syntax is <code class="computeroutput"><span class="identifier">sys</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">,</span> + <span class="identifier">dxdt</span> <span class="special">,</span> + <span class="identifier">t</span> <span class="special">)</span></code> + and it is assumed that it calculates <span class="emphasis"><em>dx/dt = f(x,t)</em></span>. + The function structure in most cases looks like: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">sys</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span> <span class="comment">/*x*/</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span> <span class="comment">/*dxdt*/</span> <span class="special">,</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="comment">/*t*/</span> <span class="special">)</span> +<span class="special">{</span> + <span class="comment">// ...</span> +<span class="special">}</span> +</pre> +<p> + </p> +<p> + Other types of system functions might represent Hamiltonian systems or systems + which also compute the Jacobian needed in implicit steppers. For information + which stepper uses which system function see the stepper table below. It + might be possible that odeint will introduce new system types in near future. + Since the system function is strongly related to the stepper type, such an + introduction of a new stepper might result in a new type of system function. + </p> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.steppers.explicit_steppers"></a><a class="link" href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.explicit_steppers" title="Explicit steppers">Explicit + steppers</a> +</h4></div></div></div> +<p> + A first specialization are the explicit steppers. Explicit means that the + new state of the ode can be computed explicitly from the current state + without solving implicit equations. Such steppers have in common that they + evaluate the system at time <span class="emphasis"><em>t</em></span> such that the result + of <span class="emphasis"><em>f(x,t)</em></span> can be passed to the stepper. In odeint, + the explicit stepper have two additional methods + </p> +<p> + <code class="computeroutput"><span class="identifier">do_step</span><span class="special">(</span> + <span class="identifier">sys</span> <span class="special">,</span> + <span class="identifier">inout</span> <span class="special">,</span> + <span class="identifier">dxdtin</span> <span class="special">,</span> + <span class="identifier">t</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">)</span></code> + </p> +<p> + <code class="computeroutput"><span class="identifier">do_step</span><span class="special">(</span> + <span class="identifier">sys</span> <span class="special">,</span> + <span class="identifier">in</span> <span class="special">,</span> + <span class="identifier">dxdtin</span> <span class="special">,</span> + <span class="identifier">t</span> <span class="special">,</span> + <span class="identifier">out</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">)</span></code> + </p> +<p> + Here, the additional parameter is the value of the function <span class="emphasis"><em>f</em></span> + at state <span class="emphasis"><em>x</em></span> and time <span class="emphasis"><em>t</em></span>. An example + is the Runge-Kutta stepper of fourth order: + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">runge_kutta4</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <span class="identifier">rk</span><span class="special">;</span> +<span class="identifier">rk</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys1</span> <span class="special">,</span> <span class="identifier">inout</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> <span class="comment">// In-place transformation of inout</span> +<span class="identifier">rk</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys2</span> <span class="special">,</span> <span class="identifier">inout</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> <span class="comment">// call with different system: Ok</span> +<span class="identifier">rk</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys1</span> <span class="special">,</span> <span class="identifier">in</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">out</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> <span class="comment">// Out-of-place transformation</span> +<span class="identifier">rk</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys1</span> <span class="special">,</span> <span class="identifier">inout</span> <span class="special">,</span> <span class="identifier">dxdtin</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> <span class="comment">// In-place tranformation of inout</span> +<span class="identifier">rk</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys1</span> <span class="special">,</span> <span class="identifier">in</span> <span class="special">,</span> <span class="identifier">dxdtin</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">out</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> <span class="comment">// Out-of-place transformation</span> +</pre> +<p> + </p> +<p> + In fact, you do not need to call these two methods. You can always use + the simpler <code class="computeroutput"><span class="identifier">do_step</span><span class="special">(</span> + <span class="identifier">sys</span> <span class="special">,</span> + <span class="identifier">inout</span> <span class="special">,</span> + <span class="identifier">t</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">)</span></code>, + but sometimes the derivative of the state is needed externally to do some + external computations or to perform some statistical analysis. + </p> +<p> + A special class of the explicit steppers are the FSAL (first-same-as-last) + steppers, where the last evaluation of the system function is also the + first evaluation of the following step. For such steppers the <code class="computeroutput"><span class="identifier">do_step</span></code> method are slightly different: + </p> +<p> + <code class="computeroutput"><span class="identifier">do_step</span><span class="special">(</span> + <span class="identifier">sys</span> <span class="special">,</span> + <span class="identifier">inout</span> <span class="special">,</span> + <span class="identifier">dxdtinout</span> <span class="special">,</span> + <span class="identifier">t</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">)</span></code> + </p> +<p> + <code class="computeroutput"><span class="identifier">do_step</span><span class="special">(</span> + <span class="identifier">sys</span> <span class="special">,</span> + <span class="identifier">in</span> <span class="special">,</span> + <span class="identifier">dxdtin</span> <span class="special">,</span> + <span class="identifier">out</span> <span class="special">,</span> + <span class="identifier">dxdtout</span> <span class="special">,</span> + <span class="identifier">t</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">)</span></code> + </p> +<p> + This method takes the derivative at time <code class="computeroutput"><span class="identifier">t</span></code> + and also stores the derivative at time <span class="emphasis"><em>t+dt</em></span>. Calling + these functions subsequently iterating along the solution one saves one + function call by passing the result for dxdt into the next function call. + However, when using FSAL steppers without supplying derivatives: + </p> +<p> + <code class="computeroutput"><span class="identifier">do_step</span><span class="special">(</span> + <span class="identifier">sys</span> <span class="special">,</span> + <span class="identifier">inout</span> <span class="special">,</span> + <span class="identifier">t</span> <span class="special">,</span> + <span class="identifier">dt</span> <span class="special">)</span></code> + </p> +<p> + the stepper internally satisfies the FSAL property which means it remembers + the last <code class="computeroutput"><span class="identifier">dxdt</span></code> and uses + it for the next step. An example for a FSAL stepper is the Runge-Kutta-Dopri5 + stepper. The FSAL trick is sometimes also referred as the Fehlberg trick. + An example how the FSAL steppers can be used is + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">runge_kutta_dopri5</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <span class="identifier">rk</span><span class="special">;</span> +<span class="identifier">rk</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys1</span> <span class="special">,</span> <span class="identifier">in</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">out</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +<span class="identifier">rk</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys2</span> <span class="special">,</span> <span class="identifier">in</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">out</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> <span class="comment">// DONT do this, sys1 is assumed</span> + +<span class="identifier">rk</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys2</span> <span class="special">,</span> <span class="identifier">in2</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">out</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +<span class="identifier">rk</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys2</span> <span class="special">,</span> <span class="identifier">in3</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">out</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> <span class="comment">// DONT do this, in2 is assumed</span> + +<span class="identifier">rk</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys1</span> <span class="special">,</span> <span class="identifier">inout</span> <span class="special">,</span> <span class="identifier">dxdtinout</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +<span class="identifier">rk</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys2</span> <span class="special">,</span> <span class="identifier">inout</span> <span class="special">,</span> <span class="identifier">dxdtinout</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> <span class="comment">// Ok, internal derivative is not used, dxdtinout is updated</span> + +<span class="identifier">rk</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys1</span> <span class="special">,</span> <span class="identifier">in</span> <span class="special">,</span> <span class="identifier">dxdtin</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">out</span> <span class="special">,</span> <span class="identifier">dxdtout</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +<span class="identifier">rk</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys2</span> <span class="special">,</span> <span class="identifier">in</span> <span class="special">,</span> <span class="identifier">dxdtin</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">out</span> <span class="special">,</span> <span class="identifier">dxdtout</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> <span class="comment">// Ok, internal derivative is not used</span> +</pre> +<p> + </p> +<div class="caution"><table border="0" summary="Caution"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../../../../../doc/src/images/caution.png"></td> +<th align="left">Caution</th> +</tr> +<tr><td align="left" valign="top"><p> + The FSAL-steppers save the derivative at time <span class="emphasis"><em>t+dt</em></span> + internally if they are called via <code class="computeroutput"><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">in</span> <span class="special">,</span> <span class="identifier">out</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">)</span></code>. The first call of <code class="computeroutput"><span class="identifier">do_step</span></code> + will initialize <code class="computeroutput"><span class="identifier">dxdt</span></code> + and for all following calls it is assumed that the same system and the + same state are used. If you use the FSAL stepper within the integrate + functions this is taken care of automatically. See the <a class="link" href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.using_steppers" title="Using steppers">Using + steppers</a> section for more details or look into the table below + to see which stepper have an internal state. + </p></td></tr> +</table></div> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.steppers.symplectic_solvers"></a><a class="link" href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.symplectic_solvers" title="Symplectic solvers">Symplectic + solvers</a> +</h4></div></div></div> +<p> + As mentioned above symplectic solvers are used for Hamiltonian systems. + Symplectic solvers conserve the phase space volume exactly and if the Hamiltonian + system is energy conservative they also conserve the energy approximately. + A special class of symplectic systems are separable systems which can be + written in the form <span class="emphasis"><em>dqdt/dt = f1(p)</em></span>, <span class="emphasis"><em>dpdt/dt + = f2(q)</em></span>, where <span class="emphasis"><em>(q,p)</em></span> are the state of system. + The space of <span class="emphasis"><em>(q,p)</em></span> is sometimes referred as the phase + space and <span class="emphasis"><em>q</em></span> and <span class="emphasis"><em>p</em></span> are said the + be the phase space variables. Symplectic systems in this special form occur + widely in nature. For example the complete classical mechanics as written + down by Newton, Lagrange and Hamilton can be formulated in this framework. + The separability of the system depends on the specific choice of coordinates. + </p> +<p> + Symplectic systems can be solved by odeint by means of the symplectic_euler + stepper and a symplectic Runge-Kutta-Nystrom method of fourth order. These + steppers assume that the system is autonomous, hence the time will not + explicitly occur. Further they fulfill in principle the default Stepper + concept, but they expect the system to be a pair of callable objects. The + first entry of this pair calculates <span class="emphasis"><em>f1(p)</em></span> while the + second calculates <span class="emphasis"><em>f2(q)</em></span>. The syntax is <code class="computeroutput"><span class="identifier">sys</span><span class="special">.</span><span class="identifier">first</span><span class="special">(</span><span class="identifier">p</span><span class="special">,</span><span class="identifier">dqdt</span><span class="special">)</span></code> and <code class="computeroutput"><span class="identifier">sys</span><span class="special">.</span><span class="identifier">second</span><span class="special">(</span><span class="identifier">q</span><span class="special">,</span><span class="identifier">dpdt</span><span class="special">)</span></code>, + where the first and second part can be again simple C-functions of functors. + An example is the harmonic oscillator: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="number">1</span> <span class="special">></span> <span class="identifier">vector_type</span><span class="special">;</span> + + +<span class="keyword">struct</span> <span class="identifier">harm_osc_f1</span> +<span class="special">{</span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">vector_type</span> <span class="special">&</span><span class="identifier">p</span> <span class="special">,</span> <span class="identifier">vector_type</span> <span class="special">&</span><span class="identifier">dqdt</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">dqdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">p</span><span class="special">[</span><span class="number">0</span><span class="special">];</span> + <span class="special">}</span> +<span class="special">};</span> + +<span class="keyword">struct</span> <span class="identifier">harm_osc_f2</span> +<span class="special">{</span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">vector_type</span> <span class="special">&</span><span class="identifier">q</span> <span class="special">,</span> <span class="identifier">vector_type</span> <span class="special">&</span><span class="identifier">dpdt</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">dpdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">q</span><span class="special">[</span><span class="number">0</span><span class="special">];</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + The state of such an ODE consist now also of two parts, the part for q + (also called the coordinates) and the part for p (the momenta). The full + example for the harmonic oscillator is now: + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">vector_type</span> <span class="special">,</span> <span class="identifier">vector_type</span> <span class="special">></span> <span class="identifier">x</span><span class="special">;</span> +<span class="identifier">x</span><span class="special">.</span><span class="identifier">first</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="number">1.0</span><span class="special">;</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">second</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> +<span class="identifier">symplectic_rkn_sb3a_mclachlan</span><span class="special"><</span> <span class="identifier">vector_type</span> <span class="special">></span> <span class="identifier">rkn</span><span class="special">;</span> +<span class="identifier">rkn</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">make_pair</span><span class="special">(</span> <span class="identifier">harm_osc_f1</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">harm_osc_f2</span><span class="special">()</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + If you like to represent the system with one class you can easily bind + two public method: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">harm_osc</span> +<span class="special">{</span> + <span class="keyword">void</span> <span class="identifier">f1</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">vector_type</span> <span class="special">&</span><span class="identifier">p</span> <span class="special">,</span> <span class="identifier">vector_type</span> <span class="special">&</span><span class="identifier">dqdt</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="identifier">dqdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">p</span><span class="special">[</span><span class="number">0</span><span class="special">];</span> + <span class="special">}</span> + + <span class="keyword">void</span> <span class="identifier">f2</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">vector_type</span> <span class="special">&</span><span class="identifier">q</span> <span class="special">,</span> <span class="identifier">vector_type</span> <span class="special">&</span><span class="identifier">dpdt</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="identifier">dpdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">q</span><span class="special">[</span><span class="number">0</span><span class="special">];</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">harm_osc</span> <span class="identifier">h</span><span class="special">;</span> +<span class="identifier">rkn</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">make_pair</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(</span> <span class="special">&</span><span class="identifier">harm_osc</span><span class="special">::</span><span class="identifier">f1</span> <span class="special">,</span> <span class="identifier">h</span> <span class="special">,</span> <span class="identifier">_1</span> <span class="special">,</span> <span class="identifier">_2</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(</span> <span class="special">&</span><span class="identifier">harm_osc</span><span class="special">::</span><span class="identifier">f2</span> <span class="special">,</span> <span class="identifier">h</span> <span class="special">,</span> <span class="identifier">_1</span> <span class="special">,</span> <span class="identifier">_2</span> <span class="special">)</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + Many Hamiltonian system can be written as <span class="emphasis"><em>dq/dt=p</em></span>, + <span class="emphasis"><em>dp/dt=f(q)</em></span> which is computationally much easier than + the full separable system. Very often, it is also possible to transform + the original equations of motion to bring the system in this simplified + form. This kind of system can be used in the symplectic solvers, by simply + passing <span class="emphasis"><em>f(p)</em></span> to the <code class="computeroutput"><span class="identifier">do_step</span></code> + method, again <span class="emphasis"><em>f(p)</em></span> will be represented by a simple + C-function or a functor. Here, the above example of the harmonic oscillator + can be written as + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">vector_type</span> <span class="special">,</span> <span class="identifier">vector_type</span> <span class="special">></span> <span class="identifier">x</span><span class="special">;</span> +<span class="identifier">x</span><span class="special">.</span><span class="identifier">first</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="number">1.0</span><span class="special">;</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">second</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> +<span class="identifier">symplectic_rkn_sb3a_mclachlan</span><span class="special"><</span> <span class="identifier">vector_type</span> <span class="special">></span> <span class="identifier">rkn</span><span class="special">;</span> +<span class="identifier">rkn</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">harm_osc_f1</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + In this example the function <code class="computeroutput"><span class="identifier">harm_osc_f1</span></code> + is exactly the same function as in the above examples. + </p> +<p> + Note, that the state of the ODE must not be constructed explicitly via + <code class="computeroutput"><span class="identifier">pair</span><span class="special"><</span> + <span class="identifier">vector_type</span> <span class="special">,</span> + <span class="identifier">vector_type</span> <span class="special">></span> + <span class="identifier">x</span></code>. One can also use a combination + of <code class="computeroutput"><span class="identifier">make_pair</span></code> and <code class="computeroutput"><span class="identifier">ref</span></code>. Furthermore, a convenience version + of <code class="computeroutput"><span class="identifier">do_step</span></code> exists which + takes q and p without combining them into a pair: + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">rkn</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">harm_osc_f1</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">make_pair</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span> <span class="identifier">q</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span> <span class="identifier">p</span> <span class="special">)</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +<span class="identifier">rkn</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">harm_osc_f1</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">q</span> <span class="special">,</span> <span class="identifier">p</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +<span class="identifier">rkn</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">make_pair</span><span class="special">(</span> <span class="identifier">harm_osc_f1</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">harm_osc_f2</span><span class="special">()</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">q</span> <span class="special">,</span> <span class="identifier">p</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +</pre> +<p> + </p> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.steppers.implicit_solvers"></a><a class="link" href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.implicit_solvers" title="Implicit solvers">Implicit + solvers</a> +</h4></div></div></div> +<div class="caution"><table border="0" summary="Caution"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../../../../../doc/src/images/caution.png"></td> +<th align="left">Caution</th> +</tr> +<tr><td align="left" valign="top"><p> + This section is not up-to-date. + </p></td></tr> +</table></div> +<p> + For some kind of systems the stability properties of the classical Runge-Kutta + are not sufficient, especially if the system is said to be stiff. A stiff + system possesses two or more time scales of very different order. Solvers + for stiff systems are usually implicit, meaning that they solve equations + like <span class="emphasis"><em>x(t+dt) = x(t) + dt * f(x(t+1))</em></span>. This particular + scheme is the implicit Euler method. Implicit methods usually solve the + system of equations by a root finding algorithm like the Newton method + and therefore need to know the Jacobian of the system <span class="emphasis"><em>J<sub>​ij</sub> = df<sub>​i</sub> / + dx<sub>​j</sub></em></span>. + </p> +<p> + For implicit solvers the system is again a pair, where the first component + computes <span class="emphasis"><em>f(x,t)</em></span> and the second the Jacobian. The syntax + is <code class="computeroutput"><span class="identifier">sys</span><span class="special">.</span><span class="identifier">first</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">dxdt</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">)</span></code> and + <code class="computeroutput"><span class="identifier">sys</span><span class="special">.</span><span class="identifier">second</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">J</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">)</span></code>. + For the implicit solver the <code class="computeroutput"><span class="identifier">state_type</span></code> + is <code class="computeroutput"><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">vector</span></code> and the Jacobian is represented + by <code class="computeroutput"><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">matrix</span></code>. + </p> +<div class="important"><table border="0" summary="Important"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../../../../doc/src/images/important.png"></td> +<th align="left">Important</th> +</tr> +<tr><td align="left" valign="top"><p> + Implicit solvers only work with ublas::vector as state type. At the moment, + no other state types are supported. + </p></td></tr> +</table></div> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.steppers.multistep_methods"></a><a class="link" href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.multistep_methods" title="Multistep methods">Multistep + methods</a> +</h4></div></div></div> +<p> + Another large class of solvers are multi-step method. They save a small + part of the history of the solution and compute the next step with the + help of this history. Since multi-step methods know a part of their history + they do not need to compute the system function very often, usually it + is only computed once. This makes multi-step methods preferable if a call + of the system function is expensive. Examples are ODEs defined on networks, + where the computation of the interaction is usually where expensive (and + might be of order O(N^2)). + </p> +<p> + Multi-step methods differ from the normal steppers. They save a part of + their history and this part has to be explicitly calculated and initialized. + In the following example an Adams-Bashforth-stepper with a history of 5 + steps is instantiated and initialized; + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">adams_bashforth_moulton</span><span class="special"><</span> <span class="number">5</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">></span> <span class="identifier">abm</span><span class="special">;</span> +<span class="identifier">abm</span><span class="special">.</span><span class="identifier">initialize</span><span class="special">(</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">inout</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +<span class="identifier">abm</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">inout</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + The initialization uses a fourth-order Runge-Kutta stepper and after the + call of <code class="computeroutput"><span class="identifier">initialize</span></code> the + state of <code class="computeroutput"><span class="identifier">inout</span></code> has changed + to the current state, such that it can be immediately used by passing it + to following calls of <code class="computeroutput"><span class="identifier">do_step</span></code>. + You can also use you own steppers to initialize the internal state of the + Adams-Bashforth-Stepper: + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">abm</span><span class="special">.</span><span class="identifier">initialize</span><span class="special">(</span> <span class="identifier">runge_kutta_fehlberg78</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">>()</span> <span class="special">,</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">inout</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + Many multi-step methods are also explicit steppers, hence the parameter + of <code class="computeroutput"><span class="identifier">do_step</span></code> method do not + differ from the explicit steppers. + </p> +<div class="caution"><table border="0" summary="Caution"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../../../../../doc/src/images/caution.png"></td> +<th align="left">Caution</th> +</tr> +<tr><td align="left" valign="top"><p> + The multi-step methods have some internal variables which depend on the + explicit solution. Hence after any external changes of your state (e.g. + size) or system the initialize function has to be called again to adjust + the internal state of the stepper. If you use the integrate functions + this will be taken into account. See the <a class="link" href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.using_steppers" title="Using steppers">Using + steppers</a> section for more details. + </p></td></tr> +</table></div> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.steppers.controlled_steppers"></a><a class="link" href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.controlled_steppers" title="Controlled steppers">Controlled + steppers</a> +</h4></div></div></div> +<p> + Many of the above introduced steppers possess the possibility to use adaptive + step-size control. Adaptive step size integration works in principle as + follows: + </p> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> + The error of one step is calculated. This is usually done by performing + two steps with different orders. The difference between these two steps + is then used as a measure for the error. Stepper which can calculate + the error are <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error + Stepper</a> and they form an own class with an separate concept. + </li> +<li class="listitem"> + This error is compared against some predefined error tolerances. Are + the tolerance violated the step is reject and the step-size is decreases. + Otherwise the step is accepted and possibly the step-size is increased. + </li> +</ol></div> +<p> + The class of controlled steppers has their own concept in odeint - the + <a class="link" href="../concepts/controlled_stepper.html" title="Controlled Stepper">Controlled + Stepper</a> concept. They are usually constructed from the underlying + error steppers. An example is the controller for the explicit Runge-Kutta + steppers. The Runge-Kutta steppers enter the controller as a template argument. + Additionally one can pass the Runge-Kutta stepper to the constructor, but + this step is not necessary; the stepper is default-constructed if possible. + </p> +<p> + Different step size controlling mechanism exist. They all have in common + that they somehow compare predefined error tolerance against the error + and that they might reject or accept a step. If a step is rejected the + step size is usually decreased and the step is made again with the reduced + step size. This procedure is repeated until the step is accepted. This + algorithm is implemented in the integration functions. + </p> +<p> + A classical way to decide whether a step is rejected or accepted is to + calculate + </p> +<p> + <span class="emphasis"><em>val = || | err<sub>​i</sub> | / ( ε<sub>​abs</sub> + ε<sub>​rel</sub> * ( a<sub>​x</sub> | x<sub>​i</sub> | + a<sub>​dxdt</sub> | | dxdt<sub>​i</sub> | )|| + </em></span> + </p> +<p> + <span class="emphasis"><em>ε<sub>​abs</sub></em></span> and <span class="emphasis"><em>ε<sub>​rel</sub></em></span> are the absolute + and the relative error tolerances, and <span class="emphasis"><em>|| x ||</em></span> is + a norm, typically <span class="emphasis"><em>||x||=(Σ<sub>​i</sub> x<sub>​i</sub><sup>2</sup>)<sup>1/2</sup></em></span> or the maximum norm. + The step is rejected if <span class="emphasis"><em>val</em></span> is greater then 1, otherwise + it is accepted. For details of the used norms and error tolerance see the + table below. + </p> +<p> + For the <code class="computeroutput"><span class="identifier">controlled_runge_kutta</span></code> + stepper the new step size is then calculated via + </p> +<p> + <span class="emphasis"><em>val > 1 : dt<sub>​new</sub> = dt<sub>​current</sub> max( 0.9 pow( val , -1 / ( O<sub>​E</sub> - 1 + ) ) , 0.2 )</em></span> + </p> +<p> + <span class="emphasis"><em>val < 0.5 : dt<sub>​new</sub> = dt<sub>​current</sub> min( 0.9 pow( val , -1 / O<sub>​S</sub> ) , + 5 )</em></span> + </p> +<p> + <span class="emphasis"><em>else : dt<sub>​new</sub> = dt<sub>​current</sub></em></span> + </p> +<p> + Here, <span class="emphasis"><em>O<sub>​S</sub></em></span> and <span class="emphasis"><em>O<sub>​E</sub></em></span> are the order + of the stepper and the error stepper. These formulas also contain some + safety factors, avoiding that the step size is reduced or increased to + much. For details of the implementations of the controlled steppers in + odeint see the table below. + </p> +<div class="table"> +<a name="boost_numeric_odeint.odeint_in_detail.steppers.controlled_steppers.adaptive_step_size_algorithms"></a><p class="title"><b>Table 1.5. Adaptive step size algorithms</b></p> +<div class="table-contents"><table class="table" summary="Adaptive step size algorithms"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Stepper + </p> + </th> +<th> + <p> + Tolerance formula + </p> + </th> +<th> + <p> + Norm + </p> + </th> +<th> + <p> + Step size adaption + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">controlled_runge_kutta</span></code> + </p> + </td> +<td> + <p> + <span class="emphasis"><em>val = || | err<sub>​i</sub> | / ( ε<sub>​abs</sub> + ε<sub>​rel</sub> * ( a<sub>​x</sub> | x<sub>​i</sub> | + a<sub>​dxdt</sub> | | + dxdt<sub>​i</sub> | )|| </em></span> + </p> + </td> +<td> + <p> + <span class="emphasis"><em>||x|| = max( x<sub>​i</sub> )</em></span> + </p> + </td> +<td> + <p> + <span class="emphasis"><em>val > 1 : dt<sub>​new</sub> = dt<sub>​current</sub> max( 0.9 pow( val , -1 + / ( O<sub>​E</sub> - 1 ) ) , 0.2 )</em></span> + </p> + <p> + <span class="emphasis"><em>val < 0.5 : dt<sub>​new</sub> = dt<sub>​current</sub> min( 0.9 pow( val , + -1 / O<sub>​S</sub> ) , 5 )</em></span> + </p> + <p> + <span class="emphasis"><em>else : dt<sub>​new</sub> = dt<sub>​current</sub></em></span> + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">rosenbrock4_controller</span></code> + </p> + </td> +<td> + <p> + <span class="emphasis"><em>val = || err<sub>​i</sub> / ( ε<sub>​abs</sub> + ε<sub>​rel</sub> max( | x<sub>​i</sub> | , | xold<sub>​i</sub> | ) ) + || </em></span> + </p> + </td> +<td> + <p> + <span class="emphasis"><em>||x||=(Σ<sub>​i</sub> x<sub>​i</sub><sup>2</sup>)<sup>1/2</sup></em></span> + </p> + </td> +<td> + <p> + <span class="emphasis"><em>fac = max( 1 / 6 , min( 5 , pow( val , 1 / 4 ) / 0.9 + ) </em></span> + </p> + <p> + <span class="emphasis"><em>fac2 = max( 1 / 6 , min( 5 , dt<sub>​old</sub> / dt<sub>​current</sub> pow( val<sup>2</sup> / + val<sub>​old</sub> , 1 / 4 ) / 0.9 ) </em></span> + </p> + <p> + <span class="emphasis"><em>val > 1 : dt<sub>​new</sub> = dt<sub>​current</sub> / fac </em></span> + </p> + <p> + <span class="emphasis"><em>val < 1 : dt<sub>​new</sub> = dt<sub>​current</sub> / max( fac , fac2 ) </em></span> + </p> + </td> +</tr> +<tr> +<td> + <p> + bulirsch_stoer + </p> + </td> +<td> + <p> + <span class="emphasis"><em>tol=1/2</em></span> + </p> + </td> +<td> + <p> + - + </p> + </td> +<td> + <p> + <span class="emphasis"><em>dt<sub>​new</sub> = dt<sub>​old</sub><sup>1/a</sup></em></span> + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<br class="table-break"><p> + To ease to generation of the controlled stepper, generation functions exist + which take the absolute and relative error tolerances and a predefined + error stepper and construct from this knowledge an appropriate controlled + stepper. The generation functions are explained in detail in <a class="link" href="generation_functions.html" title="Generation functions">Generation + functions</a>. + </p> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.steppers.dense_output_steppers"></a><a class="link" href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.dense_output_steppers" title="Dense output steppers">Dense + output steppers</a> +</h4></div></div></div> +<p> + A fourth class of stepper exists which are the so called dense output steppers. + Dense-output steppers might take larger steps and interpolate the solution + between two consecutive points. This interpolated points have usually the + same order as the order of the stepper. Dense-output steppers are often + composite stepper which take the underlying method as a template parameter. + An example is the <code class="computeroutput"><span class="identifier">dense_output_runge_kutta</span></code> + stepper which takes a Runge-Kutta stepper with dense-output facilities + as argument. Not all Runge-Kutta steppers provide dense-output calculation; + at the moment only the Dormand-Prince 5 stepper provides dense output. + An example is + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">dense_output_runge_kutta</span><span class="special"><</span> <span class="identifier">controlled_runge_kutta</span><span class="special"><</span> <span class="identifier">runge_kutta_dopri5</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <span class="special">></span> <span class="special">></span> <span class="identifier">dense</span><span class="special">;</span> +<span class="identifier">dense</span><span class="special">.</span><span class="identifier">initialize</span><span class="special">(</span> <span class="identifier">in</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +<span class="identifier">pair</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">times</span> <span class="special">=</span> <span class="identifier">dense</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + Dense output stepper have their own concept. The main difference to usual + steppers is that they manage the state and time internally. If you call + <code class="computeroutput"><span class="identifier">do_step</span></code>, only the ODE is + passed as argument. Furthermore <code class="computeroutput"><span class="identifier">do_step</span></code> + return the last time interval: <code class="computeroutput"><span class="identifier">t</span></code> + and <code class="computeroutput"><span class="identifier">t</span><span class="special">+</span><span class="identifier">dt</span></code>, hence you can interpolate the solution + between these two times points. Another difference is that they must be + initialized with <code class="computeroutput"><span class="identifier">initialize</span></code>, + otherwise the internal state of the stepper is default constructed which + might produce funny errors or bugs. + </p> +<p> + The construction of the dense output stepper looks a little bit nasty, + since in the case of the <code class="computeroutput"><span class="identifier">dense_output_runge_kutta</span></code> + stepper a controlled stepper and an error stepper have to be nested. To + simplify the generation of the dense output stepper generation functions + exist: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">make_dense_output</span><span class="special"><</span> + <span class="identifier">runge_kutta_dopri5</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">dense_stepper_type</span><span class="special">;</span> +<span class="identifier">dense_stepper_type</span> <span class="identifier">dense2</span> <span class="special">=</span> <span class="identifier">make_dense_output</span><span class="special">(</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="identifier">runge_kutta_dopri5</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">>()</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + This statement is also lengthy; it demonstrates how <code class="computeroutput"><span class="identifier">make_dense_output</span></code> + can be used with the <code class="computeroutput"><span class="identifier">result_of</span></code> + protocol. The parameters to <code class="computeroutput"><span class="identifier">make_dense_output</span></code> + are the absolute error tolerance, the relative error tolerance and the + stepper. This explicitly assumes that the underlying stepper is a controlled + stepper and that this stepper has an absolute and a relative error tolerance. + For details about the generation functions see <a class="link" href="generation_functions.html" title="Generation functions">Generation + functions</a>. The generation functions have been designed for easy + use with the integrate functions: + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">make_dense_output</span><span class="special">(</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="identifier">runge_kutta_dopri5</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">>()</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">inout</span> <span class="special">,</span> <span class="identifier">t_start</span> <span class="special">,</span> <span class="identifier">t_end</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +</pre> +<p> + </p> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.steppers.using_steppers"></a><a class="link" href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.using_steppers" title="Using steppers">Using + steppers</a> +</h4></div></div></div> +<p> + This section contains some general information about the usage of the steppers + in odeint. + </p> +<p> + <span class="bold"><strong>Steppers are copied by value</strong></span> + </p> +<p> + The stepper in odeint are always copied by values. They are copied for + the creation of the controlled steppers or the dense output steppers as + well as in the integrate functions. + </p> +<p> + <span class="bold"><strong>Steppers might have a internal state</strong></span> + </p> +<div class="caution"><table border="0" summary="Caution"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../../../../../doc/src/images/caution.png"></td> +<th align="left">Caution</th> +</tr> +<tr><td align="left" valign="top"><p> + Some of the features described in this section are not yet implemented + </p></td></tr> +</table></div> +<p> + Some steppers require to store some information about the state of the + ODE between two steps. Examples are the multi-step methods which store + a part of the solution during the evolution of the ODE, or the FSAL steppers + which store the last derivative at time <span class="emphasis"><em>t+dt</em></span>, to be + used in the next step. In both cases the steppers expect that consecutive + calls of <code class="computeroutput"><span class="identifier">do_step</span></code> are from + the same solution and the same ODE. In this case it is absolutely necessary + that you call <code class="computeroutput"><span class="identifier">do_step</span></code> with + the same system function and the same state, see also the examples for + the FSAL steppers above. + </p> +<p> + Stepper with an internal state support two additional methods: <code class="computeroutput"><span class="identifier">reset</span></code> which resets the state and <code class="computeroutput"><span class="identifier">initialize</span></code> which initializes the internal + state. The parameters of <code class="computeroutput"><span class="identifier">initialize</span></code> + depend on the specific stepper. For example the Adams-Bashforth-Moulton + stepper provides two initialize methods: <code class="computeroutput"><span class="identifier">initialize</span><span class="special">(</span> <span class="identifier">system</span> <span class="special">,</span> <span class="identifier">inout</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">)</span></code> which initializes the internal states + with the help of the Runge-Kutta 4 stepper, and <code class="computeroutput"><span class="identifier">initialize</span><span class="special">(</span> <span class="identifier">stepper</span> <span class="special">,</span> <span class="identifier">system</span> <span class="special">,</span> <span class="identifier">inout</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">)</span></code> which initializes with the help of <code class="computeroutput"><span class="identifier">stepper</span></code>. For the case of the FSAL steppers, + <code class="computeroutput"><span class="identifier">initialize</span></code> is <code class="computeroutput"><span class="identifier">initialize</span><span class="special">(</span> + <span class="identifier">sys</span> <span class="special">,</span> + <span class="identifier">in</span> <span class="special">,</span> + <span class="identifier">t</span> <span class="special">)</span></code> + which simply calculates the r.h.s. of the ODE and assigns its value to + the internal derivative. + </p> +<p> + All these steppers have in common, that they initially fill their internal + state by themselves. Hence you are not required to call initialize. See + how this works for the Adams-Bashforth-Moulton stepper: in the example + we instantiate a fourth order Adams-Bashforth-Moulton stepper, meaning + that it will store 4 internal derivatives of the solution at times <code class="computeroutput"><span class="special">(</span><span class="identifier">t</span><span class="special">-</span><span class="identifier">dt</span><span class="special">,</span><span class="identifier">t</span><span class="special">-</span><span class="number">2</span><span class="special">*</span><span class="identifier">dt</span><span class="special">,</span><span class="identifier">t</span><span class="special">-</span><span class="number">3</span><span class="special">*</span><span class="identifier">dt</span><span class="special">,</span><span class="identifier">t</span><span class="special">-</span><span class="number">4</span><span class="special">*</span><span class="identifier">dt</span><span class="special">)</span></code>. + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">adams_bashforth_moulton</span><span class="special"><</span> <span class="number">4</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">></span> <span class="identifier">stepper</span><span class="special">;</span> +<span class="identifier">stepper</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> <span class="comment">// make one step with the classical Runge-Kutta stepper and initialize the first internal state</span> + <span class="comment">// the internal array is now [x(t-dt)]</span> + +<span class="identifier">stepper</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> <span class="comment">// make one step with the classical Runge-Kutta stepper and initialize the second internal state</span> + <span class="comment">// the internal state array is now [x(t-dt), x(t-2*dt)]</span> + +<span class="identifier">stepper</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> <span class="comment">// make one step with the classical Runge-Kutta stepper and initialize the third internal state</span> + <span class="comment">// the internal state array is now [x(t-dt), x(t-2*dt), x(t-3*dt)]</span> + +<span class="identifier">stepper</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> <span class="comment">// make one step with the classical Runge-Kutta stepper and initialize the fourth internal state</span> + <span class="comment">// the internal state array is now [x(t-dt), x(t-2*dt), x(t-3*dt), x(t-4*dt)]</span> + +<span class="identifier">stepper</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> <span class="comment">// make one step with Adam-Bashforth-Moulton, the internal array of states is now rotated</span> +</pre> +<p> + </p> +<p> + In the stepper table at the bottom of this page one can see which stepper + have an internal state and hence provide the <code class="computeroutput"><span class="identifier">reset</span></code> + and <code class="computeroutput"><span class="identifier">initialize</span></code> methods. + </p> +<p> + <span class="bold"><strong>Stepper might be resizable</strong></span> + </p> +<p> + Nearly all steppers in odeint need to store some intermediate results of + the type <code class="computeroutput"><span class="identifier">state_type</span></code> or + <code class="computeroutput"><span class="identifier">deriv_type</span></code>. To do so odeint + need some memory management for the internal temporaries. As this memory + management is typically related to adjusting the size of vector-like types, + it is called resizing in odeint. So, most steppers in odeint provide an + additional template parameter which controls the size adjustment of the + internal variables - the resizer. In detail odeint provides three policy + classes (resizers) <code class="computeroutput"><span class="identifier">always_resizer</span></code>, + <code class="computeroutput"><span class="identifier">initially_resizer</span></code>, and + <code class="computeroutput"><span class="identifier">never_resizer</span></code>. Furthermore, + all stepper have a method <code class="computeroutput"><span class="identifier">adjust_size</span></code> + which takes a parameter representing a state type and which manually adjusts + the size of the internal variables matching the size of the given instance. + Before performing the actual resizing odeint always checks if the sizes + of the state and the internal variable differ and only resizes if they + are different. + </p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p> + You only have to worry about memory allocation when using dynamically + sized vector types. If your state type is heap allocated, like <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code>, no memory allocation is required + whatsoever. + </p></td></tr> +</table></div> +<p> + By default the resizing parameter is <code class="computeroutput"><span class="identifier">initially_resizer</span></code>, + meaning that the first call to <code class="computeroutput"><span class="identifier">do_step</span></code> + performs the resizing, hence memory allocation. If you have changed the + size of your system and your state you have to call <code class="computeroutput"><span class="identifier">adjust_size</span></code> + by hand in this case. The second resizer is the <code class="computeroutput"><span class="identifier">always_resizer</span></code> + which tries to resize the internal variables at every call of <code class="computeroutput"><span class="identifier">do_step</span></code>. Typical use cases for this kind + of resizer are self expanding lattices like shown in the tutorial ( <a class="link" href="../tutorial/self_expanding_lattices.html" title="Self expanding lattices">Self expanding + lattices</a>) or partial differential equations with an adaptive grid. + Here, no calls of <code class="computeroutput"><span class="identifier">adjust_size</span></code> + are required, the steppers manage everything themselves. The third class + of resizer is the <code class="computeroutput"><span class="identifier">never_resizer</span></code> + which means that the internal variables are never adjusted automatically + and always have to be adjusted by hand . + </p> +<p> + There is a second mechanism which influences the resizing and which controls + if a state type is at least resizeable - a meta-function <code class="computeroutput"><span class="identifier">is_resizeable</span></code>. This meta-function returns + a static Boolean value if any type is resizable. For example it will return + <code class="computeroutput"><span class="keyword">true</span></code> for <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span></code> but <code class="computeroutput"><span class="keyword">false</span></code> + for <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span></code>. + By default and for unknown types <code class="computeroutput"><span class="identifier">is_resizeable</span></code> + returns <code class="computeroutput"><span class="keyword">false</span></code>, so if you have + your own type you need to specialize this meta-function. For more details + on the resizing mechanism see the section <a class="link" href="state_types__algebras_and_operations.html" title="State types, algebras and operations">Adapt + your own state types</a>. + </p> +<p> + <span class="bold"><strong>Which steppers should be used in which situation</strong></span> + </p> +<p> + odeint provides a quite large number of different steppers such that the + user is left with the question of which stepper fits his needs. Our personal + recommendations are: + </p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">runge_kutta_dopri5</span></code> + is maybe the best default stepper. It has step size control as well + as dense-output functionality. Simple create a dense-output stepper + by <code class="computeroutput"><span class="identifier">make_dense_output</span><span class="special">(</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="number">1.0e-5</span> <span class="special">,</span> <span class="identifier">runge_kutta_dopri5</span><span class="special"><</span> <span class="identifier">state_type</span> + <span class="special">>()</span> <span class="special">)</span></code>. + </li> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">runge_kutta4</span></code> is a good + stepper for constant step sizes. It is widely used and very well known. + If you need to create artificial time series this stepper should be + the first choice. + </li> +<li class="listitem"> + 'runge_kutta_fehlberg78' is similar to the 'runge_kutta4' with the + advantage that it has higher precision. It can also be used with step + size control. + </li> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">adams_bashforth_moulton</span></code> + is very well suited for ODEs where the r.h.s. is expensive (in terms + of computation time). It will calculate the system function only once + during each step. + </li> +</ul></div> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.steppers.stepper_overview"></a><a class="link" href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.stepper_overview" title="Stepper overview">Stepper + overview</a> +</h4></div></div></div> +<div class="table"> +<a name="boost_numeric_odeint.odeint_in_detail.steppers.stepper_overview.stepper_algorithms"></a><p class="title"><b>Table 1.6. Stepper Algorithms</b></p> +<div class="table-contents"><table class="table" summary="Stepper Algorithms"> +<colgroup> +<col> +<col> +<col> +<col> +<col> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Algorithm + </p> + </th> +<th> + <p> + Class + </p> + </th> +<th> + <p> + Concept + </p> + </th> +<th> + <p> + System Concept + </p> + </th> +<th> + <p> + Order + </p> + </th> +<th> + <p> + Error Estimation + </p> + </th> +<th> + <p> + Dense Output + </p> + </th> +<th> + <p> + Internal state + </p> + </th> +<th> + <p> + Remarks + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Explicit Euler + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">euler</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/dense_output_stepper.html" title="Dense Output Stepper">Dense + Output Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + 1 + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Very simple, only for demonstrating purpose + </p> + </td> +</tr> +<tr> +<td> + <p> + Modified Midpoint + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">modified_midpoint</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + configurable (2) + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Used in Bulirsch-Stoer implementation + </p> + </td> +</tr> +<tr> +<td> + <p> + Runge-Kutta 4 + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">runge_kutta4</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + 4 + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + The classical Runge-Kutta scheme, good general scheme without + error control + </p> + </td> +</tr> +<tr> +<td> + <p> + Cash-Karp + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">runge_kutta_cash_karp54</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error + Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + 5 + </p> + </td> +<td> + <p> + Yes (4) + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Good general scheme with error estimation, to be used in controlled_error_stepper + </p> + </td> +</tr> +<tr> +<td> + <p> + Dormand-Prince 5 + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">runge_kutta_dopri5</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error + Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + 5 + </p> + </td> +<td> + <p> + Yes (4) + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Standard method with error control and dense output, to be used + in controlled_error_stepper and in dense_output_controlled_explicit_fsal. + </p> + </td> +</tr> +<tr> +<td> + <p> + Fehlberg 78 + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">runge_kutta_fehlberg78</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error + Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + 8 + </p> + </td> +<td> + <p> + Yes (7) + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Good high order method with error estimation, to be used in controlled_error_stepper. + </p> + </td> +</tr> +<tr> +<td> + <p> + Adams Bashforth + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">adams_bashforth</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + configurable + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Multistep method + </p> + </td> +</tr> +<tr> +<td> + <p> + Adams Moulton + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">adams_moulton</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + configurable + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Multistep method + </p> + </td> +</tr> +<tr> +<td> + <p> + Adams Bashforth Moulton + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">adams_bashforth_moulton</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + configurable + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Combined multistep method + </p> + </td> +</tr> +<tr> +<td> + <p> + Controlled Runge-Kutta + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">controlled_runge_kutta</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/controlled_stepper.html" title="Controlled Stepper">Controlled + Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + depends + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + depends + </p> + </td> +<td> + <p> + Error control for <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error + Stepper</a>. Requires an <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error + Stepper</a> from above. Order depends on the given ErrorStepper + </p> + </td> +</tr> +<tr> +<td> + <p> + Dense Output Runge-Kutta + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">dense_output_runge_kutta</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/dense_output_stepper.html" title="Dense Output Stepper">Dense + Output Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + depends + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Dense output for <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + and <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error + Stepper</a> from above if they provide dense output functionality + (like <code class="computeroutput"><span class="identifier">euler</span></code> and + <code class="computeroutput"><span class="identifier">runge_kutta_dopri5</span></code>). + Order depends on the given stepper. + </p> + </td> +</tr> +<tr> +<td> + <p> + Bulirsch-Stoer + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">bulirsch_stoer</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/controlled_stepper.html" title="Controlled Stepper">Controlled + Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + variable + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Stepper with step size and order control. Very good if high precision + is required. + </p> + </td> +</tr> +<tr> +<td> + <p> + Bulirsch-Stoer Dense Output + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">bulirsch_stoer_dense_out</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/dense_output_stepper.html" title="Dense Output Stepper">Dense + Output Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/system.html" title="System">System</a> + </p> + </td> +<td> + <p> + variable + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Stepper with step size and order control as well as dense output. + Very good if high precision and dense output is required. + </p> + </td> +</tr> +<tr> +<td> + <p> + Implicit Euler + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">implicit_euler</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/implicit_system.html" title="Implicit System">Implicit + System</a> + </p> + </td> +<td> + <p> + 1 + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Basic implicit routine. Requires the Jacobian. Works only with + <a href="http://www.boost.org/doc/libs/release/libs/numeric/ublas/index.html" target="_top">Boost.uBLAS</a> + vectors as state types. + </p> + </td> +</tr> +<tr> +<td> + <p> + Rosenbrock 4 + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">rosenbrock4</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/error_stepper.html" title="Error Stepper">Error + Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/implicit_system.html" title="Implicit System">Implicit + System</a> + </p> + </td> +<td> + <p> + 4 + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Good for stiff systems. Works only with <a href="http://www.boost.org/doc/libs/release/libs/numeric/ublas/index.html" target="_top">Boost.uBLAS</a> + vectors as state types. + </p> + </td> +</tr> +<tr> +<td> + <p> + Controlled Rosenbrock 4 + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">rosenbrock4_controller</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/controlled_stepper.html" title="Controlled Stepper">Controlled + Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/implicit_system.html" title="Implicit System">Implicit + System</a> + </p> + </td> +<td> + <p> + 4 + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Rosenbrock 4 with error control. Works only with <a href="http://www.boost.org/doc/libs/release/libs/numeric/ublas/index.html" target="_top">Boost.uBLAS</a> + vectors as state types. + </p> + </td> +</tr> +<tr> +<td> + <p> + Dense Output Rosenbrock 4 + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">rosenbrock4_dense_output</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/dense_output_stepper.html" title="Dense Output Stepper">Dense + Output Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/implicit_system.html" title="Implicit System">Implicit + System</a> + </p> + </td> +<td> + <p> + 4 + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + Yes + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Controlled Rosenbrock 4 with dense output. Works only with <a href="http://www.boost.org/doc/libs/release/libs/numeric/ublas/index.html" target="_top">Boost.uBLAS</a> + vectors as state types. + </p> + </td> +</tr> +<tr> +<td> + <p> + Symplectic Euler + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">symplectic_euler</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/symplectic_system.html" title="Symplectic System">Symplectic + System</a> <a class="link" href="../concepts/simple_symplectic_system.html" title="Simple Symplectic System">Simple + Symplectic System</a> + </p> + </td> +<td> + <p> + 1 + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Basic symplectic solver for separable Hamiltonian system + </p> + </td> +</tr> +<tr> +<td> + <p> + Symplectic RKN McLachlan + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">symplectic_rkn_sb3a_mclachlan</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/symplectic_system.html" title="Symplectic System">Symplectic + System</a> <a class="link" href="../concepts/simple_symplectic_system.html" title="Simple Symplectic System">Simple + Symplectic System</a> + </p> + </td> +<td> + <p> + 4 + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Symplectic solver for separable Hamiltonian system with 6 stages + and order 4. + </p> + </td> +</tr> +<tr> +<td> + <p> + Symplectic RKN McLachlan + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">symplectic_rkn_sb3a_m4_mclachlan</span></code> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> + </p> + </td> +<td> + <p> + <a class="link" href="../concepts/symplectic_system.html" title="Symplectic System">Symplectic + System</a> <a class="link" href="../concepts/simple_symplectic_system.html" title="Simple Symplectic System">Simple + Symplectic System</a> + </p> + </td> +<td> + <p> + 4 + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + No + </p> + </td> +<td> + <p> + Symplectic solver with 5 stages and order 4, can be used with + arbitrary precision types. + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<br class="table-break"> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers"></a><a class="link" href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers">Custom + steppers</a> +</h4></div></div></div> +<p> + Finally, one can also write new steppers which are fully compatible with + odeint. They only have to fulfill one or several of the stepper <a class="link" href="../concepts.html" title="Concepts">Concepts</a> + of odeint. + </p> +<p> + We will illustrate how to write your own stepper with the example of the + stochastic Euler method. This method is suited to solve stochastic differential + equations (SDEs). A SDE has the form + </p> +<p> + <span class="emphasis"><em>dx/dt = f(x) + g(x) ξ(t)</em></span> + </p> +<p> + where <span class="emphasis"><em>ξ</em></span> is Gaussian white noise with zero mean and + a standard deviation <span class="emphasis"><em>σ(t)</em></span>. <span class="emphasis"><em>f(x)</em></span> + is said to be the deterministic part while <span class="emphasis"><em>g(x) ξ</em></span> is + the noisy part. In case <span class="emphasis"><em>g(x)</em></span> is independent of <span class="emphasis"><em>x</em></span> + the SDE is said to have additive noise. It is not possible to solve SDE + with the classical solvers for ODEs since the noisy part of the SDE has + to be scaled differently then the deterministic part with respect to the + time step. But there exist many solvers for SDEs. A classical and easy + method is the stochastic Euler solver. It works by iterating + </p> +<p> + <span class="emphasis"><em>x(t+Δ t) = x(t) + Δ t f(x(t)) + Δ t<sup>1/2</sup> g(x) ξ(t)</em></span> + </p> +<p> + where ξ(t) is an independent normal distributed random variable. + </p> +<p> + Now we will implement this method. We will call the stepper <code class="computeroutput"><span class="identifier">stochastic_euler</span></code>. It models the <a class="link" href="../concepts/stepper.html" title="Stepper">Stepper</a> concept. + For simplicity, we fix the state type to be an <code class="computeroutput"><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">N</span> <span class="special">></span></code> The class definition looks like + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> <span class="identifier">size_t</span> <span class="identifier">N</span> <span class="special">></span> <span class="keyword">class</span> <span class="identifier">stochastic_euler</span> +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + + <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">N</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">N</span> <span class="special">></span> <span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">double</span> <span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> <span class="identifier">order_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">stepper_tag</span> <span class="identifier">stepper_category</span><span class="special">;</span> + + <span class="keyword">static</span> <span class="identifier">order_type</span> <span class="identifier">order</span><span class="special">(</span> <span class="keyword">void</span> <span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="number">1</span><span class="special">;</span> <span class="special">}</span> + + <span class="comment">// ...</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + The types are needed in order to fulfill the stepper concept. As internal + state and deriv type we use simple arrays in the stochastic Euler, they + are needed for the temporaries. The stepper has the order one which is + returned from the <code class="computeroutput"><span class="identifier">order</span><span class="special">()</span></code> function. + </p> +<p> + The system functions needs to calculate the deterministic and the stochastic + part of our stochastic differential equation. So it might be suitable that + the system function is a pair of functions. The first element of the pair + computes the deterministic part and the second the stochastic one. Then, + the second part also needs to calculate the random numbers in order to + simulate the stochastic process. We can now implement the <code class="computeroutput"><span class="identifier">do_step</span></code> method + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> <span class="identifier">size_t</span> <span class="identifier">N</span> <span class="special">></span> <span class="keyword">class</span> <span class="identifier">stochastic_euler</span> +<span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + + <span class="comment">// ...</span> + + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">System</span> <span class="special">></span> + <span class="keyword">void</span> <span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">System</span> <span class="identifier">system</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">time_type</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">time_type</span> <span class="identifier">dt</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="identifier">deriv_type</span> <span class="identifier">det</span> <span class="special">,</span> <span class="identifier">stoch</span> <span class="special">;</span> + <span class="identifier">system</span><span class="special">.</span><span class="identifier">first</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">det</span> <span class="special">);</span> + <span class="identifier">system</span><span class="special">.</span><span class="identifier">second</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">stoch</span> <span class="special">);</span> + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> + <span class="identifier">x</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">+=</span> <span class="identifier">dt</span> <span class="special">*</span> <span class="identifier">det</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">+</span> <span class="identifier">sqrt</span><span class="special">(</span> <span class="identifier">dt</span> <span class="special">)</span> <span class="special">*</span> <span class="identifier">stoch</span><span class="special">[</span><span class="identifier">i</span><span class="special">];</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + This is all. It is quite simple and the stochastic Euler stepper implement + here is quite general. Of course it can be enhanced, for example + </p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + use of operations and algebras as well as the resizing mechanism for + maximal flexibility and portability + </li> +<li class="listitem"> + use of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span></code> for the system functions + </li> +<li class="listitem"> + use of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range</span></code> for the state type in the + <code class="computeroutput"><span class="identifier">do_step</span></code> method + </li> +<li class="listitem"> + ... + </li> +</ul></div> +<p> + Now, lets look how we use the new stepper. A nice example is the Ornstein-Uhlenbeck + process. It consists of a simple Brownian motion overlapped with an relaxation + process. Its SDE reads + </p> +<p> + <span class="emphasis"><em>dx/dt = - x + ξ</em></span> + </p> +<p> + where ξ is Gaussian white noise with standard deviation <span class="emphasis"><em>σ</em></span>. + Implementing the Ornstein-Uhlenbeck process is quite simple. We need two + functions or functors - one for the deterministic and one for the stochastic + part: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">const</span> <span class="keyword">static</span> <span class="identifier">size_t</span> <span class="identifier">N</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">N</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span> + +<span class="keyword">struct</span> <span class="identifier">ornstein_det</span> +<span class="special">{</span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">];</span> + <span class="special">}</span> +<span class="special">};</span> + +<span class="keyword">struct</span> <span class="identifier">ornstein_stoch</span> +<span class="special">{</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mt19937</span> <span class="identifier">m_rng</span><span class="special">;</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">normal_distribution</span><span class="special"><></span> <span class="identifier">m_dist</span><span class="special">;</span> + + <span class="identifier">ornstein_stoch</span><span class="special">(</span> <span class="keyword">double</span> <span class="identifier">sigma</span> <span class="special">)</span> <span class="special">:</span> <span class="identifier">m_rng</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">m_dist</span><span class="special">(</span> <span class="number">0.0</span> <span class="special">,</span> <span class="identifier">sigma</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">m_dist</span><span class="special">(</span> <span class="identifier">m_rng</span> <span class="special">);</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + In the stochastic part we have used the Mersenne twister for the random + number generation and a Gaussian white noise generator <code class="computeroutput"><span class="identifier">normal_distribution</span></code> + with standard deviation <span class="emphasis"><em>σ</em></span>. Now, we can use the stochastic + Euler stepper with the integrate functions: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">dt</span> <span class="special">=</span> <span class="number">0.1</span><span class="special">;</span> +<span class="identifier">state_type</span> <span class="identifier">x</span> <span class="special">=</span> <span class="special">{{</span> <span class="number">1.0</span> <span class="special">}};</span> +<span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">stochastic_euler</span><span class="special"><</span> <span class="identifier">N</span> <span class="special">>()</span> <span class="special">,</span> <span class="identifier">make_pair</span><span class="special">(</span> <span class="identifier">ornstein_det</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">ornstein_stoch</span><span class="special">(</span> <span class="number">1.0</span> <span class="special">)</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">,</span> <span class="identifier">streaming_observer</span><span class="special">()</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + Note, how we have used the <code class="computeroutput"><span class="identifier">make_pair</span></code> + function for the generation of the system function. + </p> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers"></a><a class="link" href="steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers">Custom + Runge-Kutta steppers</a> +</h4></div></div></div> +<p> + odeint provides a C++ template meta-algorithm for constructing arbitrary + Runge-Kutta schemes <a href="#ftn.boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers.f0" class="footnote" name="boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers.f0"><sup class="footnote">[1]</sup></a>. Some schemes are predefined in odeint, for example the classical + Runge-Kutta of fourth order, or the Runge-Kutta-Cash-Karp 54 and the Runge-Kutta-Fehlberg + 78 method. You can use this meta algorithm to construct you own solvers. + This has the advantage that you can make full use of odeint's algebra and + operation system. + </p> +<p> + Consider for example the method of Heun, defined by the following Butcher + tableau: + </p> +<pre class="programlisting">c1 = 0 + +c2 = 1/3, a21 = 1/3 + +c3 = 2/3, a31 = 0 , a32 = 2/3 + + b1 = 1/4, b2 = 0 , b3 = 3/4 +</pre> +<p> + Implementing this method is very easy. First you have to define the constants: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Value</span> <span class="special">=</span> <span class="keyword">double</span> <span class="special">></span> +<span class="keyword">struct</span> <span class="identifier">heun_a1</span> <span class="special">:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="identifier">Value</span> <span class="special">,</span> <span class="number">1</span> <span class="special">></span> <span class="special">{</span> + <span class="identifier">heun_a1</span><span class="special">(</span> <span class="keyword">void</span> <span class="special">)</span> + <span class="special">{</span> + <span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">Value</span> <span class="special">>(</span> <span class="number">1</span> <span class="special">)</span> <span class="special">/</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">Value</span> <span class="special">>(</span> <span class="number">3</span> <span class="special">);</span> + <span class="special">}</span> +<span class="special">};</span> + +<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Value</span> <span class="special">=</span> <span class="keyword">double</span> <span class="special">></span> +<span class="keyword">struct</span> <span class="identifier">heun_a2</span> <span class="special">:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="identifier">Value</span> <span class="special">,</span> <span class="number">2</span> <span class="special">></span> +<span class="special">{</span> + <span class="identifier">heun_a2</span><span class="special">(</span> <span class="keyword">void</span> <span class="special">)</span> + <span class="special">{</span> + <span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">Value</span> <span class="special">>(</span> <span class="number">0</span> <span class="special">);</span> + <span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">Value</span> <span class="special">>(</span> <span class="number">2</span> <span class="special">)</span> <span class="special">/</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">Value</span> <span class="special">>(</span> <span class="number">3</span> <span class="special">);</span> + <span class="special">}</span> +<span class="special">};</span> + + +<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Value</span> <span class="special">=</span> <span class="keyword">double</span> <span class="special">></span> +<span class="keyword">struct</span> <span class="identifier">heun_b</span> <span class="special">:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="identifier">Value</span> <span class="special">,</span> <span class="number">3</span> <span class="special">></span> +<span class="special">{</span> + <span class="identifier">heun_b</span><span class="special">(</span> <span class="keyword">void</span> <span class="special">)</span> + <span class="special">{</span> + <span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">Value</span><span class="special">>(</span> <span class="number">1</span> <span class="special">)</span> <span class="special">/</span> <span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">Value</span><span class="special">>(</span> <span class="number">4</span> <span class="special">);</span> + <span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">Value</span><span class="special">>(</span> <span class="number">0</span> <span class="special">);</span> + <span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="number">2</span><span class="special">]</span> <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">Value</span><span class="special">>(</span> <span class="number">3</span> <span class="special">)</span> <span class="special">/</span> <span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">Value</span><span class="special">>(</span> <span class="number">4</span> <span class="special">);</span> + <span class="special">}</span> +<span class="special">};</span> + +<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Value</span> <span class="special">=</span> <span class="keyword">double</span> <span class="special">></span> +<span class="keyword">struct</span> <span class="identifier">heun_c</span> <span class="special">:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="identifier">Value</span> <span class="special">,</span> <span class="number">3</span> <span class="special">></span> +<span class="special">{</span> + <span class="identifier">heun_c</span><span class="special">(</span> <span class="keyword">void</span> <span class="special">)</span> + <span class="special">{</span> + <span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">Value</span> <span class="special">>(</span> <span class="number">0</span> <span class="special">);</span> + <span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">Value</span> <span class="special">>(</span> <span class="number">1</span> <span class="special">)</span> <span class="special">/</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">Value</span> <span class="special">>(</span> <span class="number">3</span> <span class="special">);</span> + <span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="number">2</span><span class="special">]</span> <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">Value</span> <span class="special">>(</span> <span class="number">2</span> <span class="special">)</span> <span class="special">/</span> <span class="keyword">static_cast</span><span class="special"><</span> <span class="identifier">Value</span> <span class="special">>(</span> <span class="number">3</span> <span class="special">);</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + While this might look cumbersome, packing all parameters into a templatized + class which is not immediately evaluated has the advantage that you can + change the <code class="computeroutput"><span class="identifier">value_type</span></code> of + your stepper to any type you like - presumably arbitrary precision types. + One could also instantiate the coefficients directly + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="number">1</span> <span class="special">></span> <span class="identifier">heun_a1</span> <span class="special">=</span> <span class="special">{{</span> <span class="number">1.0</span> <span class="special">/</span> <span class="number">3.0</span> <span class="special">}};</span> +<span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="number">2</span> <span class="special">></span> <span class="identifier">heun_a2</span> <span class="special">=</span> <span class="special">{{</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">2.0</span> <span class="special">/</span> <span class="number">3.0</span> <span class="special">}};</span> +<span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="number">3</span> <span class="special">></span> <span class="identifier">heun_b</span> <span class="special">=</span> <span class="special">{{</span> <span class="number">1.0</span> <span class="special">/</span> <span class="number">4.0</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">3.0</span> <span class="special">/</span> <span class="number">4.0</span> <span class="special">}};</span> +<span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="number">3</span> <span class="special">></span> <span class="identifier">heun_c</span> <span class="special">=</span> <span class="special">{{</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">1.0</span> <span class="special">/</span> <span class="number">3.0</span> <span class="special">,</span> <span class="number">2.0</span> <span class="special">/</span> <span class="number">3.0</span> <span class="special">}};</span> +</pre> +<p> + </p> +<p> + But then you are nailed down to use doubles. + </p> +<p> + Next, you need to define your stepper, note that the Heun method has 3 + stages and produces approximations of order 3: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> + <span class="keyword">class</span> <span class="identifier">State</span> <span class="special">,</span> + <span class="keyword">class</span> <span class="identifier">Value</span> <span class="special">=</span> <span class="keyword">double</span> <span class="special">,</span> + <span class="keyword">class</span> <span class="identifier">Deriv</span> <span class="special">=</span> <span class="identifier">State</span> <span class="special">,</span> + <span class="keyword">class</span> <span class="identifier">Time</span> <span class="special">=</span> <span class="identifier">Value</span> <span class="special">,</span> + <span class="keyword">class</span> <span class="identifier">Algebra</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">range_algebra</span> <span class="special">,</span> + <span class="keyword">class</span> <span class="identifier">Operations</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">default_operations</span> <span class="special">,</span> + <span class="keyword">class</span> <span class="identifier">Resizer</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">initially_resizer</span> +<span class="special">></span> +<span class="keyword">class</span> <span class="identifier">heun</span> <span class="special">:</span> <span class="keyword">public</span> +<span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">explicit_generic_rk</span><span class="special"><</span> <span class="number">3</span> <span class="special">,</span> <span class="number">3</span> <span class="special">,</span> <span class="identifier">State</span> <span class="special">,</span> <span class="identifier">Value</span> <span class="special">,</span> <span class="identifier">Deriv</span> <span class="special">,</span> <span class="identifier">Time</span> <span class="special">,</span> + <span class="identifier">Algebra</span> <span class="special">,</span> <span class="identifier">Operations</span> <span class="special">,</span> <span class="identifier">Resizer</span> <span class="special">></span> +<span class="special">{</span> + +<span class="keyword">public</span><span class="special">:</span> + + <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">::</span><span class="identifier">explicit_generic_rk</span><span class="special"><</span> <span class="number">3</span> <span class="special">,</span> <span class="number">3</span> <span class="special">,</span> <span class="identifier">State</span> <span class="special">,</span> <span class="identifier">Value</span> <span class="special">,</span> <span class="identifier">Deriv</span> <span class="special">,</span> <span class="identifier">Time</span> <span class="special">,</span> + <span class="identifier">Algebra</span> <span class="special">,</span> <span class="identifier">Operations</span> <span class="special">,</span> <span class="identifier">Resizer</span> <span class="special">></span> <span class="identifier">stepper_base_type</span><span class="special">;</span> + + <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">state_type</span> <span class="identifier">state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">wrapped_state_type</span> <span class="identifier">wrapped_state_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">deriv_type</span> <span class="identifier">deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">wrapped_deriv_type</span> <span class="identifier">wrapped_deriv_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">time_type</span> <span class="identifier">time_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">algebra_type</span> <span class="identifier">algebra_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">operations_type</span> <span class="identifier">operations_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">resizer_type</span> <span class="identifier">resizer_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">stepper_base_type</span><span class="special">::</span><span class="identifier">stepper_type</span> <span class="identifier">stepper_type</span><span class="special">;</span> + + <span class="identifier">heun</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">algebra_type</span> <span class="special">&</span><span class="identifier">algebra</span> <span class="special">=</span> <span class="identifier">algebra_type</span><span class="special">()</span> <span class="special">)</span> + <span class="special">:</span> <span class="identifier">stepper_base_type</span><span class="special">(</span> + <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_vector</span><span class="special">(</span> + <span class="identifier">heun_a1</span><span class="special"><</span><span class="identifier">Value</span><span class="special">>()</span> <span class="special">,</span> + <span class="identifier">heun_a2</span><span class="special"><</span><span class="identifier">Value</span><span class="special">>()</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">heun_b</span><span class="special"><</span><span class="identifier">Value</span><span class="special">>()</span> <span class="special">,</span> <span class="identifier">heun_c</span><span class="special"><</span><span class="identifier">Value</span><span class="special">>()</span> <span class="special">,</span> <span class="identifier">algebra</span> <span class="special">)</span> + <span class="special">{</span> <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + That's it. Now, we have a new stepper method and we can use it, for example + with the Lorenz system: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="number">3</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span> +<span class="identifier">heun</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <span class="identifier">h</span><span class="special">;</span> +<span class="identifier">state_type</span> <span class="identifier">x</span> <span class="special">=</span> <span class="special">{{</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">}};</span> + +<span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">h</span> <span class="special">,</span> <span class="identifier">lorenz</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">100.0</span> <span class="special">,</span> <span class="number">0.01</span> <span class="special">,</span> + <span class="identifier">streaming_observer</span><span class="special">(</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">)</span> <span class="special">);</span> +</pre> +<p> + </p> +</div> +<div class="footnotes"> +<br><hr style="width:100; text-align:left;margin-left: 0"> +<div id="ftn.boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers.f0" class="footnote"><p><a href="#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers.f0" class="para"><sup class="para">[1] </sup></a> + M. Mulansky, K. Ahnert, Template-Metaprogramming applied to numerical + problems, <a href="http://arxiv.org/abs/1110.3233" target="_top">arxiv:1110.3233</a> + </p></div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="generation_functions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/using_boost__range.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/using_boost__range.html new file mode 100644 index 000000000..a6f1e2ba8 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/using_boost__range.html @@ -0,0 +1,255 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Using boost::range</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../odeint_in_detail.html" title="odeint in detail"> +<link rel="prev" href="using_boost__ref.html" title="Using boost::ref"> +<link rel="next" href="binding_member_functions.html" title="Binding member functions"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="using_boost__ref.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binding_member_functions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.using_boost__range"></a><a class="link" href="using_boost__range.html" title="Using boost::range">Using + boost::range</a> +</h3></div></div></div> +<p> + Most steppers in odeint also accept the state give as a range. A range is + sequence of values modeled by a range concept. See <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a> + for an overview over existing concepts and examples of ranges. This means + that the <code class="computeroutput"><span class="identifier">state_type</span></code> of the + stepper need not necessarily be used to call the <code class="computeroutput"><span class="identifier">do_step</span></code> + method. + </p> +<p> + One use-case for <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a> + in odeint has been shown in <a class="link" href="../tutorial/chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents">Chaotic + System</a> where the state consists of two parts: one for the original + system and one for the perturbations. The ranges are used to initialize (solve) + only the system part where the perturbation part is not touched, that is + a range consisting only of the system part is used. After that the complete + state including the perturbations is solved. + </p> +<p> + Another use case is a system consisting of coupled units where you want to + initialize each unit separately with the ODE of the uncoupled unit. An example + is a chain of coupled van-der-Pol-oscillators which are initialized uniformly + from the uncoupled van-der-Pol-oscillator. Then you can use <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a> + to solve only one individual oscillator in the chain. + </p> +<p> + In short, you can <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a> + to use one state within two system functions which expect states with different + sizes. + </p> +<p> + An example was given in the <a class="link" href="../tutorial/chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents">Chaotic + System</a> tutorial. Using Boost.Range usually means that your system + function needs to adapt to the iterators of Boost.Range. That is, your function + is called with a range and you need to get the iterators from that range. + This can easily be done. You have to implement your system as a class or + a struct and you have to templatize the <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code>. Then you can use the <code class="computeroutput"><span class="identifier">range_iterator</span></code>-meta + function and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span></code> and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span></code> to + obtain the iterators of your range: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">sys</span> +<span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">State</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Deriv</span> <span class="special">></span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="identifier">x_</span> <span class="special">,</span> <span class="identifier">Deriv</span> <span class="special">&</span><span class="identifier">dxdt_</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span> <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">x_</span> <span class="special">);</span> + <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span> <span class="identifier">Deriv</span> <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">dxdt</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">dxdt_</span> <span class="special">);</span> + + <span class="comment">// fill dxdt</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + If your range is a random access-range you can also apply the bracket operator + to the iterator to access the elements in the range: +</p> +<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">sys</span> +<span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">State</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Deriv</span> <span class="special">></span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="identifier">x_</span> <span class="special">,</span> <span class="identifier">Deriv</span> <span class="special">&</span><span class="identifier">dxdt_</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span> <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">x_</span> <span class="special">);</span> + <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span> <span class="identifier">Deriv</span> <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">dxdt</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">dxdt_</span> <span class="special">);</span> + + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">f1</span><span class="special">(</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">,</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">);</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">f2</span><span class="special">(</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">,</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">);</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + The following two tables show which steppers and which algebras are compatible + with <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a>. + </p> +<div class="table"> +<a name="boost_numeric_odeint.odeint_in_detail.using_boost__range.steppers_supporting_boost_range"></a><p class="title"><b>Table 1.9. Steppers supporting Boost.Range</b></p> +<div class="table-contents"><table class="table" summary="Steppers supporting Boost.Range"> +<colgroup><col></colgroup> +<thead><tr><th> + <p> + Stepper + </p> + </th></tr></thead> +<tbody> +<tr><td> + <p> + adams_bashforth_moulton + </p> + </td></tr> +<tr><td> + <p> + bulirsch_stoer_dense_out + </p> + </td></tr> +<tr><td> + <p> + bulirsch_stoer + </p> + </td></tr> +<tr><td> + <p> + controlled_runge_kutta + </p> + </td></tr> +<tr><td> + <p> + dense_output_runge_kutta + </p> + </td></tr> +<tr><td> + <p> + euler + </p> + </td></tr> +<tr><td> + <p> + explicit_error_generic_rk + </p> + </td></tr> +<tr><td> + <p> + explicit_generic_rk + </p> + </td></tr> +<tr><td> + <p> + rosenbrock4_controller + </p> + </td></tr> +<tr><td> + <p> + rosenbrock4_dense_output + </p> + </td></tr> +<tr><td> + <p> + rosenbrock4 + </p> + </td></tr> +<tr><td> + <p> + runge_kutta4_classic + </p> + </td></tr> +<tr><td> + <p> + runge_kutta4 + </p> + </td></tr> +<tr><td> + <p> + runge_kutta_cash_karp54_classic + </p> + </td></tr> +<tr><td> + <p> + runge_kutta_cash_karp54 + </p> + </td></tr> +<tr><td> + <p> + runge_kutta_dopri5 + </p> + </td></tr> +<tr><td> + <p> + runge_kutta_fehlberg78 + </p> + </td></tr> +<tr><td> + <p> + symplectic_euler + </p> + </td></tr> +<tr><td> + <p> + symplectic_rkn_sb3a_mclachlan + </p> + </td></tr> +</tbody> +</table></div> +</div> +<br class="table-break"><div class="table"> +<a name="boost_numeric_odeint.odeint_in_detail.using_boost__range.algebras_supporting_boost_range"></a><p class="title"><b>Table 1.10. Algebras supporting Boost.Range</b></p> +<div class="table-contents"><table class="table" summary="Algebras supporting Boost.Range"> +<colgroup><col></colgroup> +<thead><tr><th> + <p> + algebra + </p> + </th></tr></thead> +<tbody> +<tr><td> + <p> + range_algebra + </p> + </td></tr> +<tr><td> + <p> + thrust_algebra + </p> + </td></tr> +</tbody> +</table></div> +</div> +<br class="table-break"> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="using_boost__ref.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binding_member_functions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/using_boost__ref.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/using_boost__ref.html new file mode 100644 index 000000000..1fe1c1295 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/using_boost__ref.html @@ -0,0 +1,88 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Using boost::ref</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../odeint_in_detail.html" title="odeint in detail"> +<link rel="prev" href="state_types__algebras_and_operations.html" title="State types, algebras and operations"> +<link rel="next" href="using_boost__range.html" title="Using boost::range"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="state_types__algebras_and_operations.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="using_boost__range.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.odeint_in_detail.using_boost__ref"></a><a class="link" href="using_boost__ref.html" title="Using boost::ref">Using + boost::ref</a> +</h3></div></div></div> +<p> + In odeint all system functions and observers are passed by value. For example, + if you call a <code class="computeroutput"><span class="identifier">do_step</span></code> method + of a particular stepper or the integration functions, your system and your + stepper will be passed by value: + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">rk4</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> <span class="comment">// pass sys by value</span> +</pre> +<p> + </p> +<p> + This behavior is suitable for most systems, especially if your system does + not contain any data or only a few parameters. However, in some cases you + might contain some large amount of data with you system function and passing + them by value is not desired since the data would be copied. + </p> +<p> + In such cases you can easily use <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span></code> (and + its relative <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">cref</span></code>) which passes its argument by reference + (or constant reference). odeint will unpack the arguments and no copying + at all of your system object will take place: + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">rk4</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span> <span class="identifier">sys</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> <span class="comment">// pass sys as references</span> +</pre> +<p> + </p> +<p> + The same mechanism can be used for the observers in the integrate functions. + </p> +<div class="tip"><table border="0" summary="Tip"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../../../../../doc/src/images/tip.png"></td> +<th align="left">Tip</th> +</tr> +<tr><td align="left" valign="top"><p> + If you are using C++11 you can also use <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ref</span></code> + and <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cref</span></code> + </p></td></tr> +</table></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="state_types__algebras_and_operations.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="using_boost__range.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial.html new file mode 100644 index 000000000..ec3307392 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial.html @@ -0,0 +1,71 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Tutorial</title> +<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="prev" href="getting_started/short_example.html" title="Short Example"> +<link rel="next" href="tutorial/harmonic_oscillator.html" title="Harmonic oscillator"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../logo.jpg"></td> +<td align="center"><a href="../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="getting_started/short_example.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tutorial/harmonic_oscillator.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h2 class="title" style="clear: both"> +<a name="boost_numeric_odeint.tutorial"></a><a class="link" href="tutorial.html" title="Tutorial">Tutorial</a> +</h2></div></div></div> +<div class="toc"><dl class="toc"> +<dt><span class="section"><a href="tutorial/harmonic_oscillator.html">Harmonic + oscillator</a></span></dt> +<dt><span class="section"><a href="tutorial/solar_system.html">Solar system</a></span></dt> +<dt><span class="section"><a href="tutorial/chaotic_systems_and_lyapunov_exponents.html">Chaotic + systems and Lyapunov exponents</a></span></dt> +<dt><span class="section"><a href="tutorial/stiff_systems.html">Stiff systems</a></span></dt> +<dt><span class="section"><a href="tutorial/complex_state_types.html">Complex + state types</a></span></dt> +<dt><span class="section"><a href="tutorial/lattice_systems.html">Lattice + systems</a></span></dt> +<dt><span class="section"><a href="tutorial/ensembles_of_oscillators.html">Ensembles + of oscillators</a></span></dt> +<dt><span class="section"><a href="tutorial/using_boost__units.html">Using + boost::units</a></span></dt> +<dt><span class="section"><a href="tutorial/using_matrices_as_state_types.html">Using + matrices as state types</a></span></dt> +<dt><span class="section"><a href="tutorial/using_arbitrary_precision_floating_point_types.html">Using + arbitrary precision floating point types</a></span></dt> +<dt><span class="section"><a href="tutorial/self_expanding_lattices.html">Self + expanding lattices</a></span></dt> +<dt><span class="section"><a href="tutorial/using_cuda__or_openmp__tbb_______via_thrust.html">Using + CUDA (or OpenMP, TBB, ...) via Thrust</a></span></dt> +<dt><span class="section"><a href="tutorial/using_opencl_via_vexcl.html">Using + OpenCL via VexCL</a></span></dt> +<dt><span class="section"><a href="tutorial/all_examples.html">All examples</a></span></dt> +</dl></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="getting_started/short_example.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tutorial/harmonic_oscillator.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/all_examples.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/all_examples.html new file mode 100644 index 000000000..ea0b991d3 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/all_examples.html @@ -0,0 +1,517 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>All examples</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../tutorial.html" title="Tutorial"> +<link rel="prev" href="using_opencl_via_vexcl.html" title="Using OpenCL via VexCL"> +<link rel="next" href="../odeint_in_detail.html" title="odeint in detail"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="using_opencl_via_vexcl.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.tutorial.all_examples"></a><a class="link" href="all_examples.html" title="All examples">All examples</a> +</h3></div></div></div> +<p> + The following table gives an overview over all examples. + </p> +<div class="table"> +<a name="boost_numeric_odeint.tutorial.all_examples.examples_overview"></a><p class="title"><b>Table 1.4. Examples Overview</b></p> +<div class="table-contents"><table class="table" summary="Examples Overview"> +<colgroup> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + File + </p> + </th> +<th> + <p> + Brief Description + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/bind_member_functions.cpp" target="_top">bind_member_functions.cpp</a> + </p> + </td> +<td> + <p> + This examples shows how member functions can be used as system + functions in odeint. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/bind_member_functions.cpp" target="_top">bind_member_functions_cpp11.cpp</a> + </p> + </td> +<td> + <p> + This examples shows how member functions can be used as system + functions in odeint with <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bind</span></code> + in C++11. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/bulirsch_stoer.cpp" target="_top">bulirsch_stoer.cpp</a> + </p> + </td> +<td> + <p> + Shows the usage of the Bulirsch-Stoer method. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/chaotic_system.cpp" target="_top">chaotic_system.cpp</a> + </p> + </td> +<td> + <p> + The chaotic system examples integrates the Lorenz system and calculates + the Lyapunov exponents. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/elliptic_functions.cpp" target="_top">elliptic_functions.cpp</a> + </p> + </td> +<td> + <p> + Example calculating the elliptic functions using Bulirsch-Stoer + and Runge-Kutta-Dopri5 Steppers with dense output. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/fpu.cpp" target="_top">fpu.cpp</a> + </p> + </td> +<td> + <p> + The Fermi-Pasta-Ulam (FPU) example shows how odeint can be used + to integrate lattice systems. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/generation_functions.cpp" target="_top">generation_functions.cpp</a> + </p> + </td> +<td> + <p> + Shows skeletal code on how to implement own factory functions. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/harmonic_oscillator.cpp" target="_top">harmonic_oscillator.cpp</a> + </p> + </td> +<td> + <p> + The harmonic oscillator examples gives a brief introduction to + odeint and shows the usage of the classical Runge-Kutta-solvers. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/harmonic_oscillator_units.cpp" target="_top">harmonic_oscillator_units.cpp</a> + </p> + </td> +<td> + <p> + This examples shows how <a href="http://www.boost.org/doc/libs/release/libs/units/index.html" target="_top">Boost.Units</a> + can be used with odeint. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/heun.cpp" target="_top">heun.cpp</a> + </p> + </td> +<td> + <p> + The Heun example shows how an custom Runge-Kutta stepper can be + created with odeint generic Runge-Kutta method. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/list_lattice.cpp" target="_top">list_lattice.cpp</a> + </p> + </td> +<td> + <p> + Example of a phase lattice integration using <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code> + as state type. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/lorenz_point.cpp" target="_top">lorenz_point.cpp</a> + </p> + </td> +<td> + <p> + Alternative way of integrating lorenz by using a self defined point3d + data type as state type. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/my_vector.cpp" target="_top">my_vector.cpp</a> + </p> + </td> +<td> + <p> + Simple example showing how to get odeint to work with a self-defined + vector type. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/phase_oscillator_ensemble.cpp" target="_top">phase_oscillator_ensemble.cpp</a> + </p> + </td> +<td> + <p> + The phase oscillator ensemble example shows how globally coupled + oscillators can be analyzed and how statistical measures can be + computed during integration. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/resizing_lattice.cpp" target="_top">resizing_lattice.cpp</a> + </p> + </td> +<td> + <p> + Shows the strength of odeint's memory management by simulating + a Hamiltonian system on an expanding lattice. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/simple1d.cpp" target="_top">simple1d.cpp</a> + </p> + </td> +<td> + <p> + Integrating a simple, one-dimensional ODE showing the usage of + integrate- and generate-functions. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/solar_system.cpp" target="_top">solar_system.cpp</a> + </p> + </td> +<td> + <p> + The solar system example shows the usage of the symplectic solvers. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/stepper_details.cpp" target="_top">stepper_details.cpp</a> + </p> + </td> +<td> + <p> + Trivial example showing the usability of the several stepper classes. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/stiff_system.cpp" target="_top">stiff_system.cpp</a> + </p> + </td> +<td> + <p> + The stiff system example shows the usage of the stiff solvers using + the Jacobian of the system function. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/stochastic_euler.cpp" target="_top">stochastic_euler.cpp</a> + </p> + </td> +<td> + <p> + Implementation of a custom stepper - the stochastic euler - for + solving stochastic differential equations. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/stuart_landau.cpp" target="_top">stuart_landau.cpp</a> + </p> + </td> +<td> + <p> + The Stuart-Landau example shows how odeint can be used with complex + state types. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/two_dimensional_phase_lattice.cpp" target="_top">two_dimensional_phase_lattice.cpp</a> + </p> + </td> +<td> + <p> + The 2D phase oscillator example shows how a two-dimensional lattice + works with odeint and how matrix types can be used as state types + in odeint. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/van_der_pol_stiff.cpp" target="_top">van_der_pol_stiff.cpp</a> + </p> + </td> +<td> + <p> + This stiff system example again shows the usage of the stiff solvers + by integrating the van der Pol oscillator. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/gmpxx/lorenz_gmpxx.cpp" target="_top">gmpxx/lorenz_gmpxx.cpp</a> + </p> + </td> +<td> + <p> + This examples integrates the Lorenz system by means of an arbitrary + precision type. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/mtl/gauss_packet.cpp" target="_top">mtl/gauss_packet.cpp</a> + </p> + </td> +<td> + <p> + The MTL-Gauss-packet example shows how the MTL can be easily used + with odeint. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/mtl/implicit_euler_mtl.cpp" target="_top">mtl/implicit_euler_mtl.cpp</a> + </p> + </td> +<td> + <p> + This examples shows the usage of the MTL implicit Euler method + with a sparse matrix type. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/thrust/phase_oscillator_ensemble.cu" target="_top">thrust/phase_oscillator_ensemble.cu</a> + </p> + </td> +<td> + <p> + The Thrust phase oscillator ensemble example shows how globally + coupled oscillators can be analyzed with Thrust and CUDA, employing + the power of modern graphic devices. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/thrust/phase_oscillator_chain.cu" target="_top">thrust/phase_oscillator_chain.cu</a> + </p> + </td> +<td> + <p> + The Thrust phase oscillator chain example shows how chains of nearest + neighbor coupled oscillators can be integrated with Thrust and + odeint. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/thrust/lorenz_parameters.cu" target="_top">thrust/lorenz_parameters.cu</a> + </p> + </td> +<td> + <p> + The Lorenz parameters examples show how ensembles of ordinary differential + equations can be solved by means of Thrust to study the dependence + of an ODE on some parameters. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/thrust/relaxation.cu" target="_top">thrust/relaxation.cu</a> + </p> + </td> +<td> + <p> + Another examples for the usage of Thrust. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/ublas/lorenz_ublas.cpp" target="_top">ublas/lorenz_ublas.cpp</a> + </p> + </td> +<td> + <p> + This example shows how the ublas vector types can be used with + odeint. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/vexcl/lorenz_ensemble.cpp" target="_top">vexcl/lorenz_ensemble.cpp</a> + </p> + </td> +<td> + <p> + This example shows how the VexCL - a framework for OpenCL computation + - can be used with odeint. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/2d_lattice/spreading.cpp" target="_top">2d_lattice/spreading.cpp</a> + </p> + </td> +<td> + <p> + This examples shows how a <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span> <span class="identifier">vector</span><span class="special"><</span> <span class="identifier">T</span> + <span class="special">></span> <span class="special">></span></code> + can be used a state type for odeint and how a resizing mechanism + of this state can be implemented. + </p> + </td> +</tr> +<tr> +<td> + <p> + <a href="../../../../../../../libs/numeric/odeint/examples/quadmath/black_hole.cpp" target="_top">quadmath/black_hole.cpp</a> + </p> + </td> +<td> + <p> + This examples shows how gcc libquadmath can be used with odeint. + It provides a high precision floating point type which is adapted + to odeint in this example. + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<br class="table-break"> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="using_opencl_via_vexcl.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../odeint_in_detail.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html new file mode 100644 index 000000000..429d4d6e2 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html @@ -0,0 +1,287 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Chaotic systems and Lyapunov exponents</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../tutorial.html" title="Tutorial"> +<link rel="prev" href="solar_system.html" title="Solar system"> +<link rel="next" href="stiff_systems.html" title="Stiff systems"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="solar_system.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="stiff_systems.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.tutorial.chaotic_systems_and_lyapunov_exponents"></a><a class="link" href="chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents">Chaotic + systems and Lyapunov exponents</a> +</h3></div></div></div> +<p> + In this example we present application of odeint to investigation of the + properties of chaotic deterministic systems. In mathematical terms chaotic + refers to an exponential growth of perturbations <span class="emphasis"><em>δ x</em></span>. + In order to observe this exponential growth one usually solves the equations + for the tangential dynamics which is again an ordinary differential equation. + These equations are linear but time dependent and can be obtained via + </p> +<p> + <span class="emphasis"><em>d δ x / dt = J(x) δ x</em></span> + </p> +<p> + where <span class="emphasis"><em>J</em></span> is the Jacobian of the system under consideration. + <span class="emphasis"><em>δ x</em></span> can also be interpreted as a perturbation of the original + system. In principle <span class="emphasis"><em>n</em></span> of these perturbations exist, + they form a hypercube and evolve in the time. The Lyapunov exponents are + then defined as logarithmic growth rates of the perturbations. If one Lyapunov + exponent is larger then zero the nearby trajectories diverge exponentially + hence they are chaotic. If the largest Lyapunov exponent is zero one is usually + faced with periodic motion. In the case of a largest Lyapunov exponent smaller + then zero convergence to a fixed point is expected. More information's about + Lyapunov exponents and nonlinear dynamical systems can be found in many textbooks, + see for example: E. Ott "Chaos is Dynamical Systems", Cambridge. + </p> +<p> + To calculate the Lyapunov exponents numerically one usually solves the equations + of motion for <span class="emphasis"><em>n</em></span> perturbations and orthonormalizes them + every <span class="emphasis"><em>k</em></span> steps. The Lyapunov exponent is the average + of the logarithm of the stretching factor of each perturbation. + </p> +<p> + To demonstrate how one can use odeint to determine the Lyapunov exponents + we choose the Lorenz system. It is one of the most studied dynamical systems + in the nonlinear dynamics community. For the standard parameters it possesses + a strange attractor with non-integer dimension. The Lyapunov exponents take + values of approximately 0.9, 0 and -12. + </p> +<p> + The implementation of the Lorenz system is + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">sigma</span> <span class="special">=</span> <span class="number">10.0</span><span class="special">;</span> +<span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">R</span> <span class="special">=</span> <span class="number">28.0</span><span class="special">;</span> +<span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">b</span> <span class="special">=</span> <span class="number">8.0</span> <span class="special">/</span> <span class="number">3.0</span><span class="special">;</span> + +<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="number">3</span> <span class="special">></span> <span class="identifier">lorenz_state_type</span><span class="special">;</span> + +<span class="keyword">void</span> <span class="identifier">lorenz</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">lorenz_state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">lorenz_state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span> +<span class="special">{</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">sigma</span> <span class="special">*</span> <span class="special">(</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">);</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">R</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">2</span><span class="special">];</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">2</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">b</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">2</span><span class="special">]</span> <span class="special">+</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span> +<span class="special">}</span> +</pre> +<p> + We need also to integrate the set of the perturbations. This is done in parallel + to the original system, hence within one system function. Of course, we want + to use the above definition of the Lorenz system, hence the definition of + the system function including the Lorenz system itself and the perturbation + could look like: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">n</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span> +<span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">num_of_lyap</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span> +<span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">N</span> <span class="special">=</span> <span class="identifier">n</span> <span class="special">+</span> <span class="identifier">n</span><span class="special">*</span><span class="identifier">num_of_lyap</span><span class="special">;</span> + +<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">N</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">num_of_lyap</span> <span class="special">></span> <span class="identifier">lyap_type</span><span class="special">;</span> + +<span class="keyword">void</span> <span class="identifier">lorenz_with_lyap</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span> +<span class="special">{</span> + <span class="identifier">lorenz</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">dxdt</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">);</span> + + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">l</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">l</span><span class="special"><</span><span class="identifier">num_of_lyap</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">l</span> <span class="special">)</span> + <span class="special">{</span> + <span class="keyword">const</span> <span class="keyword">double</span> <span class="special">*</span><span class="identifier">pert</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">+</span> <span class="number">3</span> <span class="special">+</span> <span class="identifier">l</span> <span class="special">*</span> <span class="number">3</span><span class="special">;</span> + <span class="keyword">double</span> <span class="special">*</span><span class="identifier">dpert</span> <span class="special">=</span> <span class="identifier">dxdt</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">+</span> <span class="number">3</span> <span class="special">+</span> <span class="identifier">l</span> <span class="special">*</span> <span class="number">3</span><span class="special">;</span> + <span class="identifier">dpert</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span> <span class="identifier">sigma</span> <span class="special">*</span> <span class="identifier">pert</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">+</span> <span class="number">10.0</span> <span class="special">*</span> <span class="identifier">pert</span><span class="special">[</span><span class="number">1</span><span class="special">];</span> + <span class="identifier">dpert</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="special">(</span> <span class="identifier">R</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="number">2</span><span class="special">]</span> <span class="special">)</span> <span class="special">*</span> <span class="identifier">pert</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">pert</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">*</span> <span class="identifier">pert</span><span class="special">[</span><span class="number">2</span><span class="special">];</span> + <span class="identifier">dpert</span><span class="special">[</span><span class="number">2</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">*</span> <span class="identifier">pert</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">+</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">*</span> <span class="identifier">pert</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">b</span> <span class="special">*</span> <span class="identifier">pert</span><span class="special">[</span><span class="number">2</span><span class="special">];</span> + <span class="special">}</span> +<span class="special">}</span> +</pre> +<p> + </p> +<p> + The perturbations are stored linearly in the <code class="computeroutput"><span class="identifier">state_type</span></code> + behind the state of the Lorenz system. The problem of lorenz() and lorenz_with_lyap() having different + state types may be solved putting the Lorenz system inside a functor with + templatized arguments: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">lorenz</span> +<span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">StateIn</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">StateOut</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span> <span class="special">></span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">StateIn</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">StateOut</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">t</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">sigma</span> <span class="special">*</span> <span class="special">(</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">);</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">R</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">2</span><span class="special">];</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">2</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">b</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">2</span><span class="special">]</span> <span class="special">+</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span> + <span class="special">}</span> +<span class="special">};</span> + +<span class="keyword">void</span> <span class="identifier">lorenz_with_lyap</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span> +<span class="special">{</span> + <span class="identifier">lorenz</span><span class="special">()(</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">dxdt</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">);</span> + <span class="special">...</span> +<span class="special">}</span> +</pre> +<p> + This works fine and <code class="computeroutput"><span class="identifier">lorenz_with_lyap</span></code> + can be used for example via +</p> +<pre class="programlisting"><span class="identifier">state_type</span> <span class="identifier">x</span><span class="special">;</span> +<span class="comment">// initialize x</span> +<span class="identifier">explicit_rk4</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <span class="identifier">rk4</span><span class="special">;</span> +<span class="identifier">integrate_n_steps</span><span class="special">(</span> <span class="identifier">rk4</span> <span class="special">,</span> <span class="identifier">lorenz_with_lyap</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">0.01</span> <span class="special">,</span> <span class="number">1000</span> <span class="special">);</span> +</pre> +<p> + This code snippet performs 1000 steps with constant step size 0.01. + </p> +<p> + A real world use case for the calculation of the Lyapunov exponents of Lorenz + system would always include some transient steps, just to ensure that the + current state lies on the attractor, hence it would look like + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">state_type</span> <span class="identifier">x</span><span class="special">;</span> +<span class="comment">// initialize x</span> +<span class="identifier">explicit_rk4</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <span class="identifier">rk4</span><span class="special">;</span> +<span class="identifier">integrate_n_steps</span><span class="special">(</span> <span class="identifier">rk4</span> <span class="special">,</span> <span class="identifier">lorenz</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">0.01</span> <span class="special">,</span> <span class="number">1000</span> <span class="special">);</span> +</pre> +<p> + The problem is now, that <code class="computeroutput"><span class="identifier">x</span></code> + is the full state containing also the perturbations and <code class="computeroutput"><span class="identifier">integrate_n_steps</span></code> + does not know that it should only use 3 elements. In detail, odeint and its + steppers determine the length of the system under consideration by determining + the length of the state. In the classical solvers, e.g. from Numerical Recipes, + the problem was solved by pointer to the state and an appropriate length, + something similar to + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">lorenz</span><span class="special">(</span> <span class="keyword">double</span><span class="special">*</span> <span class="identifier">x</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">*</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">t</span><span class="special">,</span> <span class="keyword">void</span><span class="special">*</span> <span class="identifier">params</span> <span class="special">)</span> +<span class="special">{</span> + <span class="special">...</span> +<span class="special">}</span> + +<span class="keyword">int</span> <span class="identifier">system_length</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span> +<span class="identifier">rk4</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">system_length</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">,</span> <span class="identifier">lorenz</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + But odeint supports a similar and much more sophisticated concept: <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a>. + To make the steppers and the system ready to work with <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a> + the system has to by changed: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">lorenz</span> +<span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">State</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Deriv</span> <span class="special">></span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="identifier">x_</span> <span class="special">,</span> <span class="identifier">Deriv</span> <span class="special">&</span><span class="identifier">dxdt_</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span> <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">x_</span> <span class="special">);</span> + <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span> <span class="identifier">Deriv</span> <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">dxdt</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">dxdt_</span> <span class="special">);</span> + + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">sigma</span> <span class="special">*</span> <span class="special">(</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">);</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">R</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">2</span><span class="special">];</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">2</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">b</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">2</span><span class="special">]</span> <span class="special">+</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + This is in principle all. Now, we only have to call <code class="computeroutput"><span class="identifier">integrate_n_steps</span></code> + with a range including only the first 3 components of <span class="emphasis"><em>x</em></span>: + </p> +<p> +</p> +<pre class="programlisting"><span class="comment">// perform 10000 transient steps</span> +<span class="identifier">integrate_n_steps</span><span class="special">(</span> <span class="identifier">rk4</span> <span class="special">,</span> <span class="identifier">lorenz</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">n</span> <span class="special">)</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">,</span> <span class="number">10000</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + Having integrated a sufficient number of transients steps we are now able + to calculate the Lyapunov exponents: + </p> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> + Initialize the perturbations. They are stored linearly behind the state + of the Lorenz system. The perturbations are initialized such that <span class="emphasis"><em>p + <sub>​ij</sub> = δ <sub>​ij</sub></em></span>, where <span class="emphasis"><em>p <sub>​ij</sub></em></span> is the <span class="emphasis"><em>j</em></span>-component + of the <span class="emphasis"><em>i</em></span>.-th perturbation and <span class="emphasis"><em>δ <sub>​ij</sub></em></span> + is the Kronecker symbol. + </li> +<li class="listitem"> + Integrate 100 steps of the full system with perturbations + </li> +<li class="listitem"> + Orthonormalize the perturbation using Gram-Schmidt orthonormalization + algorithm. + </li> +<li class="listitem"> + Repeat step 2 and 3. Every 10000 steps write the current Lyapunov exponent. + </li> +</ol></div> +<p> +</p> +<pre class="programlisting"><span class="identifier">fill</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()+</span><span class="identifier">n</span> <span class="special">,</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">);</span> +<span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">num_of_lyap</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> <span class="identifier">x</span><span class="special">[</span><span class="identifier">n</span><span class="special">+</span><span class="identifier">n</span><span class="special">*</span><span class="identifier">i</span><span class="special">+</span><span class="identifier">i</span><span class="special">]</span> <span class="special">=</span> <span class="number">1.0</span><span class="special">;</span> +<span class="identifier">fill</span><span class="special">(</span> <span class="identifier">lyap</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">lyap</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">);</span> + +<span class="keyword">double</span> <span class="identifier">t</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> +<span class="identifier">size_t</span> <span class="identifier">count</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> +<span class="keyword">while</span><span class="special">(</span> <span class="keyword">true</span> <span class="special">)</span> +<span class="special">{</span> + + <span class="identifier">t</span> <span class="special">=</span> <span class="identifier">integrate_n_steps</span><span class="special">(</span> <span class="identifier">rk4</span> <span class="special">,</span> <span class="identifier">lorenz_with_lyap</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">,</span> <span class="number">100</span> <span class="special">);</span> + <span class="identifier">gram_schmidt</span><span class="special"><</span> <span class="identifier">num_of_lyap</span> <span class="special">>(</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">lyap</span> <span class="special">,</span> <span class="identifier">n</span> <span class="special">);</span> + <span class="special">++</span><span class="identifier">count</span><span class="special">;</span> + + <span class="keyword">if</span><span class="special">(</span> <span class="special">!(</span><span class="identifier">count</span> <span class="special">%</span> <span class="number">100000</span><span class="special">)</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">t</span><span class="special">;</span> + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">num_of_lyap</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\t"</span> <span class="special"><<</span> <span class="identifier">lyap</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">/</span> <span class="identifier">t</span> <span class="special">;</span> + <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> + <span class="special">}</span> +<span class="special">}</span> +</pre> +<p> + </p> +<p> + The full code can be found here: <a href="../../../../../../../libs/numeric/odeint/examples/chaotic_system.cpp" target="_top">chaotic_system.cpp</a> + </p> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="solar_system.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="stiff_systems.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/complex_state_types.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/complex_state_types.html new file mode 100644 index 000000000..a17ecee63 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/complex_state_types.html @@ -0,0 +1,137 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Complex state types</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../tutorial.html" title="Tutorial"> +<link rel="prev" href="stiff_systems.html" title="Stiff systems"> +<link rel="next" href="lattice_systems.html" title="Lattice systems"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="stiff_systems.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="lattice_systems.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.tutorial.complex_state_types"></a><a class="link" href="complex_state_types.html" title="Complex state types">Complex + state types</a> +</h3></div></div></div> +<p> + Thus far we have seen several examples defined for real values. odeint can + handle complex state types, hence ODEs which are defined on complex vector + spaces, as well. An example is the Stuart-Landau oscillator + </p> +<p> + <span class="emphasis"><em>d Ψ / dt = ( 1 + i η ) Ψ + ( 1 + i α ) | Ψ |<sup>2</sup> Ψ </em></span> + </p> +<p> + where <span class="emphasis"><em>Ψ</em></span> and <span class="emphasis"><em>i</em></span> is a complex variable. + The definition of this ODE in C++ using complex< double > as a state + type may look as follows + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">complex</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span> + +<span class="keyword">struct</span> <span class="identifier">stuart_landau</span> +<span class="special">{</span> + <span class="keyword">double</span> <span class="identifier">m_eta</span><span class="special">;</span> + <span class="keyword">double</span> <span class="identifier">m_alpha</span><span class="special">;</span> + + <span class="identifier">stuart_landau</span><span class="special">(</span> <span class="keyword">double</span> <span class="identifier">eta</span> <span class="special">=</span> <span class="number">1.0</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">alpha</span> <span class="special">=</span> <span class="number">1.0</span> <span class="special">)</span> + <span class="special">:</span> <span class="identifier">m_eta</span><span class="special">(</span> <span class="identifier">eta</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_alpha</span><span class="special">(</span> <span class="identifier">alpha</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="keyword">const</span> <span class="identifier">complex</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">I</span><span class="special">(</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">1.0</span> <span class="special">);</span> + <span class="identifier">dxdt</span> <span class="special">=</span> <span class="special">(</span> <span class="number">1.0</span> <span class="special">+</span> <span class="identifier">m_eta</span> <span class="special">*</span> <span class="identifier">I</span> <span class="special">)</span> <span class="special">*</span> <span class="identifier">x</span> <span class="special">-</span> <span class="special">(</span> <span class="number">1.0</span> <span class="special">+</span> <span class="identifier">m_alpha</span> <span class="special">*</span> <span class="identifier">I</span> <span class="special">)</span> <span class="special">*</span> <span class="identifier">norm</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">)</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">;</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + One can also use a function instead of a functor to implement it + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">eta</span> <span class="special">=</span> <span class="number">1.0</span><span class="special">;</span> +<span class="keyword">double</span> <span class="identifier">alpha</span> <span class="special">=</span> <span class="number">1.0</span><span class="special">;</span> + +<span class="keyword">void</span> <span class="identifier">stuart_landau</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span> +<span class="special">{</span> + <span class="keyword">const</span> <span class="identifier">complex</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">I</span><span class="special">(</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">1.0</span> <span class="special">);</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="special">(</span> <span class="number">1.0</span> <span class="special">+</span> <span class="identifier">m_eta</span> <span class="special">*</span> <span class="identifier">I</span> <span class="special">)</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="special">(</span> <span class="number">1.0</span> <span class="special">+</span> <span class="identifier">m_alpha</span> <span class="special">*</span> <span class="identifier">I</span> <span class="special">)</span> <span class="special">*</span> <span class="identifier">norm</span><span class="special">(</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">)</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">];</span> +<span class="special">}</span> +</pre> +<p> + </p> +<p> + We strongly recommend to use the first ansatz. In this case you have explicit + control over the parameters of the system and are not restricted to use global + variables to parametrize the oscillator. + </p> +<p> + When choosing the stepper type one has to account for the "unusual" + state type: it is a single <code class="computeroutput"><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span></code> opposed to the vector types used in the + previous examples. This means that no iterations over vector elements have + to be performed inside the stepper algorithm. You can enforce this by supplying + additional template arguments to the stepper including the <code class="computeroutput"><span class="identifier">vector_space_algebra</span></code>. Details on the usage + of algebras can be found in the section <a class="link" href="../odeint_in_detail/state_types__algebras_and_operations.html" title="State types, algebras and operations">Adapt + your own state types</a>. + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">state_type</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">complex</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">>(</span> <span class="number">1.0</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">);</span> + +<span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">dt</span> <span class="special">=</span> <span class="number">0.1</span><span class="special">;</span> + +<span class="keyword">typedef</span> <span class="identifier">runge_kutta4</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">,</span> + <span class="identifier">vector_space_algebra</span> <span class="special">></span> <span class="identifier">stepper_type</span><span class="special">;</span> + +<span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">stepper_type</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">stuart_landau</span><span class="special">(</span> <span class="number">2.0</span> <span class="special">,</span> <span class="number">1.0</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">,</span> <span class="identifier">streaming_observer</span><span class="special">(</span> <span class="identifier">cout</span> <span class="special">)</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + The full cpp file for the Stuart-Landau example can be found here <a href="../../../../../../../libs/numeric/odeint/examples/stuart_landau.cpp" target="_top">stuart_landau.cpp</a> + </p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p> + The fact that we have to configure a different algebra is solely due to + the fact that we use a non-vector state type and not to the usage of complex + values. So for, e.g. <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span> <span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">></span></code>, + this would not be required. + </p></td></tr> +</table></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="stiff_systems.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="lattice_systems.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/ensembles_of_oscillators.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/ensembles_of_oscillators.html new file mode 100644 index 000000000..12865a753 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/ensembles_of_oscillators.html @@ -0,0 +1,201 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Ensembles of oscillators</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../tutorial.html" title="Tutorial"> +<link rel="prev" href="lattice_systems.html" title="Lattice systems"> +<link rel="next" href="using_boost__units.html" title="Using boost::units"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="lattice_systems.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="using_boost__units.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.tutorial.ensembles_of_oscillators"></a><a class="link" href="ensembles_of_oscillators.html" title="Ensembles of oscillators">Ensembles + of oscillators</a> +</h3></div></div></div> +<p> + Another important high dimensional system of coupled ordinary differential + equations is an ensemble of <span class="emphasis"><em>N</em></span> all-to-all coupled phase + oscillators <a class="link" href="../literature.html#synchronization_pikovsky_rosenblum">[9] </a>. + It is defined as + </p> +<p> + <span class="emphasis"><em>dφ<sub>​k</sub> / dt = ω<sub>​k</sub> + ε / N Σ<sub>​j</sub> sin( φ<sub>​j</sub> - φ<sub>​k</sub> )</em></span> + </p> +<p> + The natural frequencies <span class="emphasis"><em>ω<sub>​i</sub></em></span> of each oscillator follow + some distribution and <span class="emphasis"><em>ε</em></span> is the coupling strength. We + choose here a Lorentzian distribution for <span class="emphasis"><em>ω<sub>​i</sub></em></span>. Interestingly + a phase transition can be observed if the coupling strength exceeds a critical + value. Above this value synchronization sets in and some of the oscillators + oscillate with the same frequency despite their different natural frequencies. + The transition is also called Kuramoto transition. Its behavior can be analyzed + by employing the mean field of the phase + </p> +<p> + <span class="emphasis"><em>Z = K e<sup>i Θ</sup> = 1 / N Σ<sub>​k</sub>e<sup>i φ<sub>​k</sub></sup></em></span> + </p> +<p> + The definition of the system function is now a bit more complex since we + also need to store the individual frequencies of each oscillator. + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">container_type</span><span class="special">;</span> + + +<span class="identifier">pair</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">calc_mean_field</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">)</span> +<span class="special">{</span> + <span class="identifier">size_t</span> <span class="identifier">n</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">();</span> + <span class="keyword">double</span> <span class="identifier">cos_sum</span> <span class="special">=</span> <span class="number">0.0</span> <span class="special">,</span> <span class="identifier">sin_sum</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">n</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">cos_sum</span> <span class="special">+=</span> <span class="identifier">cos</span><span class="special">(</span> <span class="identifier">x</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">);</span> + <span class="identifier">sin_sum</span> <span class="special">+=</span> <span class="identifier">sin</span><span class="special">(</span> <span class="identifier">x</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">);</span> + <span class="special">}</span> + <span class="identifier">cos_sum</span> <span class="special">/=</span> <span class="keyword">double</span><span class="special">(</span> <span class="identifier">n</span> <span class="special">);</span> + <span class="identifier">sin_sum</span> <span class="special">/=</span> <span class="keyword">double</span><span class="special">(</span> <span class="identifier">n</span> <span class="special">);</span> + + <span class="keyword">double</span> <span class="identifier">K</span> <span class="special">=</span> <span class="identifier">sqrt</span><span class="special">(</span> <span class="identifier">cos_sum</span> <span class="special">*</span> <span class="identifier">cos_sum</span> <span class="special">+</span> <span class="identifier">sin_sum</span> <span class="special">*</span> <span class="identifier">sin_sum</span> <span class="special">);</span> + <span class="keyword">double</span> <span class="identifier">Theta</span> <span class="special">=</span> <span class="identifier">atan2</span><span class="special">(</span> <span class="identifier">sin_sum</span> <span class="special">,</span> <span class="identifier">cos_sum</span> <span class="special">);</span> + + <span class="keyword">return</span> <span class="identifier">make_pair</span><span class="special">(</span> <span class="identifier">K</span> <span class="special">,</span> <span class="identifier">Theta</span> <span class="special">);</span> +<span class="special">}</span> + + +<span class="keyword">struct</span> <span class="identifier">phase_ensemble</span> +<span class="special">{</span> + <span class="identifier">container_type</span> <span class="identifier">m_omega</span><span class="special">;</span> + <span class="keyword">double</span> <span class="identifier">m_epsilon</span><span class="special">;</span> + + <span class="identifier">phase_ensemble</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">n</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">g</span> <span class="special">=</span> <span class="number">1.0</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">epsilon</span> <span class="special">=</span> <span class="number">1.0</span> <span class="special">)</span> + <span class="special">:</span> <span class="identifier">m_omega</span><span class="special">(</span> <span class="identifier">n</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_epsilon</span><span class="special">(</span> <span class="identifier">epsilon</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">create_frequencies</span><span class="special">(</span> <span class="identifier">g</span> <span class="special">);</span> + <span class="special">}</span> + + <span class="keyword">void</span> <span class="identifier">create_frequencies</span><span class="special">(</span> <span class="keyword">double</span> <span class="identifier">g</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mt19937</span> <span class="identifier">rng</span><span class="special">;</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">cauchy_distribution</span><span class="special"><></span> <span class="identifier">cauchy</span><span class="special">(</span> <span class="number">0.0</span> <span class="special">,</span> <span class="identifier">g</span> <span class="special">);</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">variate_generator</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mt19937</span><span class="special">&,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">cauchy_distribution</span><span class="special"><></span> <span class="special">></span> <span class="identifier">gen</span><span class="special">(</span> <span class="identifier">rng</span> <span class="special">,</span> <span class="identifier">cauchy</span> <span class="special">);</span> + <span class="identifier">generate</span><span class="special">(</span> <span class="identifier">m_omega</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">m_omega</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">gen</span> <span class="special">);</span> + <span class="special">}</span> + + <span class="keyword">void</span> <span class="identifier">set_epsilon</span><span class="special">(</span> <span class="keyword">double</span> <span class="identifier">epsilon</span> <span class="special">)</span> <span class="special">{</span> <span class="identifier">m_epsilon</span> <span class="special">=</span> <span class="identifier">epsilon</span><span class="special">;</span> <span class="special">}</span> + + <span class="keyword">double</span> <span class="identifier">get_epsilon</span><span class="special">(</span> <span class="keyword">void</span> <span class="special">)</span> <span class="keyword">const</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">m_epsilon</span><span class="special">;</span> <span class="special">}</span> + + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">double</span> <span class="comment">/* t */</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="identifier">pair</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">mean</span> <span class="special">=</span> <span class="identifier">calc_mean_field</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">);</span> + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">m_omega</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">+</span> <span class="identifier">m_epsilon</span> <span class="special">*</span> <span class="identifier">mean</span><span class="special">.</span><span class="identifier">first</span> <span class="special">*</span> <span class="identifier">sin</span><span class="special">(</span> <span class="identifier">mean</span><span class="special">.</span><span class="identifier">second</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">);</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + Note, that we have used <span class="emphasis"><em>Z</em></span> to simplify the equations + of motion. Next, we create an observer which computes the value of <span class="emphasis"><em>Z</em></span> + and we record <span class="emphasis"><em>Z</em></span> for different values of <span class="emphasis"><em>ε</em></span>. + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">statistics_observer</span> +<span class="special">{</span> + <span class="keyword">double</span> <span class="identifier">m_K_mean</span><span class="special">;</span> + <span class="identifier">size_t</span> <span class="identifier">m_count</span><span class="special">;</span> + + <span class="identifier">statistics_observer</span><span class="special">(</span> <span class="keyword">void</span> <span class="special">)</span> + <span class="special">:</span> <span class="identifier">m_K_mean</span><span class="special">(</span> <span class="number">0.0</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_count</span><span class="special">(</span> <span class="number">0</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">State</span> <span class="special">></span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">pair</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">mean</span> <span class="special">=</span> <span class="identifier">calc_mean_field</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">);</span> + <span class="identifier">m_K_mean</span> <span class="special">+=</span> <span class="identifier">mean</span><span class="special">.</span><span class="identifier">first</span><span class="special">;</span> + <span class="special">++</span><span class="identifier">m_count</span><span class="special">;</span> + <span class="special">}</span> + + <span class="keyword">double</span> <span class="identifier">get_K_mean</span><span class="special">(</span> <span class="keyword">void</span> <span class="special">)</span> <span class="keyword">const</span> <span class="special">{</span> <span class="keyword">return</span> <span class="special">(</span> <span class="identifier">m_count</span> <span class="special">!=</span> <span class="number">0</span> <span class="special">)</span> <span class="special">?</span> <span class="identifier">m_K_mean</span> <span class="special">/</span> <span class="keyword">double</span><span class="special">(</span> <span class="identifier">m_count</span> <span class="special">)</span> <span class="special">:</span> <span class="number">0.0</span> <span class="special">;</span> <span class="special">}</span> + + <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">(</span> <span class="keyword">void</span> <span class="special">)</span> <span class="special">{</span> <span class="identifier">m_K_mean</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> <span class="identifier">m_count</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + Now, we do several integrations for different values of <span class="emphasis"><em>ε</em></span> + and record <span class="emphasis"><em>Z</em></span>. The result nicely confirms the analytical + result of the phase transition, i.e. in our example the standard deviation + of the Lorentzian is 1 such that the transition will be observed at <span class="emphasis"><em>ε = + 2</em></span>. + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">n</span> <span class="special">=</span> <span class="number">16384</span><span class="special">;</span> +<span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">dt</span> <span class="special">=</span> <span class="number">0.1</span><span class="special">;</span> + +<span class="identifier">container_type</span> <span class="identifier">x</span><span class="special">(</span> <span class="identifier">n</span> <span class="special">);</span> + +<span class="identifier">boost</span><span class="special">::</span><span class="identifier">mt19937</span> <span class="identifier">rng</span><span class="special">;</span> +<span class="identifier">boost</span><span class="special">::</span><span class="identifier">uniform_real</span><span class="special"><></span> <span class="identifier">unif</span><span class="special">(</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">2.0</span> <span class="special">*</span> <span class="identifier">M_PI</span> <span class="special">);</span> +<span class="identifier">boost</span><span class="special">::</span><span class="identifier">variate_generator</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mt19937</span><span class="special">&,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uniform_real</span><span class="special"><></span> <span class="special">></span> <span class="identifier">gen</span><span class="special">(</span> <span class="identifier">rng</span> <span class="special">,</span> <span class="identifier">unif</span> <span class="special">);</span> + +<span class="comment">// gamma = 1, the phase transition occurs at epsilon = 2</span> +<span class="identifier">phase_ensemble</span> <span class="identifier">ensemble</span><span class="special">(</span> <span class="identifier">n</span> <span class="special">,</span> <span class="number">1.0</span> <span class="special">);</span> +<span class="identifier">statistics_observer</span> <span class="identifier">obs</span><span class="special">;</span> + +<span class="keyword">for</span><span class="special">(</span> <span class="keyword">double</span> <span class="identifier">epsilon</span> <span class="special">=</span> <span class="number">0.0</span> <span class="special">;</span> <span class="identifier">epsilon</span> <span class="special"><</span> <span class="number">5.0</span> <span class="special">;</span> <span class="identifier">epsilon</span> <span class="special">+=</span> <span class="number">0.1</span> <span class="special">)</span> +<span class="special">{</span> + <span class="identifier">ensemble</span><span class="special">.</span><span class="identifier">set_epsilon</span><span class="special">(</span> <span class="identifier">epsilon</span> <span class="special">);</span> + <span class="identifier">obs</span><span class="special">.</span><span class="identifier">reset</span><span class="special">();</span> + + <span class="comment">// start with random initial conditions</span> + <span class="identifier">generate</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">gen</span> <span class="special">);</span> + + <span class="comment">// calculate some transients steps</span> + <span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">runge_kutta4</span><span class="special"><</span> <span class="identifier">container_type</span> <span class="special">>()</span> <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span> <span class="identifier">ensemble</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> + + <span class="comment">// integrate and compute the statistics</span> + <span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">runge_kutta4</span><span class="special"><</span> <span class="identifier">container_type</span> <span class="special">>()</span> <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span> <span class="identifier">ensemble</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">100.0</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span> <span class="identifier">obs</span> <span class="special">)</span> <span class="special">);</span> + <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">epsilon</span> <span class="special"><<</span> <span class="string">"\t"</span> <span class="special"><<</span> <span class="identifier">obs</span><span class="special">.</span><span class="identifier">get_K_mean</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> +<span class="special">}</span> +</pre> +<p> + </p> +<p> + The full cpp file for this example can be found here <a href="../../../../../../../libs/numeric/odeint/examples/phase_oscillator_ensemble.cpp" target="_top">phase_oscillator_ensemble.cpp</a> + </p> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="lattice_systems.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="using_boost__units.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/harmonic_oscillator.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/harmonic_oscillator.html new file mode 100644 index 000000000..4fd546d72 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/harmonic_oscillator.html @@ -0,0 +1,504 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Harmonic oscillator</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../tutorial.html" title="Tutorial"> +<link rel="prev" href="../tutorial.html" title="Tutorial"> +<link rel="next" href="solar_system.html" title="Solar system"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../tutorial.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="solar_system.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.tutorial.harmonic_oscillator"></a><a class="link" href="harmonic_oscillator.html" title="Harmonic oscillator">Harmonic + oscillator</a> +</h3></div></div></div> +<div class="toc"><dl class="toc"> +<dt><span class="section"><a href="harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.define_the_ode">Define + the ODE</a></span></dt> +<dt><span class="section"><a href="harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.stepper_types">Stepper + Types</a></span></dt> +<dt><span class="section"><a href="harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_constant_step_size">Integration + with Constant Step Size</a></span></dt> +<dt><span class="section"><a href="harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_adaptive_step_size">Integration + with Adaptive Step Size</a></span></dt> +</dl></div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.tutorial.harmonic_oscillator.define_the_ode"></a><a class="link" href="harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.define_the_ode" title="Define the ODE">Define + the ODE</a> +</h4></div></div></div> +<p> + First of all, you have to specify the data type that represents a state + <span class="emphasis"><em>x</em></span> of your system. Mathematically, this usually is + an n-dimensional vector with real numbers or complex numbers as scalar + objects. For odeint the most natural way is to use <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span></code> or <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span> <span class="identifier">complex</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="special">></span></code> + to represent the system state. However, odeint can deal with other container + types as well, e.g. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">N</span> <span class="special">></span></code>, as long as it fulfills some requirements + defined below. + </p> +<p> + To integrate a differential equation numerically, one also has to define + the rhs of the equation <span class="emphasis"><em>x' = f(x)</em></span>. In odeint you supply + this function in terms of an object that implements the ()-operator with + a certain parameter structure. Hence, the straightforward way would be + to just define a function, e.g: + </p> +<p> +</p> +<pre class="programlisting"><span class="comment">/* The type of container used to hold the state vector */</span> +<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span> + +<span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">gam</span> <span class="special">=</span> <span class="number">0.15</span><span class="special">;</span> + +<span class="comment">/* The rhs of x' = f(x) */</span> +<span class="keyword">void</span> <span class="identifier">harmonic_oscillator</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="comment">/* t */</span> <span class="special">)</span> +<span class="special">{</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">gam</span><span class="special">*</span><span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span> +<span class="special">}</span> +</pre> +<p> + </p> +<p> + The parameters of the function must follow the example above where <code class="computeroutput"><span class="identifier">x</span></code> is the current state, here a two-component + vector containing position <span class="emphasis"><em>q</em></span> and momentum <span class="emphasis"><em>p</em></span> + of the oscillator, <code class="computeroutput"><span class="identifier">dxdt</span></code> + is the derivative <span class="emphasis"><em>x'</em></span> and should be filled by the function + with <span class="emphasis"><em>f(x)</em></span>, and <code class="computeroutput"><span class="identifier">t</span></code> + is the current time. Note that in this example <span class="emphasis"><em>t</em></span> is + not required to calculate <span class="emphasis"><em>f</em></span>, however odeint expects + the function signature to have exactly three parameters (there are exception, + discussed later). + </p> +<p> + A more sophisticated approach is to implement the system as a class where + the rhs function is defined as the ()-operator of the class with the same + parameter structure as above: + </p> +<p> +</p> +<pre class="programlisting"><span class="comment">/* The rhs of x' = f(x) defined as a class */</span> +<span class="keyword">class</span> <span class="identifier">harm_osc</span> <span class="special">{</span> + + <span class="keyword">double</span> <span class="identifier">m_gam</span><span class="special">;</span> + +<span class="keyword">public</span><span class="special">:</span> + <span class="identifier">harm_osc</span><span class="special">(</span> <span class="keyword">double</span> <span class="identifier">gam</span> <span class="special">)</span> <span class="special">:</span> <span class="identifier">m_gam</span><span class="special">(</span><span class="identifier">gam</span><span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()</span> <span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="comment">/* t */</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">m_gam</span><span class="special">*</span><span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + odeint can deal with instances of such classes instead of pure functions + which allows for cleaner code. + </p> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.tutorial.harmonic_oscillator.stepper_types"></a><a class="link" href="harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.stepper_types" title="Stepper Types">Stepper + Types</a> +</h4></div></div></div> +<p> + Numerical integration works iteratively, that means you start at a state + <span class="emphasis"><em>x(t)</em></span> and perform a time-step of length <span class="emphasis"><em>dt</em></span> + to obtain the approximate state <span class="emphasis"><em>x(t+dt)</em></span>. There exist + many different methods to perform such a time-step each of which has a + certain order <span class="emphasis"><em>q</em></span>. If the order of a method is <span class="emphasis"><em>q</em></span> + than it is accurate up to term <span class="emphasis"><em>~dt<sup>q</sup></em></span> that means the + error in <span class="emphasis"><em>x</em></span> made by such a step is <span class="emphasis"><em>~dt<sup>q+1</sup></em></span>. + odeint provides several steppers of different orders, see <a class="link" href="../odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.stepper_overview" title="Stepper overview">Stepper + overview</a>. + </p> +<p> + Some of steppers in the table above are special: Some need the Jacobian + of the ODE, others are constructed for special ODE-systems like Hamiltonian + systems. We will show typical examples and use-cases in this tutorial and + which kind of steppers should be applied. + </p> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_constant_step_size"></a><a class="link" href="harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_constant_step_size" title="Integration with Constant Step Size">Integration + with Constant Step Size</a> +</h4></div></div></div> +<p> + The basic stepper just performs one time-step and doesn't give you any + information about the error that was made (except that you know it is of + order <span class="emphasis"><em>q+1</em></span>). Such steppers are used with constant step + size that should be chosen small enough to have reasonable small errors. + However, you should apply some sort of validity check of your results (like + observing conserved quantities) because you have no other control of the + error. The following example defines a basic stepper based on the classical + Runge-Kutta scheme of 4th order. The declaration of the stepper requires + the state type as template parameter. The integration can now be done by + using the <code class="computeroutput"><span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">Stepper</span><span class="special">,</span> <span class="identifier">System</span><span class="special">,</span> <span class="identifier">state</span><span class="special">,</span> <span class="identifier">start_time</span><span class="special">,</span> <span class="identifier">end_time</span><span class="special">,</span> <span class="identifier">step_size</span> + <span class="special">)</span></code> function from odeint: + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">runge_kutta4</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <span class="identifier">stepper</span><span class="special">;</span> +<span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">stepper</span> <span class="special">,</span> <span class="identifier">harmonic_oscillator</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.01</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + This call integrates the system defined by <code class="computeroutput"><span class="identifier">harmonic_oscillator</span></code> + using the RK4 method from <span class="emphasis"><em>t=0</em></span> to <span class="emphasis"><em>10</em></span> + with a step-size <span class="emphasis"><em>dt=0.01</em></span> and the initial condition + given in <code class="computeroutput"><span class="identifier">x</span></code>. The result, + <span class="emphasis"><em>x(t=10)</em></span> is stored in <code class="computeroutput"><span class="identifier">x</span></code> + (in-place). Each stepper defines a <code class="computeroutput"><span class="identifier">do_step</span></code> + method which can also be used directly. So, you write down the above example + as + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">dt</span> <span class="special">=</span> <span class="number">0.01</span><span class="special">;</span> +<span class="keyword">for</span><span class="special">(</span> <span class="keyword">double</span> <span class="identifier">t</span><span class="special">=</span><span class="number">0.0</span> <span class="special">;</span> <span class="identifier">t</span><span class="special"><</span><span class="number">10.0</span> <span class="special">;</span> <span class="identifier">t</span><span class="special">+=</span> <span class="identifier">dt</span> <span class="special">)</span> + <span class="identifier">stepper</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">harmonic_oscillator</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +</pre> +<p> + </p> +<div class="tip"><table border="0" summary="Tip"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../../../../../doc/src/images/tip.png"></td> +<th align="left">Tip</th> +</tr> +<tr><td align="left" valign="top"> +<p> + If you have a C++11 enabled compiler you can easily use lambdas to create + the system function : + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">runge_kutta4</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <span class="identifier">stepper</span><span class="special">;</span> +<span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">stepper</span> <span class="special">,</span> <span class="special">[](</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span> <span class="special">{</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span> <span class="identifier">dxdt</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">gam</span><span class="special">*</span><span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span> <span class="special">}</span> + <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.01</span> <span class="special">);</span> +</pre> +<p> + </p> +</td></tr> +</table></div> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_adaptive_step_size"></a><a class="link" href="harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_adaptive_step_size" title="Integration with Adaptive Step Size">Integration + with Adaptive Step Size</a> +</h4></div></div></div> +<p> + To improve the numerical results and additionally minimize the computational + effort, the application of a step size control is advisable. Step size + control is realized via stepper algorithms that additionally provide an + error estimation of the applied step. odeint provides a number of such + <span class="bold"><strong>ErrorSteppers</strong></span> and we will show their usage + on the example of <code class="computeroutput"><span class="identifier">explicit_error_rk54_ck</span></code> + - a 5th order Runge-Kutta method with 4th order error estimation and coefficients + introduced by Cash and Karp. + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">runge_kutta_cash_karp54</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <span class="identifier">error_stepper_type</span><span class="special">;</span> +</pre> +<p> + </p> +<p> + Given the error stepper, one still needs an instance that checks the error + and adjusts the step size accordingly. In odeint, this is done by <span class="bold"><strong>ControlledSteppers</strong></span>. For the <code class="computeroutput"><span class="identifier">runge_kutta_cash_karp54</span></code> + stepper a <code class="computeroutput"><span class="identifier">controlled_runge_kutta</span></code> + stepper exists which can be used via + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">controlled_runge_kutta</span><span class="special"><</span> <span class="identifier">error_stepper_type</span> <span class="special">></span> <span class="identifier">controlled_stepper_type</span><span class="special">;</span> +<span class="identifier">controlled_stepper_type</span> <span class="identifier">controlled_stepper</span><span class="special">;</span> +<span class="identifier">integrate_adaptive</span><span class="special">(</span> <span class="identifier">controlled_stepper</span> <span class="special">,</span> <span class="identifier">harmonic_oscillator</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.01</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + As above, this integrates the system defined by <code class="computeroutput"><span class="identifier">harmonic_oscillator</span></code>, + but now using an adaptive step size method based on the Runge-Kutta Cash-Karp + 54 scheme from <span class="emphasis"><em>t=0</em></span> to <span class="emphasis"><em>10</em></span> with + an initial step size of <span class="emphasis"><em>dt=0.01</em></span> (will be adjusted) + and the initial condition given in x. The result, <span class="emphasis"><em>x(t=10)</em></span>, + will also be stored in x (in-place). + </p> +<p> + In the above example an error stepper is nested in a controlled stepper. + This is a nice technique; however one drawback is that one always needs + to define both steppers. One could also write the instantiation of the + controlled stepper into the call of the integrate function but a complete + knowledge of the underlying stepper types is still necessary. Another point + is, that the error tolerances for the step size control are not easily + included into the controlled stepper. Both issues can be solved by using + <code class="computeroutput"><span class="identifier">make_controlled</span></code>: + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">integrate_adaptive</span><span class="special">(</span> <span class="identifier">make_controlled</span><span class="special"><</span> <span class="identifier">error_stepper_type</span> <span class="special">>(</span> <span class="number">1.0e-10</span> <span class="special">,</span> <span class="number">1.0e-6</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">harmonic_oscillator</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.01</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + <code class="computeroutput"><span class="identifier">make_controlled</span></code> can be + used with many of the steppers of odeint. The first parameter is the absolute + error tolerance <span class="emphasis"><em>eps_abs</em></span> and the second is the relative + error tolerance <span class="emphasis"><em>eps_rel</em></span> which is used during the integration. + The template parameter determines from which error stepper a controlled + stepper should be instantiated. An alternative syntax of <code class="computeroutput"><span class="identifier">make_controlled</span></code> is + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">integrate_adaptive</span><span class="special">(</span> <span class="identifier">make_controlled</span><span class="special">(</span> <span class="number">1.0e-10</span> <span class="special">,</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="identifier">error_stepper_type</span><span class="special">()</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">harmonic_oscillator</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.01</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + For the Runge-Kutta controller the error made during one step is compared + with <span class="emphasis"><em>eps_abs + eps_rel * ( a<sub>x</sub> * |x| + a<sub>dxdt</sub> * dt * |dxdt| )</em></span>. + If the error is smaller than this value the current step is accepted, otherwise + it is rejected and the step size is decreased. Note, that the step size + is also increased if the error gets too small compared to the rhs of the + above relation. The full instantiation of the <code class="computeroutput"><span class="identifier">controlled_runge_kutta</span></code> + with all parameters is therefore + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">abs_err</span> <span class="special">=</span> <span class="number">1.0e-10</span> <span class="special">,</span> <span class="identifier">rel_err</span> <span class="special">=</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="identifier">a_x</span> <span class="special">=</span> <span class="number">1.0</span> <span class="special">,</span> <span class="identifier">a_dxdt</span> <span class="special">=</span> <span class="number">1.0</span><span class="special">;</span> +<span class="identifier">controlled_stepper_type</span> <span class="identifier">controlled_stepper</span><span class="special">(</span> + <span class="identifier">default_error_checker</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">>(</span> <span class="identifier">abs_err</span> <span class="special">,</span> <span class="identifier">rel_err</span> <span class="special">,</span> <span class="identifier">a_x</span> <span class="special">,</span> <span class="identifier">a_dxdt</span> <span class="special">)</span> <span class="special">);</span> +<span class="identifier">integrate_adaptive</span><span class="special">(</span> <span class="identifier">controlled_stepper</span> <span class="special">,</span> <span class="identifier">harmonic_oscillator</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.01</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + When using <code class="computeroutput"><span class="identifier">make_controlled</span></code> + the parameter <span class="emphasis"><em>a<sub>x</sub></em></span> and <span class="emphasis"><em>a<sub>dxdt</sub></em></span> are + used with their standard values of 1. + </p> +<p> + In the tables below, one can find all steppers which are working with + <code class="computeroutput"><span class="identifier">make_controlled</span></code> and <code class="computeroutput"><span class="identifier">make_dense_output</span></code> which is the analog + for the dense output steppers. + </p> +<div class="table"> +<a name="boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_adaptive_step_size.generation_functions_make_controlled__abs_error___rel_error___stepper__"></a><p class="title"><b>Table 1.2. Generation functions make_controlled( abs_error , rel_error , stepper + )</b></p> +<div class="table-contents"><table class="table" summary="Generation functions make_controlled( abs_error , rel_error , stepper + )"> +<colgroup> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Stepper + </p> + </th> +<th> + <p> + Result of make_controlled + </p> + </th> +<th> + <p> + Remarks + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">runge_kutta_cash_karp54</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">controlled_runge_kutta</span><span class="special"><</span> <span class="identifier">runge_kutta_cash_karp54</span> + <span class="special">,</span> <span class="identifier">default_error_checker</span><span class="special"><...></span> <span class="special">></span></code> + </p> + </td> +<td> + <p> + <span class="emphasis"><em>a<sub>x</sub>=1</em></span>, <span class="emphasis"><em>a<sub>dxdt</sub>=1</em></span> + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">runge_kutta_fehlberg78</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">controlled_runge_kutta</span><span class="special"><</span> <span class="identifier">runge_kutta_fehlberg78</span> + <span class="special">,</span> <span class="identifier">default_error_checker</span><span class="special"><...></span> <span class="special">></span></code> + </p> + </td> +<td> + <p> + <span class="emphasis"><em>a<sub>x</sub>=1</em></span>, <span class="emphasis"><em>a<sub>dxdt</sub>=1</em></span> + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">runge_kutta_dopri5</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">controlled_runge_kutta</span><span class="special"><</span> <span class="identifier">runge_kutta_dopri5</span> + <span class="special">,</span> <span class="identifier">default_error_checker</span><span class="special"><...></span> <span class="special">></span></code> + </p> + </td> +<td> + <p> + <span class="emphasis"><em>a <sub>x</sub>=1</em></span>, <span class="emphasis"><em>a<sub>dxdt</sub>=1</em></span> + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">rosenbrock4</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">rosenbrock4_controlled</span><span class="special"><</span> <span class="identifier">rosenbrock4</span> + <span class="special">></span></code> + </p> + </td> +<td> + <p> + - + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<br class="table-break"><div class="table"> +<a name="boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_adaptive_step_size.generation_functions_make_dense_output__abs_error___rel_error___stepper__"></a><p class="title"><b>Table 1.3. Generation functions make_dense_output( abs_error , rel_error , + stepper )</b></p> +<div class="table-contents"><table class="table" summary="Generation functions make_dense_output( abs_error , rel_error , + stepper )"> +<colgroup> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Stepper + </p> + </th> +<th> + <p> + Result of make_dense_output + </p> + </th> +<th> + <p> + Remarks + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">runge_kutta_dopri5</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">dense_output_runge_kutta</span><span class="special"><</span> <span class="identifier">controlled_runge_kutta</span><span class="special"><</span> <span class="identifier">runge_kutta_dopri5</span> + <span class="special">,</span> <span class="identifier">default_error_checker</span><span class="special"><...></span> <span class="special">></span> + <span class="special">></span></code> + </p> + </td> +<td> + <p> + <span class="emphasis"><em>a <sub>x</sub>=1</em></span>, <span class="emphasis"><em>a<sub>dxdt</sub>=1</em></span> + </p> + </td> +</tr> +<tr> +<td> + <p> + <code class="computeroutput"><span class="identifier">rosenbrock4</span></code> + </p> + </td> +<td> + <p> + <code class="computeroutput"><span class="identifier">rosenbrock4_dense_output</span><span class="special"><</span> <span class="identifier">rosenbrock4_controller</span><span class="special"><</span> <span class="identifier">rosenbrock4</span> + <span class="special">></span> <span class="special">></span></code> + </p> + </td> +<td> + <p> + - + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<br class="table-break"><p> + When using <code class="computeroutput"><span class="identifier">make_controlled</span></code> + or <code class="computeroutput"><span class="identifier">make_dense_output</span></code> one + should be aware which exact type is used and how the step size control + works. + </p> +</div> +<p> + The full source file for this example can be found here: <a href="../../../../../../../libs/numeric/odeint/examples/harmonic_oscillator.cpp" target="_top">harmonic_oscillator.cpp</a> + </p> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../tutorial.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="solar_system.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/lattice_systems.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/lattice_systems.html new file mode 100644 index 000000000..c2e37f58f --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/lattice_systems.html @@ -0,0 +1,184 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Lattice systems</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../tutorial.html" title="Tutorial"> +<link rel="prev" href="complex_state_types.html" title="Complex state types"> +<link rel="next" href="ensembles_of_oscillators.html" title="Ensembles of oscillators"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="complex_state_types.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ensembles_of_oscillators.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.tutorial.lattice_systems"></a><a class="link" href="lattice_systems.html" title="Lattice systems">Lattice + systems</a> +</h3></div></div></div> +<p> + odeint can also be used to solve ordinary differential equations defined + on lattices. A prominent example is the Fermi-Pasta-Ulam system <a class="link" href="../literature.html#fpu_scholarpedia">[8] + </a>. It is a Hamiltonian system of nonlinear coupled harmonic oscillators. + The Hamiltonian is + </p> +<p> + <span class="emphasis"><em>H = Σ<sub>​i</sub> p<sub>​i</sub><sup>2</sup>/2 + 1/2 ( q<sub>​i+1</sub> - q<sub>​i</sub> )^2 + β / 4 ( q<sub>​i+1</sub> - q<sub>​i</sub> )^4 </em></span> + </p> +<p> + Remarkably, the Fermi-Pasta-Ulam system was the first numerical experiment + to be implemented on a computer. It was studied at Los Alamos in 1953 on + one of the first computers (a MANIAC I) and it triggered a whole new tree + of mathematical and physical science. + </p> +<p> + Like the <a class="link" href="solar_system.html" title="Solar system">Solar + System</a>, the FPU is solved again by a symplectic solver, but in this + case we can speed up the computation because the <span class="emphasis"><em>q</em></span> components + trivially reduce to <span class="emphasis"><em>dq<sub>​i</sub> / dt = p<sub>​i</sub></em></span>. odeint is capable + of doing this performance improvement. All you have to do is to call the + symplectic solver with an state function for the <span class="emphasis"><em>p</em></span> components. + Here is how this function looks like + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">container_type</span><span class="special">;</span> + +<span class="keyword">struct</span> <span class="identifier">fpu</span> +<span class="special">{</span> + <span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">m_beta</span><span class="special">;</span> + + <span class="identifier">fpu</span><span class="special">(</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">beta</span> <span class="special">=</span> <span class="number">1.0</span> <span class="special">)</span> <span class="special">:</span> <span class="identifier">m_beta</span><span class="special">(</span> <span class="identifier">beta</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="comment">// system function defining the ODE</span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">q</span> <span class="special">,</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">dpdt</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="identifier">size_t</span> <span class="identifier">n</span> <span class="special">=</span> <span class="identifier">q</span><span class="special">.</span><span class="identifier">size</span><span class="special">();</span> + <span class="keyword">double</span> <span class="identifier">tmp</span> <span class="special">=</span> <span class="identifier">q</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="number">0.0</span><span class="special">;</span> + <span class="keyword">double</span> <span class="identifier">tmp2</span> <span class="special">=</span> <span class="identifier">tmp</span> <span class="special">+</span> <span class="identifier">m_beta</span> <span class="special">*</span> <span class="identifier">tmp</span> <span class="special">*</span> <span class="identifier">tmp</span> <span class="special">*</span> <span class="identifier">tmp</span><span class="special">;</span> + <span class="identifier">dpdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">tmp2</span><span class="special">;</span> + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">n</span><span class="special">-</span><span class="number">1</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">tmp</span> <span class="special">=</span> <span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">+</span><span class="number">1</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">];</span> + <span class="identifier">tmp2</span> <span class="special">=</span> <span class="identifier">tmp</span> <span class="special">+</span> <span class="identifier">m_beta</span> <span class="special">*</span> <span class="identifier">tmp</span> <span class="special">*</span> <span class="identifier">tmp</span> <span class="special">*</span> <span class="identifier">tmp</span><span class="special">;</span> + <span class="identifier">dpdt</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">+=</span> <span class="identifier">tmp2</span><span class="special">;</span> + <span class="identifier">dpdt</span><span class="special">[</span><span class="identifier">i</span><span class="special">+</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">tmp2</span><span class="special">;</span> + <span class="special">}</span> + <span class="identifier">tmp</span> <span class="special">=</span> <span class="special">-</span> <span class="identifier">q</span><span class="special">[</span><span class="identifier">n</span><span class="special">-</span><span class="number">1</span><span class="special">];</span> + <span class="identifier">tmp2</span> <span class="special">=</span> <span class="identifier">tmp</span> <span class="special">+</span> <span class="identifier">m_beta</span> <span class="special">*</span> <span class="identifier">tmp</span> <span class="special">*</span> <span class="identifier">tmp</span> <span class="special">*</span> <span class="identifier">tmp</span><span class="special">;</span> + <span class="identifier">dpdt</span><span class="special">[</span><span class="identifier">n</span><span class="special">-</span><span class="number">1</span><span class="special">]</span> <span class="special">+=</span> <span class="identifier">tmp2</span><span class="special">;</span> + <span class="special">}</span> + + <span class="comment">// calculates the energy of the system</span> + <span class="keyword">double</span> <span class="identifier">energy</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">q</span> <span class="special">,</span> <span class="keyword">const</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">p</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="comment">// ...</span> + <span class="special">}</span> + + <span class="comment">// calculates the local energy of the system</span> + <span class="keyword">void</span> <span class="identifier">local_energy</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">q</span> <span class="special">,</span> <span class="keyword">const</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">p</span> <span class="special">,</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">e</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="comment">// ...</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + You can also use <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">N</span> <span class="special">></span></code> + for the state type. + </p> +<p> + Now, you have to define your initial values and perform the integration: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">n</span> <span class="special">=</span> <span class="number">64</span><span class="special">;</span> +<span class="identifier">container_type</span> <span class="identifier">q</span><span class="special">(</span> <span class="identifier">n</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">p</span><span class="special">(</span> <span class="identifier">n</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">);</span> + +<span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">n</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> +<span class="special">{</span> + <span class="identifier">p</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> + <span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">=</span> <span class="number">32.0</span> <span class="special">*</span> <span class="identifier">sin</span><span class="special">(</span> <span class="keyword">double</span><span class="special">(</span> <span class="identifier">i</span> <span class="special">+</span> <span class="number">1</span> <span class="special">)</span> <span class="special">/</span> <span class="keyword">double</span><span class="special">(</span> <span class="identifier">n</span> <span class="special">+</span> <span class="number">1</span> <span class="special">)</span> <span class="special">*</span> <span class="identifier">M_PI</span> <span class="special">);</span> +<span class="special">}</span> + + +<span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">dt</span> <span class="special">=</span> <span class="number">0.1</span><span class="special">;</span> + +<span class="keyword">typedef</span> <span class="identifier">symplectic_rkn_sb3a_mclachlan</span><span class="special"><</span> <span class="identifier">container_type</span> <span class="special">></span> <span class="identifier">stepper_type</span><span class="special">;</span> +<span class="identifier">fpu</span> <span class="identifier">fpu_instance</span><span class="special">(</span> <span class="number">8.0</span> <span class="special">);</span> + +<span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">stepper_type</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">fpu_instance</span> <span class="special">,</span> + <span class="identifier">make_pair</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span> <span class="identifier">q</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span> <span class="identifier">p</span> <span class="special">)</span> <span class="special">)</span> <span class="special">,</span> + <span class="number">0.0</span> <span class="special">,</span> <span class="number">1000.0</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">,</span> <span class="identifier">streaming_observer</span><span class="special">(</span> <span class="identifier">cout</span> <span class="special">,</span> <span class="identifier">fpu_instance</span> <span class="special">,</span> <span class="number">10</span> <span class="special">)</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + The observer uses a reference to the system object to calculate the local + energies: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">streaming_observer</span> +<span class="special">{</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">m_out</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">fpu</span> <span class="special">&</span><span class="identifier">m_fpu</span><span class="special">;</span> + <span class="identifier">size_t</span> <span class="identifier">m_write_every</span><span class="special">;</span> + <span class="identifier">size_t</span> <span class="identifier">m_count</span><span class="special">;</span> + + <span class="identifier">streaming_observer</span><span class="special">(</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span> <span class="special">&</span><span class="identifier">out</span> <span class="special">,</span> <span class="keyword">const</span> <span class="identifier">fpu</span> <span class="special">&</span><span class="identifier">f</span> <span class="special">,</span> <span class="identifier">size_t</span> <span class="identifier">write_every</span> <span class="special">=</span> <span class="number">100</span> <span class="special">)</span> + <span class="special">:</span> <span class="identifier">m_out</span><span class="special">(</span> <span class="identifier">out</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_fpu</span><span class="special">(</span> <span class="identifier">f</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_write_every</span><span class="special">(</span> <span class="identifier">write_every</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_count</span><span class="special">(</span> <span class="number">0</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">State</span> <span class="special">></span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span> + <span class="special">{</span> + <span class="keyword">if</span><span class="special">(</span> <span class="special">(</span> <span class="identifier">m_count</span> <span class="special">%</span> <span class="identifier">m_write_every</span> <span class="special">)</span> <span class="special">==</span> <span class="number">0</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">q</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">first</span><span class="special">;</span> + <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">p</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">second</span><span class="special">;</span> + <span class="identifier">container_type</span> <span class="identifier">energy</span><span class="special">(</span> <span class="identifier">q</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">);</span> + <span class="identifier">m_fpu</span><span class="special">.</span><span class="identifier">local_energy</span><span class="special">(</span> <span class="identifier">q</span> <span class="special">,</span> <span class="identifier">p</span> <span class="special">,</span> <span class="identifier">energy</span> <span class="special">);</span> + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">q</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">m_out</span> <span class="special"><<</span> <span class="identifier">t</span> <span class="special"><<</span> <span class="string">"\t"</span> <span class="special"><<</span> <span class="identifier">i</span> <span class="special"><<</span> <span class="string">"\t"</span> <span class="special"><<</span> <span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special"><<</span> <span class="string">"\t"</span> <span class="special"><<</span> <span class="identifier">p</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special"><<</span> <span class="string">"\t"</span> <span class="special"><<</span> <span class="identifier">energy</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span> + <span class="special">}</span> + <span class="identifier">m_out</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span> + <span class="identifier">clog</span> <span class="special"><<</span> <span class="identifier">t</span> <span class="special"><<</span> <span class="string">"\t"</span> <span class="special"><<</span> <span class="identifier">accumulate</span><span class="special">(</span> <span class="identifier">energy</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">energy</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">)</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span> + <span class="special">}</span> + <span class="special">++</span><span class="identifier">m_count</span><span class="special">;</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + The full cpp file for this FPU example can be found here <a href="../../../../../../../libs/numeric/odeint/examples/fpu.cpp" target="_top">fpu.cpp</a> + </p> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="complex_state_types.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ensembles_of_oscillators.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/self_expanding_lattices.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/self_expanding_lattices.html new file mode 100644 index 000000000..75ef83b68 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/self_expanding_lattices.html @@ -0,0 +1,229 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Self expanding lattices</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../tutorial.html" title="Tutorial"> +<link rel="prev" href="using_arbitrary_precision_floating_point_types.html" title="Using arbitrary precision floating point types"> +<link rel="next" href="using_cuda__or_openmp__tbb_______via_thrust.html" title="Using CUDA (or OpenMP, TBB, ...) via Thrust"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="using_arbitrary_precision_floating_point_types.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="using_cuda__or_openmp__tbb_______via_thrust.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.tutorial.self_expanding_lattices"></a><a class="link" href="self_expanding_lattices.html" title="Self expanding lattices">Self + expanding lattices</a> +</h3></div></div></div> +<p> + odeint supports changes of the state size during integration if a state_type + is used which can be resized, like <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>. + The adjustment of the state's size has to be done from outside and the stepper + has to be instantiated with <code class="computeroutput"><span class="identifier">always_resizer</span></code> + as the template argument for the <code class="computeroutput"><span class="identifier">resizer_type</span></code>. + In this configuration, the stepper checks for changes in the state size and + adjust it's internal storage accordingly. + </p> +<p> + We show this for a Hamiltonian system of nonlinear, disordered oscillators + with nonlinear nearest neighbor coupling. + </p> +<p> + The system function is implemented in terms of a class that also provides + functions for calculating the energy. Note, that this class stores the random + potential internally which is not resized, but rather a start index is kept + which should be changed whenever the states' size change. + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">coord_type</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">pair</span><span class="special"><</span> <span class="identifier">coord_type</span> <span class="special">,</span> <span class="identifier">coord_type</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span> + +<span class="keyword">struct</span> <span class="identifier">compacton_lattice</span> +<span class="special">{</span> + <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">m_max_N</span><span class="special">;</span> + <span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">m_beta</span><span class="special">;</span> + <span class="keyword">int</span> <span class="identifier">m_pot_start_index</span><span class="special">;</span> + <span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">m_pot</span><span class="special">;</span> + + <span class="identifier">compacton_lattice</span><span class="special">(</span> <span class="keyword">int</span> <span class="identifier">max_N</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">beta</span> <span class="special">,</span> <span class="keyword">int</span> <span class="identifier">pot_start_index</span> <span class="special">)</span> + <span class="special">:</span> <span class="identifier">m_max_N</span><span class="special">(</span> <span class="identifier">max_N</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_beta</span><span class="special">(</span> <span class="identifier">beta</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_pot_start_index</span><span class="special">(</span> <span class="identifier">pot_start_index</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_pot</span><span class="special">(</span> <span class="identifier">max_N</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">srand</span><span class="special">(</span> <span class="identifier">time</span><span class="special">(</span> <span class="identifier">NULL</span> <span class="special">)</span> <span class="special">);</span> + <span class="comment">// fill random potential with iid values from [0,1]</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mt19937</span> <span class="identifier">rng</span><span class="special">;</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uniform_real</span><span class="special"><></span> <span class="identifier">unif</span><span class="special">(</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">1.0</span> <span class="special">);</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">variate_generator</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mt19937</span><span class="special">&,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uniform_real</span><span class="special"><></span> <span class="special">></span> <span class="identifier">gen</span><span class="special">(</span> <span class="identifier">rng</span> <span class="special">,</span> <span class="identifier">unif</span> <span class="special">);</span> + <span class="identifier">generate</span><span class="special">(</span> <span class="identifier">m_pot</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">m_pot</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">gen</span> <span class="special">);</span> + <span class="special">}</span> + + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">coord_type</span> <span class="special">&</span><span class="identifier">q</span> <span class="special">,</span> <span class="identifier">coord_type</span> <span class="special">&</span><span class="identifier">dpdt</span> <span class="special">)</span> + <span class="special">{</span> + <span class="comment">// calculate dpdt = -dH/dq of this hamiltonian system</span> + <span class="comment">// dp_i/dt = - V_i * q_i^3 - beta*(q_i - q_{i-1})^3 + beta*(q_{i+1} - q_i)^3</span> + <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">N</span> <span class="special">=</span> <span class="identifier">q</span><span class="special">.</span><span class="identifier">size</span><span class="special">();</span> + <span class="keyword">double</span> <span class="identifier">diff</span> <span class="special">=</span> <span class="identifier">q</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">q</span><span class="special">[</span><span class="identifier">N</span><span class="special">-</span><span class="number">1</span><span class="special">];</span> + <span class="keyword">for</span><span class="special">(</span> <span class="keyword">int</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">N</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">dpdt</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span> <span class="identifier">m_pot</span><span class="special">[</span><span class="identifier">m_pot_start_index</span><span class="special">+</span><span class="identifier">i</span><span class="special">]</span> <span class="special">*</span> <span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">]*</span><span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">]*</span><span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">-</span> + <span class="identifier">m_beta</span> <span class="special">*</span> <span class="identifier">diff</span><span class="special">*</span><span class="identifier">diff</span><span class="special">*</span><span class="identifier">diff</span><span class="special">;</span> + <span class="identifier">diff</span> <span class="special">=</span> <span class="identifier">q</span><span class="special">[(</span><span class="identifier">i</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">%</span> <span class="identifier">N</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">];</span> + <span class="identifier">dpdt</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">+=</span> <span class="identifier">m_beta</span> <span class="special">*</span> <span class="identifier">diff</span><span class="special">*</span><span class="identifier">diff</span><span class="special">*</span><span class="identifier">diff</span><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> + + <span class="keyword">void</span> <span class="identifier">energy_distribution</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">coord_type</span> <span class="special">&</span><span class="identifier">q</span> <span class="special">,</span> <span class="keyword">const</span> <span class="identifier">coord_type</span> <span class="special">&</span><span class="identifier">p</span> <span class="special">,</span> <span class="identifier">coord_type</span> <span class="special">&</span><span class="identifier">energies</span> <span class="special">)</span> + <span class="special">{</span> + <span class="comment">// computes the energy per lattice site normalized by total energy</span> + <span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">N</span> <span class="special">=</span> <span class="identifier">q</span><span class="special">.</span><span class="identifier">size</span><span class="special">();</span> + <span class="keyword">double</span> <span class="identifier">en</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">N</span> <span class="special">;</span> <span class="identifier">i</span><span class="special">++</span> <span class="special">)</span> + <span class="special">{</span> + <span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">diff</span> <span class="special">=</span> <span class="identifier">q</span><span class="special">[(</span><span class="identifier">i</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">%</span> <span class="identifier">N</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">];</span> + <span class="identifier">energies</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">p</span><span class="special">[</span><span class="identifier">i</span><span class="special">]*</span><span class="identifier">p</span><span class="special">[</span><span class="identifier">i</span><span class="special">]/</span><span class="number">2.0</span> + <span class="special">+</span> <span class="identifier">m_pot</span><span class="special">[</span><span class="identifier">m_pot_start_index</span><span class="special">+</span><span class="identifier">i</span><span class="special">]*</span><span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">]*</span><span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">]*</span><span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">]*</span><span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">]/</span><span class="number">4.0</span> + <span class="special">+</span> <span class="identifier">m_beta</span><span class="special">/</span><span class="number">4.0</span> <span class="special">*</span> <span class="identifier">diff</span><span class="special">*</span><span class="identifier">diff</span><span class="special">*</span><span class="identifier">diff</span><span class="special">*</span><span class="identifier">diff</span><span class="special">;</span> + <span class="identifier">en</span> <span class="special">+=</span> <span class="identifier">energies</span><span class="special">[</span><span class="identifier">i</span><span class="special">];</span> + <span class="special">}</span> + <span class="identifier">en</span> <span class="special">=</span> <span class="number">1.0</span><span class="special">/</span><span class="identifier">en</span><span class="special">;</span> + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">N</span> <span class="special">;</span> <span class="identifier">i</span><span class="special">++</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">energies</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">*=</span> <span class="identifier">en</span><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> + + <span class="keyword">double</span> <span class="identifier">energy</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">coord_type</span> <span class="special">&</span><span class="identifier">q</span> <span class="special">,</span> <span class="keyword">const</span> <span class="identifier">coord_type</span> <span class="special">&</span><span class="identifier">p</span> <span class="special">)</span> + <span class="special">{</span> + <span class="comment">// calculates the total energy of the excitation</span> + <span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">N</span> <span class="special">=</span> <span class="identifier">q</span><span class="special">.</span><span class="identifier">size</span><span class="special">();</span> + <span class="keyword">double</span> <span class="identifier">en</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">N</span> <span class="special">;</span> <span class="identifier">i</span><span class="special">++</span> <span class="special">)</span> + <span class="special">{</span> + <span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">diff</span> <span class="special">=</span> <span class="identifier">q</span><span class="special">[(</span><span class="identifier">i</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">%</span> <span class="identifier">N</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">];</span> + <span class="identifier">en</span> <span class="special">+=</span> <span class="identifier">p</span><span class="special">[</span><span class="identifier">i</span><span class="special">]*</span><span class="identifier">p</span><span class="special">[</span><span class="identifier">i</span><span class="special">]/</span><span class="number">2.0</span> + <span class="special">+</span> <span class="identifier">m_pot</span><span class="special">[</span><span class="identifier">m_pot_start_index</span><span class="special">+</span><span class="identifier">i</span><span class="special">]*</span><span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">]*</span><span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">]*</span><span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">]*</span><span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">/</span> <span class="number">4.0</span> + <span class="special">+</span> <span class="identifier">m_beta</span><span class="special">/</span><span class="number">4.0</span> <span class="special">*</span> <span class="identifier">diff</span><span class="special">*</span><span class="identifier">diff</span><span class="special">*</span><span class="identifier">diff</span><span class="special">*</span><span class="identifier">diff</span><span class="special">;</span> + <span class="special">}</span> + <span class="keyword">return</span> <span class="identifier">en</span><span class="special">;</span> + <span class="special">}</span> + + <span class="keyword">void</span> <span class="identifier">change_pot_start</span><span class="special">(</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">delta</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">m_pot_start_index</span> <span class="special">+=</span> <span class="identifier">delta</span><span class="special">;</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + The total size we allow is 1024 and we start with an initial state size of + 60. + </p> +<p> +</p> +<pre class="programlisting"><span class="comment">//start with 60 sites</span> +<span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">N_start</span> <span class="special">=</span> <span class="number">60</span><span class="special">;</span> +<span class="identifier">coord_type</span> <span class="identifier">q</span><span class="special">(</span> <span class="identifier">N_start</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">);</span> +<span class="identifier">q</span><span class="special">.</span><span class="identifier">reserve</span><span class="special">(</span> <span class="identifier">max_N</span> <span class="special">);</span> +<span class="identifier">coord_type</span> <span class="identifier">p</span><span class="special">(</span> <span class="identifier">N_start</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">);</span> +<span class="identifier">p</span><span class="special">.</span><span class="identifier">reserve</span><span class="special">(</span> <span class="identifier">max_N</span> <span class="special">);</span> +<span class="comment">// start with uniform momentum distribution over 20 sites</span> +<span class="identifier">fill</span><span class="special">(</span> <span class="identifier">p</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()+</span><span class="number">20</span> <span class="special">,</span> <span class="identifier">p</span><span class="special">.</span><span class="identifier">end</span><span class="special">()-</span><span class="number">20</span> <span class="special">,</span> <span class="number">1.0</span><span class="special">/</span><span class="identifier">sqrt</span><span class="special">(</span><span class="number">20.0</span><span class="special">)</span> <span class="special">);</span> + +<span class="identifier">coord_type</span> <span class="identifier">distr</span><span class="special">(</span> <span class="identifier">N_start</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">);</span> +<span class="identifier">distr</span><span class="special">.</span><span class="identifier">reserve</span><span class="special">(</span> <span class="identifier">max_N</span> <span class="special">);</span> + +<span class="comment">// create the system</span> +<span class="identifier">compacton_lattice</span> <span class="identifier">lattice</span><span class="special">(</span> <span class="identifier">max_N</span> <span class="special">,</span> <span class="identifier">beta</span> <span class="special">,</span> <span class="special">(</span><span class="identifier">max_N</span><span class="special">-</span><span class="identifier">N_start</span><span class="special">)/</span><span class="number">2</span> <span class="special">);</span> + +<span class="comment">//create the stepper, note that we use an always_resizer because state size might change during steps</span> +<span class="keyword">typedef</span> <span class="identifier">symplectic_rkn_sb3a_mclachlan</span><span class="special"><</span> <span class="identifier">coord_type</span> <span class="special">,</span> <span class="identifier">coord_type</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">coord_type</span> <span class="special">,</span> <span class="identifier">coord_type</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">,</span> + <span class="identifier">range_algebra</span> <span class="special">,</span> <span class="identifier">default_operations</span> <span class="special">,</span> <span class="identifier">always_resizer</span> <span class="special">></span> <span class="identifier">hamiltonian_stepper</span><span class="special">;</span> +<span class="identifier">hamiltonian_stepper</span> <span class="identifier">stepper</span><span class="special">;</span> +<span class="identifier">hamiltonian_stepper</span><span class="special">::</span><span class="identifier">state_type</span> <span class="identifier">state</span> <span class="special">=</span> <span class="identifier">make_pair</span><span class="special">(</span> <span class="identifier">q</span> <span class="special">,</span> <span class="identifier">p</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + The lattice gets resized whenever the energy distribution comes close to + the borders <code class="computeroutput"><span class="identifier">distr</span><span class="special">[</span><span class="number">10</span><span class="special">]</span> <span class="special">></span> + <span class="number">1E-150</span></code>, <code class="computeroutput"><span class="identifier">distr</span><span class="special">[</span><span class="identifier">distr</span><span class="special">.</span><span class="identifier">size</span><span class="special">()-</span><span class="number">10</span><span class="special">]</span> <span class="special">></span> + <span class="number">1E-150</span></code>. If we increase to the left, + <code class="computeroutput"><span class="identifier">q</span></code> and <code class="computeroutput"><span class="identifier">p</span></code> + have to be rotated because their resize function always appends at the end. + Additionally, the start index of the potential changes in this case. + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">t</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> +<span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">dt</span> <span class="special">=</span> <span class="number">0.1</span><span class="special">;</span> +<span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">steps</span> <span class="special">=</span> <span class="number">10000</span><span class="special">;</span> +<span class="keyword">for</span><span class="special">(</span> <span class="keyword">int</span> <span class="identifier">step</span> <span class="special">=</span> <span class="number">0</span> <span class="special">;</span> <span class="identifier">step</span> <span class="special"><</span> <span class="identifier">steps</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">step</span> <span class="special">)</span> +<span class="special">{</span> + <span class="identifier">stepper</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">lattice</span><span class="special">)</span> <span class="special">,</span> <span class="identifier">state</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> + <span class="identifier">lattice</span><span class="special">.</span><span class="identifier">energy_distribution</span><span class="special">(</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">first</span> <span class="special">,</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">second</span> <span class="special">,</span> <span class="identifier">distr</span> <span class="special">);</span> + <span class="keyword">if</span><span class="special">(</span> <span class="identifier">distr</span><span class="special">[</span><span class="number">10</span><span class="special">]</span> <span class="special">></span> <span class="number">1E-150</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">do_resize</span><span class="special">(</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">first</span> <span class="special">,</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">second</span> <span class="special">,</span> <span class="identifier">distr</span> <span class="special">,</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">first</span><span class="special">.</span><span class="identifier">size</span><span class="special">()+</span><span class="number">20</span> <span class="special">);</span> + <span class="identifier">rotate</span><span class="special">(</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">first</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">first</span><span class="special">.</span><span class="identifier">end</span><span class="special">()-</span><span class="number">20</span> <span class="special">,</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">first</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">);</span> + <span class="identifier">rotate</span><span class="special">(</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">second</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">second</span><span class="special">.</span><span class="identifier">end</span><span class="special">()-</span><span class="number">20</span> <span class="special">,</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">second</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">);</span> + <span class="identifier">lattice</span><span class="special">.</span><span class="identifier">change_pot_start</span><span class="special">(</span> <span class="special">-</span><span class="number">20</span> <span class="special">);</span> + <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">t</span> <span class="special"><<</span> <span class="string">": resized left to "</span> <span class="special"><<</span> <span class="identifier">distr</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special"><<</span> <span class="string">", energy = "</span> <span class="special"><<</span> <span class="identifier">lattice</span><span class="special">.</span><span class="identifier">energy</span><span class="special">(</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">first</span> <span class="special">,</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">second</span> <span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> + <span class="special">}</span> + <span class="keyword">if</span><span class="special">(</span> <span class="identifier">distr</span><span class="special">[</span><span class="identifier">distr</span><span class="special">.</span><span class="identifier">size</span><span class="special">()-</span><span class="number">10</span><span class="special">]</span> <span class="special">></span> <span class="number">1E-150</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">do_resize</span><span class="special">(</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">first</span> <span class="special">,</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">second</span> <span class="special">,</span> <span class="identifier">distr</span> <span class="special">,</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">first</span><span class="special">.</span><span class="identifier">size</span><span class="special">()+</span><span class="number">20</span> <span class="special">);</span> + <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">t</span> <span class="special"><<</span> <span class="string">": resized right to "</span> <span class="special"><<</span> <span class="identifier">distr</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special"><<</span> <span class="string">", energy = "</span> <span class="special"><<</span> <span class="identifier">lattice</span><span class="special">.</span><span class="identifier">energy</span><span class="special">(</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">first</span> <span class="special">,</span> <span class="identifier">state</span><span class="special">.</span><span class="identifier">second</span> <span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> + <span class="special">}</span> + <span class="identifier">t</span> <span class="special">+=</span> <span class="identifier">dt</span><span class="special">;</span> +<span class="special">}</span> +</pre> +<p> + </p> +<p> + The <code class="computeroutput"><span class="identifier">do_resize</span></code> function simply + calls <code class="computeroutput"><span class="identifier">vector</span><span class="special">.</span><span class="identifier">resize</span></code> of <code class="computeroutput"><span class="identifier">q</span></code> + , <code class="computeroutput"><span class="identifier">p</span></code> and <code class="computeroutput"><span class="identifier">distr</span></code>. + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">do_resize</span><span class="special">(</span> <span class="identifier">coord_type</span> <span class="special">&</span><span class="identifier">q</span> <span class="special">,</span> <span class="identifier">coord_type</span> <span class="special">&</span><span class="identifier">p</span> <span class="special">,</span> <span class="identifier">coord_type</span> <span class="special">&</span><span class="identifier">distr</span> <span class="special">,</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">N</span> <span class="special">)</span> +<span class="special">{</span> + <span class="identifier">q</span><span class="special">.</span><span class="identifier">resize</span><span class="special">(</span> <span class="identifier">N</span> <span class="special">);</span> + <span class="identifier">p</span><span class="special">.</span><span class="identifier">resize</span><span class="special">(</span> <span class="identifier">N</span> <span class="special">);</span> + <span class="identifier">distr</span><span class="special">.</span><span class="identifier">resize</span><span class="special">(</span> <span class="identifier">N</span> <span class="special">);</span> +<span class="special">}</span> +</pre> +<p> + </p> +<p> + The full example can be found in <a href="../../../../../../../libs/numeric/odeint/examples/resizing_lattice.cpp" target="_top">resizing_lattice.cpp</a> + </p> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="using_arbitrary_precision_floating_point_types.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="using_cuda__or_openmp__tbb_______via_thrust.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/solar_system.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/solar_system.html new file mode 100644 index 000000000..ff001b7e8 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/solar_system.html @@ -0,0 +1,318 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Solar system</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../tutorial.html" title="Tutorial"> +<link rel="prev" href="harmonic_oscillator.html" title="Harmonic oscillator"> +<link rel="next" href="chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="harmonic_oscillator.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="chaotic_systems_and_lyapunov_exponents.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.tutorial.solar_system"></a><a class="link" href="solar_system.html" title="Solar system">Solar system</a> +</h3></div></div></div> +<div class="toc"><dl class="toc"> +<dt><span class="section"><a href="solar_system.html#boost_numeric_odeint.tutorial.solar_system.gravitation_and_energy_conservation">Gravitation + and energy conservation</a></span></dt> +<dt><span class="section"><a href="solar_system.html#boost_numeric_odeint.tutorial.solar_system.define_the_system_function">Define + the system function</a></span></dt> +</dl></div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.tutorial.solar_system.gravitation_and_energy_conservation"></a><a class="link" href="solar_system.html#boost_numeric_odeint.tutorial.solar_system.gravitation_and_energy_conservation" title="Gravitation and energy conservation">Gravitation + and energy conservation</a> +</h4></div></div></div> +<p> + The next example in this tutorial is a simulation of the outer solar system, + consisting of the sun, Jupiter, Saturn, Uranus, Neptune and Pluto. + </p> +<p> + <span class="inlinemediaobject"><img src="../../solar_system.jpg" alt="solar_system"></span> + </p> +<p> + Each planet and of course the sun will be represented by mass points. The + interaction force between each object is the gravitational force which + can be written as + </p> +<p> + <span class="emphasis"><em>F<sub>​ij</sub> = -γ m<sub>​i</sub> m<sub>​j</sub> ( q<sub>​i</sub> - q<sub>​j</sub> ) / | q<sub>​i</sub> - q<sub>​j</sub> | <sup>3</sup></em></span> + </p> +<p> + where <span class="emphasis"><em>γ</em></span> is the gravitational constant, <span class="emphasis"><em>m<sub>​i</sub></em></span> + and <span class="emphasis"><em>m<sub>​j</sub></em></span> are the masses and <span class="emphasis"><em>q<sub>​i</sub></em></span> + and <span class="emphasis"><em>q<sub>​j</sub></em></span> are the locations of the two objects. The equations + of motion are then + </p> +<p> + <span class="emphasis"><em>dq<sub>​i</sub> / dt = p<sub>​i</sub></em></span> + </p> +<p> + <span class="emphasis"><em>dp<sub>​i</sub> / dt = 1 / m<sub>​i</sub> Σ<sub>​ji</sub> F<sub>​ij</sub></em></span> + </p> +<p> + where <span class="emphasis"><em>p<sub>​i</sub></em></span> is the momenta of object <span class="emphasis"><em>i</em></span>. + The equations of motion can also be derived from the Hamiltonian + </p> +<p> + <span class="emphasis"><em>H = Σ<sub>​i</sub> p<sub>​i</sub><sup>2</sup> / ( 2 m<sub>​i</sub> ) + Σ<sub>​j</sub> V( q<sub>​i</sub> , q<sub>​j</sub> )</em></span> + </p> +<p> + with the interaction potential <span class="emphasis"><em>V(q<sub>​i</sub>,q<sub>​j</sub>)</em></span>. The Hamiltonian + equations give the equations of motion + </p> +<p> + <span class="emphasis"><em>dq<sub>​i</sub> / dt = dH / dp<sub>​i</sub></em></span> + </p> +<p> + <span class="emphasis"><em>dp<sub>​i</sub> / dt = -dH / dq<sub>​i</sub></em></span> + </p> +<p> + In time independent Hamiltonian system the energy and the phase space volume + are conserved and special integration methods have to be applied in order + to ensure these conservation laws. The odeint library provides classes + for separable Hamiltonian systems, which can be written in the form <span class="emphasis"><em>H + = Σ +p<sub>​i</sub><sup>2</sup> / (2m<sub>​i</sub>) + H<sub>​q</sub>(q)</em></span>, where <span class="emphasis"><em>H<sub>​q</sub>(q)</em></span> only + depends on the coordinates. Although this functional form might look a + bit arbitrary, it covers nearly all classical mechanical systems with inertia + and without dissipation, or where the equations of motion can be written + in the form <span class="emphasis"><em>dq<sub>​i</sub> / dt = p<sub>​i</sub></em></span> / m<sub>​i</sub> , <span class="emphasis"><em>dp<sub>​i</sub> / dt = + f( q<sub>​i</sub> )</em></span>. + </p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p> + A short physical note: While the two-body-problem is known to be integrable, + that means it can be solved with purely analytic techniques, already + the three-body-problem is not solvable. This was found in the end of + the 19th century by H. Poincare which led to the whole new subject of + <a href="http://en.wikipedia.org/wiki/Chaos_theory" target="_top">Chaos Theory</a>. + </p></td></tr> +</table></div> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.tutorial.solar_system.define_the_system_function"></a><a class="link" href="solar_system.html#boost_numeric_odeint.tutorial.solar_system.define_the_system_function" title="Define the system function">Define + the system function</a> +</h4></div></div></div> +<p> + To implement this system we define a 3D point type which will represent + the space as well as the velocity. Therefore, we use the operators from + <a href="http://www.boost.org/doc/libs/release/doc/html/operators.html" target="_top">Boost.Operators</a>: + </p> +<p> +</p> +<pre class="programlisting"><span class="comment">/*the point type */</span> +<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">T</span> <span class="special">,</span> <span class="identifier">size_t</span> <span class="identifier">Dim</span> <span class="special">></span> +<span class="keyword">class</span> <span class="identifier">point</span> <span class="special">:</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">additive1</span><span class="special"><</span> <span class="identifier">point</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">,</span> <span class="identifier">Dim</span> <span class="special">></span> <span class="special">,</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">additive2</span><span class="special"><</span> <span class="identifier">point</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">,</span> <span class="identifier">Dim</span> <span class="special">></span> <span class="special">,</span> <span class="identifier">T</span> <span class="special">,</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiplicative2</span><span class="special"><</span> <span class="identifier">point</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">,</span> <span class="identifier">Dim</span> <span class="special">></span> <span class="special">,</span> <span class="identifier">T</span> + <span class="special">></span> <span class="special">></span> <span class="special">></span> + <span class="special">{</span> + <span class="keyword">public</span><span class="special">:</span> + + <span class="keyword">const</span> <span class="keyword">static</span> <span class="identifier">size_t</span> <span class="identifier">dim</span> <span class="special">=</span> <span class="identifier">Dim</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">point</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">,</span> <span class="identifier">dim</span> <span class="special">></span> <span class="identifier">point_type</span><span class="special">;</span> + + <span class="comment">// ...</span> + <span class="comment">// constructors</span> + + <span class="comment">// ...</span> + <span class="comment">// operators</span> + + <span class="keyword">private</span><span class="special">:</span> + + <span class="identifier">T</span> <span class="identifier">m_val</span><span class="special">[</span><span class="identifier">dim</span><span class="special">];</span> + <span class="special">};</span> + + <span class="comment">//...</span> + <span class="comment">// more operators</span> +</pre> +<p> + </p> +<p> + The next step is to define a container type storing the values of <span class="emphasis"><em>q</em></span> + and <span class="emphasis"><em>p</em></span> and to define system functions. As container + type we use <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code> + </p> +<p> +</p> +<pre class="programlisting"><span class="comment">// we simulate 5 planets and the sun</span> +<span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">n</span> <span class="special">=</span> <span class="number">6</span><span class="special">;</span> + +<span class="keyword">typedef</span> <span class="identifier">point</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="number">3</span> <span class="special">></span> <span class="identifier">point_type</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="identifier">point_type</span> <span class="special">,</span> <span class="identifier">n</span> <span class="special">></span> <span class="identifier">container_type</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">n</span> <span class="special">></span> <span class="identifier">mass_type</span><span class="special">;</span> +</pre> +<p> + </p> +<p> + The <code class="computeroutput"><span class="identifier">container_type</span></code> is different + from the state type of the ODE. The state type of the ode is simply a + <code class="computeroutput"><span class="identifier">pair</span><span class="special"><</span> + <span class="identifier">container_type</span> <span class="special">,</span> + <span class="identifier">container_type</span> <span class="special">></span></code> + since it needs the information about the coordinates and the momenta. + </p> +<p> + Next we define the system's equations. As we will use a stepper that accounts + for the Hamiltonian (energy-preserving) character of the system, we have + to define the rhs different from the usual case where it is just a single + function. The stepper will make use of the separable character, which means + the system will be defined by two objects representing <span class="emphasis"><em>f(p) = + -dH/dq</em></span> and <span class="emphasis"><em>g(q) = dH/dp</em></span>: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">gravitational_constant</span> <span class="special">=</span> <span class="number">2.95912208286e-4</span><span class="special">;</span> + +<span class="keyword">struct</span> <span class="identifier">solar_system_coor</span> +<span class="special">{</span> + <span class="keyword">const</span> <span class="identifier">mass_type</span> <span class="special">&</span><span class="identifier">m_masses</span><span class="special">;</span> + + <span class="identifier">solar_system_coor</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">mass_type</span> <span class="special">&</span><span class="identifier">masses</span> <span class="special">)</span> <span class="special">:</span> <span class="identifier">m_masses</span><span class="special">(</span> <span class="identifier">masses</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">p</span> <span class="special">,</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">dqdt</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">n</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> + <span class="identifier">dqdt</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">p</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">/</span> <span class="identifier">m_masses</span><span class="special">[</span><span class="identifier">i</span><span class="special">];</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">solar_system_momentum</span> +<span class="special">{</span> + <span class="keyword">const</span> <span class="identifier">mass_type</span> <span class="special">&</span><span class="identifier">m_masses</span><span class="special">;</span> + + <span class="identifier">solar_system_momentum</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">mass_type</span> <span class="special">&</span><span class="identifier">masses</span> <span class="special">)</span> <span class="special">:</span> <span class="identifier">m_masses</span><span class="special">(</span> <span class="identifier">masses</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">q</span> <span class="special">,</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">dpdt</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">n</span> <span class="special">=</span> <span class="identifier">q</span><span class="special">.</span><span class="identifier">size</span><span class="special">();</span> + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">n</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">dpdt</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">j</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">j</span><span class="special"><</span><span class="identifier">i</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">j</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">point_type</span> <span class="identifier">diff</span> <span class="special">=</span> <span class="identifier">q</span><span class="special">[</span><span class="identifier">j</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">];</span> + <span class="keyword">double</span> <span class="identifier">d</span> <span class="special">=</span> <span class="identifier">abs</span><span class="special">(</span> <span class="identifier">diff</span> <span class="special">);</span> + <span class="identifier">diff</span> <span class="special">*=</span> <span class="special">(</span> <span class="identifier">gravitational_constant</span> <span class="special">*</span> <span class="identifier">m_masses</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">*</span> <span class="identifier">m_masses</span><span class="special">[</span><span class="identifier">j</span><span class="special">]</span> <span class="special">/</span> <span class="identifier">d</span> <span class="special">/</span> <span class="identifier">d</span> <span class="special">/</span> <span class="identifier">d</span> <span class="special">);</span> + <span class="identifier">dpdt</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">+=</span> <span class="identifier">diff</span><span class="special">;</span> + <span class="identifier">dpdt</span><span class="special">[</span><span class="identifier">j</span><span class="special">]</span> <span class="special">-=</span> <span class="identifier">diff</span><span class="special">;</span> + + <span class="special">}</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + In general a three body-system is chaotic, hence we can not expect that + arbitrary initial conditions of the system will lead to a solution comparable + with the solar system dynamics. That is we have to define proper initial + conditions, which are taken from the book of Hairer, Wannier, Lubich <a class="link" href="../literature.html#hairer_geometrical_numeric_integration">[4] </a>. + </p> +<p> + As mentioned above, we need to use some special integrators in order to + conserve phase space volume. There is a well known family of such integrators, + the so-called Runge-Kutta-Nystroem solvers, which we apply here in terms + of a <code class="computeroutput"><span class="identifier">symplectic_rkn_sb3a_mclachlan</span></code> + stepper: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">symplectic_rkn_sb3a_mclachlan</span><span class="special"><</span> <span class="identifier">container_type</span> <span class="special">></span> <span class="identifier">stepper_type</span><span class="special">;</span> +<span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">dt</span> <span class="special">=</span> <span class="number">100.0</span><span class="special">;</span> + +<span class="identifier">integrate_const</span><span class="special">(</span> + <span class="identifier">stepper_type</span><span class="special">()</span> <span class="special">,</span> + <span class="identifier">make_pair</span><span class="special">(</span> <span class="identifier">solar_system_coor</span><span class="special">(</span> <span class="identifier">masses</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">solar_system_momentum</span><span class="special">(</span> <span class="identifier">masses</span> <span class="special">)</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">make_pair</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span> <span class="identifier">q</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span> <span class="identifier">p</span> <span class="special">)</span> <span class="special">)</span> <span class="special">,</span> + <span class="number">0.0</span> <span class="special">,</span> <span class="number">200000.0</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">,</span> <span class="identifier">streaming_observer</span><span class="special">(</span> <span class="identifier">cout</span> <span class="special">)</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + These integration routine was used to produce the above sketch of the solar + system. Note, that there are two particularities in this example. First, + the state of the symplectic stepper is not <code class="computeroutput"><span class="identifier">container_type</span></code> + but a pair of <code class="computeroutput"><span class="identifier">container_type</span></code>. + Hence, we must pass such a pair to the integrate function. Since, we want + to pass them as references we can simply pack them into <a href="http://www.boost.org/doc/libs/release/doc/html/ref.html" target="_top">Boost.Ref</a>. + The second point is the observer, which is called with a state type, hence + a pair of <code class="computeroutput"><span class="identifier">container_type</span></code>. + The reference wrapper is also passed, but this is not a problem at all: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">streaming_observer</span> +<span class="special">{</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">m_out</span><span class="special">;</span> + + <span class="identifier">streaming_observer</span><span class="special">(</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span> <span class="special">&</span><span class="identifier">out</span> <span class="special">)</span> <span class="special">:</span> <span class="identifier">m_out</span><span class="special">(</span> <span class="identifier">out</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">State</span> <span class="special">></span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">q</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">first</span><span class="special">;</span> + <span class="identifier">m_out</span> <span class="special"><<</span> <span class="identifier">t</span><span class="special">;</span> + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">q</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> <span class="identifier">m_out</span> <span class="special"><<</span> <span class="string">"\t"</span> <span class="special"><<</span> <span class="identifier">q</span><span class="special">[</span><span class="identifier">i</span><span class="special">];</span> + <span class="identifier">m_out</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<div class="tip"><table border="0" summary="Tip"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../../../../../doc/src/images/tip.png"></td> +<th align="left">Tip</th> +</tr> +<tr><td align="left" valign="top"><p> + You can use C++11 lambda to create the observers + </p></td></tr> +</table></div> +<p> + The full example can be found here: <a href="../../../../../../../libs/numeric/odeint/examples/solar_system.cpp" target="_top">solar_system.cpp</a> + </p> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="harmonic_oscillator.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="chaotic_systems_and_lyapunov_exponents.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/stiff_systems.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/stiff_systems.html new file mode 100644 index 000000000..2b790b884 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/stiff_systems.html @@ -0,0 +1,172 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Stiff systems</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../tutorial.html" title="Tutorial"> +<link rel="prev" href="chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents"> +<link rel="next" href="complex_state_types.html" title="Complex state types"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="chaotic_systems_and_lyapunov_exponents.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="complex_state_types.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.tutorial.stiff_systems"></a><a class="link" href="stiff_systems.html" title="Stiff systems">Stiff systems</a> +</h3></div></div></div> +<p> + An important class of ordinary differential equations are so called stiff + system which are characterized by two or more time scales of different order. + Examples of such systems are found in chemical systems where reaction rates + of individual sub-reaction might differ over large ranges, for example: + </p> +<p> + <span class="emphasis"><em>d S<sub>​1</sub> / dt = - 101 S<sub>​2</sub> - 100 S<sub>​1</sub></em></span> + </p> +<p> + <span class="emphasis"><em>d S<sub>​2</sub> / dt = S<sub>​1</sub></em></span> + </p> +<p> + In order to efficiently solve stiff systems numerically the Jacobian + </p> +<p> + <span class="emphasis"><em>J = d f<sub>​i</sub> / d x<sub>​j</sub></em></span> + </p> +<p> + is needed. Here is the definition of the above example + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">vector_type</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">matrix</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">matrix_type</span><span class="special">;</span> + +<span class="keyword">struct</span> <span class="identifier">stiff_system</span> +<span class="special">{</span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">vector_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">vector_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">double</span> <span class="comment">/* t */</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">dxdt</span><span class="special">[</span> <span class="number">0</span> <span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="number">101.0</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span> <span class="number">0</span> <span class="special">]</span> <span class="special">-</span> <span class="number">100.0</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span> <span class="number">1</span> <span class="special">];</span> + <span class="identifier">dxdt</span><span class="special">[</span> <span class="number">1</span> <span class="special">]</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">[</span> <span class="number">0</span> <span class="special">];</span> + <span class="special">}</span> +<span class="special">};</span> + +<span class="keyword">struct</span> <span class="identifier">stiff_system_jacobi</span> +<span class="special">{</span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">vector_type</span> <span class="special">&</span> <span class="comment">/* x */</span> <span class="special">,</span> <span class="identifier">matrix_type</span> <span class="special">&</span><span class="identifier">J</span> <span class="special">,</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="special">&</span> <span class="comment">/* t */</span> <span class="special">,</span> <span class="identifier">vector_type</span> <span class="special">&</span><span class="identifier">dfdt</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">J</span><span class="special">(</span> <span class="number">0</span> <span class="special">,</span> <span class="number">0</span> <span class="special">)</span> <span class="special">=</span> <span class="special">-</span><span class="number">101.0</span><span class="special">;</span> + <span class="identifier">J</span><span class="special">(</span> <span class="number">0</span> <span class="special">,</span> <span class="number">1</span> <span class="special">)</span> <span class="special">=</span> <span class="special">-</span><span class="number">100.0</span><span class="special">;</span> + <span class="identifier">J</span><span class="special">(</span> <span class="number">1</span> <span class="special">,</span> <span class="number">0</span> <span class="special">)</span> <span class="special">=</span> <span class="number">1.0</span><span class="special">;</span> + <span class="identifier">J</span><span class="special">(</span> <span class="number">1</span> <span class="special">,</span> <span class="number">1</span> <span class="special">)</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> + <span class="identifier">dfdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> + <span class="identifier">dfdt</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + The state type has to be a <code class="computeroutput"><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">vector</span></code> + and the matrix type must by a <code class="computeroutput"><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">matrix</span></code> + since the stiff integrator only accepts these types. However, you might want + use non-stiff integrators on this system, too - we will do so later for demonstration. + Therefore we want to use the same function also with other state_types, realized + by templatizing the <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code>: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">vector_type</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">matrix</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">matrix_type</span><span class="special">;</span> + +<span class="keyword">struct</span> <span class="identifier">stiff_system</span> +<span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">State</span> <span class="special">></span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">State</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span> + <span class="special">{</span> + <span class="special">...</span> + <span class="special">}</span> +<span class="special">};</span> + +<span class="keyword">struct</span> <span class="identifier">stiff_system_jacobi</span> +<span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">State</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Matrix</span> <span class="special">></span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">Matrix</span> <span class="special">&</span><span class="identifier">J</span> <span class="special">,</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="special">&</span><span class="identifier">t</span> <span class="special">,</span> <span class="identifier">State</span> <span class="special">&</span><span class="identifier">dfdt</span> <span class="special">)</span> + <span class="special">{</span> + <span class="special">...</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + Now you can use <code class="computeroutput"><span class="identifier">stiff_system</span></code> + in combination with <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code> or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code>. + In the example the explicit time derivative of <span class="emphasis"><em>f(x,t)</em></span> + is introduced separately in the Jacobian. If <span class="emphasis"><em>df / dt = 0</em></span> + simply fill <code class="computeroutput"><span class="identifier">dfdt</span></code> with zeros. + </p> +<p> + A well know solver for stiff systems is the Rosenbrock method. It has a step + size control and dense output facilities and can be used like all the other + steppers: + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">vector_type</span> <span class="identifier">x</span><span class="special">(</span> <span class="number">2</span> <span class="special">,</span> <span class="number">1.0</span> <span class="special">);</span> + +<span class="identifier">size_t</span> <span class="identifier">num_of_steps</span> <span class="special">=</span> <span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">make_dense_output</span><span class="special"><</span> <span class="identifier">rosenbrock4</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="special">>(</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="number">1.0e-6</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">make_pair</span><span class="special">(</span> <span class="identifier">stiff_system</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">stiff_system_jacobi</span><span class="special">()</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">50.0</span> <span class="special">,</span> <span class="number">0.01</span> <span class="special">,</span> + <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">arg_names</span><span class="special">::</span><span class="identifier">arg2</span> <span class="special"><<</span> <span class="string">" "</span> <span class="special"><<</span> <span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">arg_names</span><span class="special">::</span><span class="identifier">arg1</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special"><<</span> <span class="string">"\n"</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + During the integration 71 steps have been done. Comparing to a classical + Runge-Kutta solver this is a very good result. For example the Dormand-Prince + 5 method with step size control and dense output yields 1531 steps. + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">vector_type</span> <span class="identifier">x2</span><span class="special">(</span> <span class="number">2</span> <span class="special">,</span> <span class="number">1.0</span> <span class="special">);</span> + +<span class="identifier">size_t</span> <span class="identifier">num_of_steps2</span> <span class="special">=</span> <span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">make_dense_output</span><span class="special"><</span> <span class="identifier">runge_kutta_dopri5</span><span class="special"><</span> <span class="identifier">vector_type</span> <span class="special">></span> <span class="special">>(</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="number">1.0e-6</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">stiff_system</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">x2</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">50.0</span> <span class="special">,</span> <span class="number">0.01</span> <span class="special">,</span> + <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">arg_names</span><span class="special">::</span><span class="identifier">arg2</span> <span class="special"><<</span> <span class="string">" "</span> <span class="special"><<</span> <span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">arg_names</span><span class="special">::</span><span class="identifier">arg1</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special"><<</span> <span class="string">"\n"</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + Note, that we have used <a href="http://www.boost.org/doc/libs/1_46_1/libs/spirit/phoenix/doc/html/index.html" target="_top">Boost.Phoenix</a>, + a great functional programming library, to create and compose the observer. + </p> +<p> + The full example can be found here: <a href="../../../../../../../libs/numeric/odeint/examples/stiff_system.cpp" target="_top">stiff_system.cpp</a> + </p> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="chaotic_systems_and_lyapunov_exponents.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="complex_state_types.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_arbitrary_precision_floating_point_types.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_arbitrary_precision_floating_point_types.html new file mode 100644 index 000000000..653ba90a1 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_arbitrary_precision_floating_point_types.html @@ -0,0 +1,121 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Using arbitrary precision floating point types</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../tutorial.html" title="Tutorial"> +<link rel="prev" href="using_matrices_as_state_types.html" title="Using matrices as state types"> +<link rel="next" href="self_expanding_lattices.html" title="Self expanding lattices"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="using_matrices_as_state_types.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="self_expanding_lattices.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.tutorial.using_arbitrary_precision_floating_point_types"></a><a class="link" href="using_arbitrary_precision_floating_point_types.html" title="Using arbitrary precision floating point types">Using + arbitrary precision floating point types</a> +</h3></div></div></div> +<p> + Besides the classical floating point number like <code class="computeroutput"><span class="keyword">float</span></code>, + <code class="computeroutput"><span class="keyword">double</span></code>, <code class="computeroutput"><span class="identifier">complex</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span></code> you can also use arbitrary precision + types, like the types from <a href="http://gmplib.org/" target="_top">gmp</a> and + <a href="http://www.mpfr.org/" target="_top">mpfr</a>. But you have to be careful + about instantiating any numbers. + </p> +<p> + For gmp types you have to set the default precision before any number is + instantiated. This can be done by calling <code class="computeroutput"><span class="identifier">mpf_set_default_prec</span><span class="special">(</span> <span class="identifier">precision</span> <span class="special">)</span></code> as the first function in your main program. + Secondly, you can not use any global constant variables since they will not + be set with the default precision you have already set. + </p> +<p> + Here is a simple example: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">mpf_class</span> <span class="identifier">value_type</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">,</span> <span class="number">3</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span> + +<span class="keyword">struct</span> <span class="identifier">lorenz</span> +<span class="special">{</span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="identifier">value_type</span> <span class="identifier">t</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">sigma</span><span class="special">(</span> <span class="number">10.0</span> <span class="special">);</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">R</span><span class="special">(</span> <span class="number">28.0</span> <span class="special">);</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">b</span><span class="special">(</span> <span class="identifier">value_type</span><span class="special">(</span> <span class="number">8.0</span> <span class="special">)</span> <span class="special">/</span> <span class="identifier">value_type</span><span class="special">(</span> <span class="number">3.0</span> <span class="special">)</span> <span class="special">);</span> + + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">sigma</span> <span class="special">*</span> <span class="special">(</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">);</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">R</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">2</span><span class="special">];</span> + <span class="identifier">dxdt</span><span class="special">[</span><span class="number">2</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">b</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">2</span><span class="special">]</span> <span class="special">+</span> <span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + which can be integrated: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">precision</span> <span class="special">=</span> <span class="number">1024</span><span class="special">;</span> +<span class="identifier">mpf_set_default_prec</span><span class="special">(</span> <span class="identifier">precision</span> <span class="special">);</span> + +<span class="identifier">state_type</span> <span class="identifier">x</span> <span class="special">=</span> <span class="special">{{</span> <span class="identifier">value_type</span><span class="special">(</span> <span class="number">10.0</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">value_type</span><span class="special">(</span> <span class="number">10.0</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">value_type</span><span class="special">(</span> <span class="number">10.0</span> <span class="special">)</span> <span class="special">}};</span> + +<span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span> <span class="number">1000</span> <span class="special">);</span> +<span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">runge_kutta4</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">,</span> <span class="identifier">value_type</span> <span class="special">>()</span> <span class="special">,</span> + <span class="identifier">lorenz</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">value_type</span><span class="special">(</span> <span class="number">0.0</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">value_type</span><span class="special">(</span> <span class="number">10.0</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">value_type</span><span class="special">(</span> <span class="identifier">value_type</span><span class="special">(</span> <span class="number">1.0</span> <span class="special">)</span> <span class="special">/</span> <span class="identifier">value_type</span><span class="special">(</span> <span class="number">10.0</span> <span class="special">)</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">streaming_observer</span><span class="special">(</span> <span class="identifier">cout</span> <span class="special">)</span> <span class="special">);</span> +</pre> +<p> + </p> +<div class="caution"><table border="0" summary="Caution"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../../../../../doc/src/images/caution.png"></td> +<th align="left">Caution</th> +</tr> +<tr><td align="left" valign="top"><p> + The full support of arbitrary precision types depends on the functionality + they provide. For example, the types from gmp are lacking of functions + for calculating the power and arbitrary roots, hence they can not be used + with the controlled steppers. In detail, for full support the <code class="computeroutput"><span class="identifier">min</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">y</span> <span class="special">)</span></code>, + <code class="computeroutput"><span class="identifier">max</span><span class="special">(</span> + <span class="identifier">x</span> <span class="special">,</span> + <span class="identifier">y</span> <span class="special">)</span></code>, + <code class="computeroutput"><span class="identifier">pow</span><span class="special">(</span> + <span class="identifier">x</span> <span class="special">,</span> + <span class="identifier">y</span> <span class="special">)</span></code> + must be callable. + </p></td></tr> +</table></div> +<p> + The full example can be found at <a href="../../../../../../../libs/numeric/odeint/examples/gmpxx/lorenz_gmpxx.cpp" target="_top">lorenz_gmpxx.cpp</a>. + </p> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="using_matrices_as_state_types.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="self_expanding_lattices.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_boost__units.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_boost__units.html new file mode 100644 index 000000000..7926a0a12 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_boost__units.html @@ -0,0 +1,201 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Using boost::units</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../tutorial.html" title="Tutorial"> +<link rel="prev" href="ensembles_of_oscillators.html" title="Ensembles of oscillators"> +<link rel="next" href="using_matrices_as_state_types.html" title="Using matrices as state types"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="ensembles_of_oscillators.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="using_matrices_as_state_types.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.tutorial.using_boost__units"></a><a class="link" href="using_boost__units.html" title="Using boost::units">Using + boost::units</a> +</h3></div></div></div> +<p> + odeint also works well with <a href="http://www.boost.org/doc/libs/release/libs/units/index.html" target="_top">Boost.Units</a> + - a library for compile time unit and dimension analysis. It works by decoding + unit information into the types of values. For a one-dimensional unit you + can just use the Boost.Unit types as state type, deriv type and time type + and hand the <code class="computeroutput"><span class="identifier">vector_space_algebra</span></code> + to the stepper definition and everything works just fine: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">units</span><span class="special">::</span><span class="identifier">quantity</span><span class="special"><</span> <span class="identifier">si</span><span class="special">::</span><span class="identifier">time</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">time_type</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">units</span><span class="special">::</span><span class="identifier">quantity</span><span class="special"><</span> <span class="identifier">si</span><span class="special">::</span><span class="identifier">length</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">length_type</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">units</span><span class="special">::</span><span class="identifier">quantity</span><span class="special"><</span> <span class="identifier">si</span><span class="special">::</span><span class="identifier">velocity</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">velocity_type</span><span class="special">;</span> + +<span class="keyword">typedef</span> <span class="identifier">runge_kutta4</span><span class="special"><</span> <span class="identifier">length_type</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">velocity_type</span> <span class="special">,</span> <span class="identifier">time_type</span> <span class="special">,</span> + <span class="identifier">vector_space_algebra</span> <span class="special">></span> <span class="identifier">stepper_type</span><span class="special">;</span> +</pre> +<p> + </p> +<p> + If you want to solve more-dimensional problems the individual entries typically + have different units. That means that the <code class="computeroutput"><span class="identifier">state_type</span></code> + is now possibly heterogeneous, meaning that every entry might have a different + type. To solve this problem, compile-time sequences from <a href="http://www.boost.org/doc/libs/release/libs/fusion/index.html" target="_top">Boost.Fusion</a> + can be used. + </p> +<p> + To illustrate how odeint works with <a href="http://www.boost.org/doc/libs/release/libs/units/index.html" target="_top">Boost.Units</a> + we use the harmonic oscillator as primary example. We start with defining + all quantities + </p> +<p> +</p> +<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">odeint</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> +<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">odeint</span><span class="special">/</span><span class="identifier">algebra</span><span class="special">/</span><span class="identifier">fusion_algebra</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> + +<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">units</span><span class="special">/</span><span class="identifier">systems</span><span class="special">/</span><span class="identifier">si</span><span class="special">/</span><span class="identifier">length</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> +<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">units</span><span class="special">/</span><span class="identifier">systems</span><span class="special">/</span><span class="identifier">si</span><span class="special">/</span><span class="identifier">time</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> +<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">units</span><span class="special">/</span><span class="identifier">systems</span><span class="special">/</span><span class="identifier">si</span><span class="special">/</span><span class="identifier">velocity</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> +<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">units</span><span class="special">/</span><span class="identifier">systems</span><span class="special">/</span><span class="identifier">si</span><span class="special">/</span><span class="identifier">acceleration</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> +<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">units</span><span class="special">/</span><span class="identifier">systems</span><span class="special">/</span><span class="identifier">si</span><span class="special">/</span><span class="identifier">io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> + +<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">container</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> + +<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span> +<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">;</span> +<span class="keyword">namespace</span> <span class="identifier">fusion</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">;</span> +<span class="keyword">namespace</span> <span class="identifier">units</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">units</span><span class="special">;</span> +<span class="keyword">namespace</span> <span class="identifier">si</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">units</span><span class="special">::</span><span class="identifier">si</span><span class="special">;</span> + +<span class="keyword">typedef</span> <span class="identifier">units</span><span class="special">::</span><span class="identifier">quantity</span><span class="special"><</span> <span class="identifier">si</span><span class="special">::</span><span class="identifier">time</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">time_type</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">units</span><span class="special">::</span><span class="identifier">quantity</span><span class="special"><</span> <span class="identifier">si</span><span class="special">::</span><span class="identifier">length</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">length_type</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">units</span><span class="special">::</span><span class="identifier">quantity</span><span class="special"><</span> <span class="identifier">si</span><span class="special">::</span><span class="identifier">velocity</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">velocity_type</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">units</span><span class="special">::</span><span class="identifier">quantity</span><span class="special"><</span> <span class="identifier">si</span><span class="special">::</span><span class="identifier">acceleration</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">acceleration_type</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">units</span><span class="special">::</span><span class="identifier">quantity</span><span class="special"><</span> <span class="identifier">si</span><span class="special">::</span><span class="identifier">frequency</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">frequency_type</span><span class="special">;</span> + +<span class="keyword">typedef</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="identifier">length_type</span> <span class="special">,</span> <span class="identifier">velocity_type</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="identifier">velocity_type</span> <span class="special">,</span> <span class="identifier">acceleration_type</span> <span class="special">></span> <span class="identifier">deriv_type</span><span class="special">;</span> +</pre> +<p> + </p> +<p> + Note, that the <code class="computeroutput"><span class="identifier">state_type</span></code> + and the <code class="computeroutput"><span class="identifier">deriv_type</span></code> are now + a compile-time fusion sequences. <code class="computeroutput"><span class="identifier">deriv_type</span></code> + represents <span class="emphasis"><em>x'</em></span> and is now different from the state type + as it has different unit definitions. Next, we define the ordinary differential + equation which is completely equivalent to the example in <a class="link" href="harmonic_oscillator.html" title="Harmonic oscillator">Harmonic + Oscillator</a>: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">oscillator</span> +<span class="special">{</span> + <span class="identifier">frequency_type</span> <span class="identifier">m_omega</span><span class="special">;</span> + + <span class="identifier">oscillator</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">frequency_type</span> <span class="special">&</span><span class="identifier">omega</span> <span class="special">=</span> <span class="number">1.0</span> <span class="special">*</span> <span class="identifier">si</span><span class="special">::</span><span class="identifier">hertz</span> <span class="special">)</span> <span class="special">:</span> <span class="identifier">m_omega</span><span class="special">(</span> <span class="identifier">omega</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">deriv_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="identifier">time_type</span> <span class="identifier">t</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">at_c</span><span class="special"><</span> <span class="number">0</span> <span class="special">>(</span> <span class="identifier">dxdt</span> <span class="special">)</span> <span class="special">=</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">at_c</span><span class="special"><</span> <span class="number">1</span> <span class="special">>(</span> <span class="identifier">x</span> <span class="special">);</span> + <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">at_c</span><span class="special"><</span> <span class="number">1</span> <span class="special">>(</span> <span class="identifier">dxdt</span> <span class="special">)</span> <span class="special">=</span> <span class="special">-</span> <span class="identifier">m_omega</span> <span class="special">*</span> <span class="identifier">m_omega</span> <span class="special">*</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">at_c</span><span class="special"><</span> <span class="number">0</span> <span class="special">>(</span> <span class="identifier">x</span> <span class="special">);</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + Next, we instantiate an appropriate stepper. We must explicitly parametrize + the stepper with the <code class="computeroutput"><span class="identifier">state_type</span></code>, + <code class="computeroutput"><span class="identifier">deriv_type</span></code>, <code class="computeroutput"><span class="identifier">time_type</span></code>. Furthermore, the iteration over + vector elements is now done by the <code class="computeroutput"><span class="identifier">fusion_algebra</span></code> + which must also be given. For more on the state types / algebras see chapter + <a class="link" href="../odeint_in_detail/state_types__algebras_and_operations.html" title="State types, algebras and operations">Adapt + your own state types</a>. + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">runge_kutta_dopri5</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">deriv_type</span> <span class="special">,</span> <span class="identifier">time_type</span> <span class="special">,</span> <span class="identifier">fusion_algebra</span> <span class="special">></span> <span class="identifier">stepper_type</span><span class="special">;</span> + +<span class="identifier">state_type</span> <span class="identifier">x</span><span class="special">(</span> <span class="number">1.0</span> <span class="special">*</span> <span class="identifier">si</span><span class="special">::</span><span class="identifier">meter</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">*</span> <span class="identifier">si</span><span class="special">::</span><span class="identifier">meter_per_second</span> <span class="special">);</span> + +<span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">make_dense_output</span><span class="special">(</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="identifier">stepper_type</span><span class="special">()</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">oscillator</span><span class="special">(</span> <span class="number">2.0</span> <span class="special">*</span> <span class="identifier">si</span><span class="special">::</span><span class="identifier">hertz</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">*</span> <span class="identifier">si</span><span class="special">::</span><span class="identifier">second</span> <span class="special">,</span> <span class="number">100.0</span> <span class="special">*</span> <span class="identifier">si</span><span class="special">::</span><span class="identifier">second</span> <span class="special">,</span> <span class="number">0.1</span> <span class="special">*</span> <span class="identifier">si</span><span class="special">::</span><span class="identifier">second</span> <span class="special">,</span> <span class="identifier">streaming_observer</span><span class="special">(</span> <span class="identifier">cout</span> <span class="special">)</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + It is quite easy but the compilation time might take very long. Furthermore, + the observer is defined a bit different + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">streaming_observer</span> +<span class="special">{</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">m_out</span><span class="special">;</span> + + <span class="identifier">streaming_observer</span><span class="special">(</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span> <span class="special">&</span><span class="identifier">out</span> <span class="special">)</span> <span class="special">:</span> <span class="identifier">m_out</span><span class="special">(</span> <span class="identifier">out</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">struct</span> <span class="identifier">write_element</span> + <span class="special">{</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span> <span class="special">&</span><span class="identifier">m_out</span><span class="special">;</span> + <span class="identifier">write_element</span><span class="special">(</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span> <span class="special">&</span><span class="identifier">out</span> <span class="special">)</span> <span class="special">:</span> <span class="identifier">m_out</span><span class="special">(</span> <span class="identifier">out</span> <span class="special">)</span> <span class="special">{</span> <span class="special">};</span> + + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">T</span> <span class="special">></span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&</span><span class="identifier">t</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="identifier">m_out</span> <span class="special"><<</span> <span class="string">"\t"</span> <span class="special"><<</span> <span class="identifier">t</span><span class="special">;</span> + <span class="special">}</span> + <span class="special">};</span> + + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">State</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Time</span> <span class="special">></span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Time</span> <span class="special">&</span><span class="identifier">t</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="identifier">m_out</span> <span class="special"><<</span> <span class="identifier">t</span><span class="special">;</span> + <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">write_element</span><span class="special">(</span> <span class="identifier">m_out</span> <span class="special">)</span> <span class="special">);</span> + <span class="identifier">m_out</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<div class="caution"><table border="0" summary="Caution"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../../../../../doc/src/images/caution.png"></td> +<th align="left">Caution</th> +</tr> +<tr><td align="left" valign="top"><p> + Using <a href="http://www.boost.org/doc/libs/release/libs/units/index.html" target="_top">Boost.Units</a> + works nicely but compilation can be very time and memory consuming. For + example the unit test for the usage of <a href="http://www.boost.org/doc/libs/release/libs/units/index.html" target="_top">Boost.Units</a> + in odeint take up to 4 GB of memory at compilation. + </p></td></tr> +</table></div> +<p> + The full cpp file for this example can be found here <a href="../../../../../../../libs/numeric/odeint/examples/harmonic_oscillator_units.cpp" target="_top">harmonic_oscillator_units.cpp</a>. + </p> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="ensembles_of_oscillators.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="using_matrices_as_state_types.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html new file mode 100644 index 000000000..c66c6f595 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html @@ -0,0 +1,701 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Using CUDA (or OpenMP, TBB, ...) via Thrust</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../tutorial.html" title="Tutorial"> +<link rel="prev" href="self_expanding_lattices.html" title="Self expanding lattices"> +<link rel="next" href="using_opencl_via_vexcl.html" title="Using OpenCL via VexCL"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="self_expanding_lattices.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="using_opencl_via_vexcl.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust"></a><a class="link" href="using_cuda__or_openmp__tbb_______via_thrust.html" title="Using CUDA (or OpenMP, TBB, ...) via Thrust">Using + CUDA (or OpenMP, TBB, ...) via Thrust</a> +</h3></div></div></div> +<div class="toc"><dl class="toc"> +<dt><span class="section"><a href="using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.phase_oscillator_ensemble">Phase + oscillator ensemble</a></span></dt> +<dt><span class="section"><a href="using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains">Large + oscillator chains</a></span></dt> +<dt><span class="section"><a href="using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.parameter_studies">Parameter + studies</a></span></dt> +</dl></div> +<p> + Modern graphic cards (graphic processing units - GPUs) can be used to speed + up the performance of time consuming algorithms by means of massive parallelization. + They are designed to execute many operations in parallel. odeint can utilize + the power of GPUs by means of CUDA and <a href="http://code.google.com/p/thrust/" target="_top">Thrust</a>, + which is a STL-like interface for the native CUDA API. + </p> +<div class="important"><table border="0" summary="Important"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../../../../doc/src/images/important.png"></td> +<th align="left">Important</th> +</tr> +<tr><td align="left" valign="top"><p> + Thrust also supports parallelization using OpenMP and Intel Threading Building + Blocks (TBB). You can switch between CUDA, OpenMP and TBB parallelizations + by a simple compiler switch. Hence, this also provides an easy way to get + basic OpenMP parallelization into odeint. The examples discussed below + are focused on GPU parallelization, though. + </p></td></tr> +</table></div> +<p> + To use odeint with CUDA a few points have to be taken into account. First + of all, the problem has to be well chosen. It makes absolutely no sense to + try to parallelize the code for a three dimensional system, it is simply + too small and not worth the effort. One single function call (kernel execution) + on the GPU is slow but you can do the operation on a huge set of data with + only one call. We have experienced that the vector size over which is parallelized + should be of the order of <span class="emphasis"><em>10<sup>6</sup></em></span> to make full use of the + GPU. Secondly, you have to use <a href="http://code.google.com/p/thrust/" target="_top">Thrust</a>'s + algorithms and functors when implementing the rhs the ODE. This might be + tricky since it involves some kind of functional programming knowledge. + </p> +<p> + Typical applications for CUDA and odeint are large systems, like lattices + or discretizations of PDE, and parameter studies. We introduce now three + examples which show how the power of GPUs can be used in combination with + odeint. + </p> +<div class="important"><table border="0" summary="Important"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../../../../doc/src/images/important.png"></td> +<th align="left">Important</th> +</tr> +<tr><td align="left" valign="top"><p> + The full power of CUDA is only available for really large systems where + the number of coupled ordinary differential equations is of order <span class="emphasis"><em>N=10<sup>6</sup></em></span> + or larger. For smaller systems the CPU is usually much faster. You can + also integrate an ensemble of different uncoupled ODEs in parallel as shown + in the last example. + </p></td></tr> +</table></div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.phase_oscillator_ensemble"></a><a class="link" href="using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.phase_oscillator_ensemble" title="Phase oscillator ensemble">Phase + oscillator ensemble</a> +</h4></div></div></div> +<p> + The first example is the phase oscillator ensemble from the previous section: + </p> +<p> + <span class="emphasis"><em>dφ<sub>​k</sub> / dt = ω<sub>​k</sub> + ε / N Σ<sub>​j</sub> sin( φ<sub>​j</sub> - φ<sub>​k</sub> ).</em></span> + </p> +<p> + It has a phase transition at <span class="emphasis"><em>ε = 2</em></span> in the limit of infinite + numbers of oscillators <span class="emphasis"><em>N</em></span>. In the case of finite <span class="emphasis"><em>N</em></span> + this transition is smeared out but still clearly visible. + </p> +<p> + <a href="http://code.google.com/p/thrust/" target="_top">Thrust</a> and CUDA are + perfectly suited for such kinds of problems where one needs a large number + of particles (oscillators). We start by defining the state type which is + a <code class="computeroutput"><span class="identifier">thrust</span><span class="special">::</span><span class="identifier">device_vector</span></code>. The content of this vector + lives on the GPU. If you are not familiar with this we recommend reading + the <span class="emphasis"><em>Getting started</em></span> section on the <a href="http://code.google.com/p/thrust/" target="_top">Thrust</a> + website. + </p> +<p> +</p> +<pre class="programlisting"><span class="comment">//change this to float if your device does not support double computation</span> +<span class="keyword">typedef</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span> + +<span class="comment">//change this to host_vector< ... > of you want to run on CPU</span> +<span class="keyword">typedef</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">device_vector</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span> +<span class="comment">// typedef thrust::host_vector< value_type > state_type;</span> +</pre> +<p> + </p> +<p> + Thrust follows a functional programming approach. If you want to perform + a calculation on the GPU you usually have to call a global function like + <code class="computeroutput"><span class="identifier">thrust</span><span class="special">::</span><span class="identifier">for_each</span></code>, <code class="computeroutput"><span class="identifier">thrust</span><span class="special">::</span><span class="identifier">reduce</span></code>, + ... with an appropriate local functor which performs the basic operation. + An example is +</p> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">add_two</span> +<span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">T</span> <span class="special">></span> + <span class="identifier">__host__</span> <span class="identifier">__device__</span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="identifier">T</span> <span class="special">&</span><span class="identifier">t</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="identifier">t</span> <span class="special">+=</span> <span class="identifier">T</span><span class="special">(</span> <span class="number">2</span> <span class="special">);</span> + <span class="special">}</span> +<span class="special">};</span> + +<span class="comment">// ...</span> + +<span class="identifier">thrust</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">add_two</span><span class="special">()</span> <span class="special">);</span> +</pre> +<p> + This code generically adds two to every element in the container <code class="computeroutput"><span class="identifier">x</span></code>. + </p> +<p> + For the purpose of integrating the phase oscillator ensemble we need + </p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"> + to calculate the system function, hence the r.h.s. of the ODE. + </li> +<li class="listitem"> + this involves computing the mean field of the oscillator example, i.e. + the values of <span class="emphasis"><em>R</em></span> and <span class="emphasis"><em>θ</em></span> + </li> +</ul></div> +<p> + The mean field is calculated in a class <code class="computeroutput"><span class="identifier">mean_field_calculator</span></code> + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">mean_field_calculator</span> +<span class="special">{</span> + <span class="keyword">struct</span> <span class="identifier">sin_functor</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">unary_function</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">,</span> <span class="identifier">value_type</span> <span class="special">></span> + <span class="special">{</span> + <span class="identifier">__host__</span> <span class="identifier">__device__</span> + <span class="identifier">value_type</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="identifier">value_type</span> <span class="identifier">x</span><span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="keyword">return</span> <span class="identifier">sin</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">);</span> + <span class="special">}</span> + <span class="special">};</span> + + <span class="keyword">struct</span> <span class="identifier">cos_functor</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">unary_function</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">,</span> <span class="identifier">value_type</span> <span class="special">></span> + <span class="special">{</span> + <span class="identifier">__host__</span> <span class="identifier">__device__</span> + <span class="identifier">value_type</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="identifier">value_type</span> <span class="identifier">x</span><span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="keyword">return</span> <span class="identifier">cos</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">);</span> + <span class="special">}</span> + <span class="special">};</span> + + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">,</span> <span class="identifier">value_type</span> <span class="special">></span> <span class="identifier">get_mean</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">value_type</span> <span class="identifier">sin_sum</span> <span class="special">=</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">reduce</span><span class="special">(</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_transform_iterator</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">sin_functor</span><span class="special">()</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_transform_iterator</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">sin_functor</span><span class="special">()</span> <span class="special">)</span> <span class="special">);</span> + <span class="identifier">value_type</span> <span class="identifier">cos_sum</span> <span class="special">=</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">reduce</span><span class="special">(</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_transform_iterator</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">cos_functor</span><span class="special">()</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_transform_iterator</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">cos_functor</span><span class="special">()</span> <span class="special">)</span> <span class="special">);</span> + + <span class="identifier">cos_sum</span> <span class="special">/=</span> <span class="identifier">value_type</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">);</span> + <span class="identifier">sin_sum</span> <span class="special">/=</span> <span class="identifier">value_type</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">);</span> + + <span class="identifier">value_type</span> <span class="identifier">K</span> <span class="special">=</span> <span class="identifier">sqrt</span><span class="special">(</span> <span class="identifier">cos_sum</span> <span class="special">*</span> <span class="identifier">cos_sum</span> <span class="special">+</span> <span class="identifier">sin_sum</span> <span class="special">*</span> <span class="identifier">sin_sum</span> <span class="special">);</span> + <span class="identifier">value_type</span> <span class="identifier">Theta</span> <span class="special">=</span> <span class="identifier">atan2</span><span class="special">(</span> <span class="identifier">sin_sum</span> <span class="special">,</span> <span class="identifier">cos_sum</span> <span class="special">);</span> + + <span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special">(</span> <span class="identifier">K</span> <span class="special">,</span> <span class="identifier">Theta</span> <span class="special">);</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + Inside this class two member structures <code class="computeroutput"><span class="identifier">sin_functor</span></code> + and <code class="computeroutput"><span class="identifier">cos_functor</span></code> are defined. + They compute the sine and the cosine of a value and they are used within + a transform iterator to calculate the sum of <span class="emphasis"><em>sin(φ<sub>​k</sub>)</em></span> + and <span class="emphasis"><em>cos(φ<sub>​k</sub>)</em></span>. The classifiers <code class="computeroutput"><span class="identifier">__host__</span></code> + and <code class="computeroutput"><span class="identifier">__device__</span></code> are CUDA + specific and define a function or operator which can be executed on the + GPU as well as on the CPU. The line + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">value_type</span> <span class="identifier">sin_sum</span> <span class="special">=</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">reduce</span><span class="special">(</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_transform_iterator</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">sin_functor</span><span class="special">()</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_transform_iterator</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">sin_functor</span><span class="special">()</span> <span class="special">)</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + performs the calculation of this sine-sum on the GPU (or on the CPU, depending + on your thrust configuration). + </p> +<p> + The system function is defined via + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">phase_oscillator_ensemble</span> +<span class="special">{</span> + +<span class="keyword">public</span><span class="special">:</span> + + <span class="keyword">struct</span> <span class="identifier">sys_functor</span> + <span class="special">{</span> + <span class="identifier">value_type</span> <span class="identifier">m_K</span> <span class="special">,</span> <span class="identifier">m_Theta</span> <span class="special">,</span> <span class="identifier">m_epsilon</span><span class="special">;</span> + + <span class="identifier">sys_functor</span><span class="special">(</span> <span class="identifier">value_type</span> <span class="identifier">K</span> <span class="special">,</span> <span class="identifier">value_type</span> <span class="identifier">Theta</span> <span class="special">,</span> <span class="identifier">value_type</span> <span class="identifier">epsilon</span> <span class="special">)</span> + <span class="special">:</span> <span class="identifier">m_K</span><span class="special">(</span> <span class="identifier">K</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_Theta</span><span class="special">(</span> <span class="identifier">Theta</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_epsilon</span><span class="special">(</span> <span class="identifier">epsilon</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Tuple</span> <span class="special">></span> + <span class="identifier">__host__</span> <span class="identifier">__device__</span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="identifier">Tuple</span> <span class="identifier">t</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span><span class="number">2</span><span class="special">>(</span><span class="identifier">t</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span><span class="number">1</span><span class="special">>(</span><span class="identifier">t</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">m_epsilon</span> <span class="special">*</span> <span class="identifier">m_K</span> <span class="special">*</span> <span class="identifier">sin</span><span class="special">(</span> <span class="identifier">m_Theta</span> <span class="special">-</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span><span class="number">0</span><span class="special">>(</span><span class="identifier">t</span><span class="special">)</span> <span class="special">);</span> + <span class="special">}</span> + <span class="special">};</span> + + <span class="comment">// ...</span> + + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()</span> <span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">dt</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">,</span> <span class="identifier">value_type</span> <span class="special">></span> <span class="identifier">mean_field</span> <span class="special">=</span> <span class="identifier">mean_field_calculator</span><span class="special">::</span><span class="identifier">get_mean</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">);</span> + + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">(</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_zip_iterator</span><span class="special">(</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_tuple</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">m_omega</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">dxdt</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">)</span> <span class="special">),</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_zip_iterator</span><span class="special">(</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_tuple</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">m_omega</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">dxdt</span><span class="special">.</span><span class="identifier">end</span><span class="special">())</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">sys_functor</span><span class="special">(</span> <span class="identifier">mean_field</span><span class="special">.</span><span class="identifier">first</span> <span class="special">,</span> <span class="identifier">mean_field</span><span class="special">.</span><span class="identifier">second</span> <span class="special">,</span> <span class="identifier">m_epsilon</span> <span class="special">)</span> + <span class="special">);</span> + <span class="special">}</span> + + <span class="comment">// ...</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + This class is used within the <code class="computeroutput"><span class="identifier">do_step</span></code> + and <code class="computeroutput"><span class="identifier">integrate</span></code> method. It + defines a member structure <code class="computeroutput"><span class="identifier">sys_functor</span></code> + for the r.h.s. of each individual oscillator and the <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code> for the use in the steppers and integrators + of odeint. The functor computes first the mean field of <span class="emphasis"><em>φ<sub>​k</sub></em></span> + and secondly calculates the whole r.h.s. of the ODE using this mean field. + Note, how nicely <code class="computeroutput"><span class="identifier">thrust</span><span class="special">::</span><span class="identifier">tuple</span></code> + and <code class="computeroutput"><span class="identifier">thrust</span><span class="special">::</span><span class="identifier">zip_iterator</span></code> play together. + </p> +<p> + Now, we are ready to put everything together. All we have to do for making + odeint ready for using the GPU is to parametrize the stepper with the appropriate + thrust algebra/operations: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">runge_kutta4</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">,</span> <span class="identifier">value_type</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">,</span> <span class="identifier">value_type</span> <span class="special">,</span> <span class="identifier">thrust_algebra</span> <span class="special">,</span> <span class="identifier">thrust_operations</span> <span class="special">></span> <span class="identifier">stepper_type</span><span class="special">;</span> +</pre> +<p> + </p> +<p> + You can also use a controlled or dense output stepper, e.g. + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">runge_kutta_dopri5</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">,</span> <span class="identifier">value_type</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">,</span> <span class="identifier">value_type</span> <span class="special">,</span> <span class="identifier">thrust_algebra</span> <span class="special">,</span> <span class="identifier">thrust_operations</span> <span class="special">></span> <span class="identifier">stepper_type</span><span class="special">;</span> +</pre> +<p> + </p> +<p> + Then, it is straightforward to integrate the phase ensemble by creating + an instance of the rhs class and using an integration function: + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">phase_oscillator_ensemble</span> <span class="identifier">ensemble</span><span class="special">(</span> <span class="identifier">N</span> <span class="special">,</span> <span class="number">1.0</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">size_t</span> <span class="identifier">steps1</span> <span class="special">=</span> <span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">make_controlled</span><span class="special">(</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="identifier">stepper_type</span><span class="special">()</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span> <span class="identifier">ensemble</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="identifier">t_transients</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +</pre> +<p> + </p> +<p> + We have to use <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span></code> here in order to pass the rhs class + as reference and not by value. This ensures that the natural frequencies + of each oscillator are not copied when calling <code class="computeroutput"><span class="identifier">integrate_const</span></code>. + In the full example the performance and results of the Runge-Kutta-4 and + the Dopri5 solver are compared. + </p> +<p> + The full example can be found at <a href="../../../../../../../libs/numeric/odeint/examples/thrust/phase_oscillator_ensemble.cu" target="_top">phase_oscillator_example.cu</a>. + </p> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains"></a><a class="link" href="using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains" title="Large oscillator chains">Large + oscillator chains</a> +</h4></div></div></div> +<p> + The next example is a large, one-dimensional chain of nearest-neighbor + coupled phase oscillators with the following equations of motion: + </p> +<p> + <span class="emphasis"><em>d φ<sub>​k</sub> / dt = ω<sub>​k</sub> + sin( φ<sub>​k+1</sub> - φ<sub>​k</sub> ) + sin( φ<sub>​k</sub> - φ<sub>​k-1</sub>)</em></span> + </p> +<p> + In principle we can use all the techniques from the previous phase oscillator + ensemble example, but we have to take special care about the coupling of + the oscillators. To efficiently implement the coupling you can use a very + elegant way employing Thrust's permutation iterator. A permutation iterator + behaves like a normal iterator on a vector but it does not iterate along + the usual order of the elements. It rather iterates along some permutation + of the elements defined by some index map. To realize the nearest neighbor + coupling we create one permutation iterator which travels one step behind + a usual iterator and another permutation iterator which travels one step + in front. The full system class is: + </p> +<p> +</p> +<pre class="programlisting"><span class="comment">//change this to host_vector< ... > if you want to run on CPU</span> +<span class="keyword">typedef</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">device_vector</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">device_vector</span><span class="special"><</span> <span class="identifier">size_t</span> <span class="special">></span> <span class="identifier">index_vector_type</span><span class="special">;</span> +<span class="comment">//typedef thrust::host_vector< value_type > state_type;</span> +<span class="comment">//typedef thrust::host_vector< size_t > index_vector_type;</span> + +<span class="keyword">class</span> <span class="identifier">phase_oscillators</span> +<span class="special">{</span> + +<span class="keyword">public</span><span class="special">:</span> + + <span class="keyword">struct</span> <span class="identifier">sys_functor</span> + <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Tuple</span> <span class="special">></span> + <span class="identifier">__host__</span> <span class="identifier">__device__</span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="identifier">Tuple</span> <span class="identifier">t</span> <span class="special">)</span> <span class="comment">// this functor works on tuples of values</span> + <span class="special">{</span> + <span class="comment">// first, unpack the tuple into value, neighbors and omega</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">phi</span> <span class="special">=</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span><span class="number">0</span><span class="special">>(</span><span class="identifier">t</span><span class="special">);</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">phi_left</span> <span class="special">=</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span><span class="number">1</span><span class="special">>(</span><span class="identifier">t</span><span class="special">);</span> <span class="comment">// left neighbor</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">phi_right</span> <span class="special">=</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span><span class="number">2</span><span class="special">>(</span><span class="identifier">t</span><span class="special">);</span> <span class="comment">// right neighbor</span> + <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">omega</span> <span class="special">=</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span><span class="number">3</span><span class="special">>(</span><span class="identifier">t</span><span class="special">);</span> + <span class="comment">// the dynamical equation</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span><span class="number">4</span><span class="special">>(</span><span class="identifier">t</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">omega</span> <span class="special">+</span> <span class="identifier">sin</span><span class="special">(</span> <span class="identifier">phi_right</span> <span class="special">-</span> <span class="identifier">phi</span> <span class="special">)</span> <span class="special">+</span> <span class="identifier">sin</span><span class="special">(</span> <span class="identifier">phi</span> <span class="special">-</span> <span class="identifier">phi_left</span> <span class="special">);</span> + <span class="special">}</span> + <span class="special">};</span> + + <span class="identifier">phase_oscillators</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">omega</span> <span class="special">)</span> + <span class="special">:</span> <span class="identifier">m_omega</span><span class="special">(</span> <span class="identifier">omega</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_N</span><span class="special">(</span> <span class="identifier">omega</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_prev</span><span class="special">(</span> <span class="identifier">omega</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_next</span><span class="special">(</span> <span class="identifier">omega</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">)</span> + <span class="special">{</span> + <span class="comment">// build indices pointing to left and right neighbours</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">counting_iterator</span><span class="special"><</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">c</span><span class="special">(</span> <span class="number">0</span> <span class="special">);</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span> <span class="identifier">c</span> <span class="special">,</span> <span class="identifier">c</span><span class="special">+</span><span class="identifier">m_N</span><span class="special">-</span><span class="number">1</span> <span class="special">,</span> <span class="identifier">m_prev</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()+</span><span class="number">1</span> <span class="special">);</span> + <span class="identifier">m_prev</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="comment">// m_prev = { 0 , 0 , 1 , 2 , 3 , ... , N-1 }</span> + + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span> <span class="identifier">c</span><span class="special">+</span><span class="number">1</span> <span class="special">,</span> <span class="identifier">c</span><span class="special">+</span><span class="identifier">m_N</span> <span class="special">,</span> <span class="identifier">m_next</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">);</span> + <span class="identifier">m_next</span><span class="special">[</span><span class="identifier">m_N</span><span class="special">-</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">m_N</span><span class="special">-</span><span class="number">1</span><span class="special">;</span> <span class="comment">// m_next = { 1 , 2 , 3 , ... , N-1 , N-1 }</span> + <span class="special">}</span> + + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()</span> <span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">dt</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">(</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_zip_iterator</span><span class="special">(</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_tuple</span><span class="special">(</span> + <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_permutation_iterator</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">m_prev</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_permutation_iterator</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">m_next</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">m_omega</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> + <span class="identifier">dxdt</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> + <span class="special">)</span> <span class="special">),</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_zip_iterator</span><span class="special">(</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_tuple</span><span class="special">(</span> + <span class="identifier">x</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">,</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_permutation_iterator</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">m_prev</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_permutation_iterator</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">m_next</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">m_omega</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">,</span> + <span class="identifier">dxdt</span><span class="special">.</span><span class="identifier">end</span><span class="special">())</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">sys_functor</span><span class="special">()</span> + <span class="special">);</span> + <span class="special">}</span> + +<span class="keyword">private</span><span class="special">:</span> + + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">m_omega</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">m_N</span><span class="special">;</span> + <span class="identifier">index_vector_type</span> <span class="identifier">m_prev</span><span class="special">;</span> + <span class="identifier">index_vector_type</span> <span class="identifier">m_next</span><span class="special">;</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + Note, how easy you can obtain the value for the left and right neighboring + oscillator in the system functor using the permutation iterators. But, + the call of the <code class="computeroutput"><span class="identifier">thrust</span><span class="special">::</span><span class="identifier">for_each</span></code> + function looks relatively complicated. Every term of the r.h.s. of the + ODE is resembled by one iterator packed in exactly the same way as it is + unpacked in the functor above. + </p> +<p> + Now we put everything together. We create random initial conditions and + decreasing frequencies such that we should get synchronization. We copy + the frequencies and the initial conditions onto the device and finally + initialize and perform the integration. As result we simply write out the + current state, hence the phase of each oscillator. + </p> +<p> +</p> +<pre class="programlisting"><span class="comment">// create initial conditions and omegas on host:</span> +<span class="identifier">vector</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span> <span class="identifier">x_host</span><span class="special">(</span> <span class="identifier">N</span> <span class="special">);</span> +<span class="identifier">vector</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span> <span class="identifier">omega_host</span><span class="special">(</span> <span class="identifier">N</span> <span class="special">);</span> +<span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">N</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> +<span class="special">{</span> + <span class="identifier">x_host</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">=</span> <span class="number">2.0</span> <span class="special">*</span> <span class="identifier">pi</span> <span class="special">*</span> <span class="identifier">drand48</span><span class="special">();</span> + <span class="identifier">omega_host</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">=</span> <span class="special">(</span> <span class="identifier">N</span> <span class="special">-</span> <span class="identifier">i</span> <span class="special">)</span> <span class="special">*</span> <span class="identifier">epsilon</span><span class="special">;</span> <span class="comment">// decreasing frequencies</span> +<span class="special">}</span> + +<span class="comment">// copy to device</span> +<span class="identifier">state_type</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">x_host</span><span class="special">;</span> +<span class="identifier">state_type</span> <span class="identifier">omega</span> <span class="special">=</span> <span class="identifier">omega_host</span><span class="special">;</span> + +<span class="comment">// create stepper</span> +<span class="identifier">runge_kutta4</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">,</span> <span class="identifier">value_type</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">,</span> <span class="identifier">value_type</span> <span class="special">,</span> <span class="identifier">thrust_algebra</span> <span class="special">,</span> <span class="identifier">thrust_operations</span> <span class="special">></span> <span class="identifier">stepper</span><span class="special">;</span> + +<span class="comment">// create phase oscillator system function</span> +<span class="identifier">phase_oscillators</span> <span class="identifier">sys</span><span class="special">(</span> <span class="identifier">omega</span> <span class="special">);</span> + +<span class="comment">// integrate</span> +<span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">stepper</span> <span class="special">,</span> <span class="identifier">sys</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> + +<span class="identifier">thrust</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">>(</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">,</span> <span class="string">"\n"</span> <span class="special">)</span> <span class="special">);</span> +<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> +</pre> +<p> + </p> +<p> + The full example can be found at <a href="../../../../../../../libs/numeric/odeint/examples/thrust/phase_oscillator_chain.cu" target="_top">phase_oscillator_chain.cu</a>. + </p> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.parameter_studies"></a><a class="link" href="using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.parameter_studies" title="Parameter studies">Parameter + studies</a> +</h4></div></div></div> +<p> + Another important use case for <a href="http://code.google.com/p/thrust/" target="_top">Thrust</a> + and CUDA are parameter studies of relatively small systems. Consider for + example the three-dimensional Lorenz system from the chaotic systems example + in the previous section which has three parameters. If you want to study + the behavior of this system for different parameters you usually have to + integrate the system for many parameter values. Using thrust and odeint + you can do this integration in parallel, hence you integrate a whole ensemble + of Lorenz systems where each individual realization has a different parameter + value. + </p> +<p> + In the following we will show how you can use <a href="http://code.google.com/p/thrust/" target="_top">Thrust</a> + to integrate the above mentioned ensemble of Lorenz systems. We will vary + only the parameter <span class="emphasis"><em>β</em></span> but it is straightforward to vary + other parameters or even two or all three parameters. Furthermore, we will + use the largest Lyapunov exponent to quantify the behavior of the system + (chaoticity). + </p> +<p> + We start by defining the range of the parameters we want to study. The + state_type is again a <code class="computeroutput"><span class="identifier">thrust</span><span class="special">::</span><span class="identifier">device_vector</span><span class="special"><</span> <span class="identifier">value_type</span> + <span class="special">></span></code>. + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">vector</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span> <span class="identifier">beta_host</span><span class="special">(</span> <span class="identifier">N</span> <span class="special">);</span> +<span class="keyword">const</span> <span class="identifier">value_type</span> <span class="identifier">beta_min</span> <span class="special">=</span> <span class="number">0.0</span> <span class="special">,</span> <span class="identifier">beta_max</span> <span class="special">=</span> <span class="number">56.0</span><span class="special">;</span> +<span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">N</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> + <span class="identifier">beta_host</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">beta_min</span> <span class="special">+</span> <span class="identifier">value_type</span><span class="special">(</span> <span class="identifier">i</span> <span class="special">)</span> <span class="special">*</span> <span class="special">(</span> <span class="identifier">beta_max</span> <span class="special">-</span> <span class="identifier">beta_min</span> <span class="special">)</span> <span class="special">/</span> <span class="identifier">value_type</span><span class="special">(</span> <span class="identifier">N</span> <span class="special">-</span> <span class="number">1</span> <span class="special">);</span> + +<span class="identifier">state_type</span> <span class="identifier">beta</span> <span class="special">=</span> <span class="identifier">beta_host</span><span class="special">;</span> +</pre> +<p> + </p> +<p> + The next thing we have to implement is the Lorenz system without perturbations. + Later, a system with perturbations is also implemented in order to calculate + the Lyapunov exponent. We will use an ansatz where each device function + calculates one particular realization of the Lorenz ensemble + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">lorenz_system</span> +<span class="special">{</span> + <span class="keyword">struct</span> <span class="identifier">lorenz_functor</span> + <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">T</span> <span class="special">></span> + <span class="identifier">__host__</span> <span class="identifier">__device__</span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="identifier">T</span> <span class="identifier">t</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="comment">// unpack the parameter we want to vary and the Lorenz variables</span> + <span class="identifier">value_type</span> <span class="identifier">R</span> <span class="special">=</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span> <span class="number">3</span> <span class="special">>(</span> <span class="identifier">t</span> <span class="special">);</span> + <span class="identifier">value_type</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span> <span class="number">0</span> <span class="special">>(</span> <span class="identifier">t</span> <span class="special">);</span> + <span class="identifier">value_type</span> <span class="identifier">y</span> <span class="special">=</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span> <span class="number">1</span> <span class="special">>(</span> <span class="identifier">t</span> <span class="special">);</span> + <span class="identifier">value_type</span> <span class="identifier">z</span> <span class="special">=</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span> <span class="number">2</span> <span class="special">>(</span> <span class="identifier">t</span> <span class="special">);</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span> <span class="number">4</span> <span class="special">>(</span> <span class="identifier">t</span> <span class="special">)</span> <span class="special">=</span> <span class="identifier">sigma</span> <span class="special">*</span> <span class="special">(</span> <span class="identifier">y</span> <span class="special">-</span> <span class="identifier">x</span> <span class="special">);</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span> <span class="number">5</span> <span class="special">>(</span> <span class="identifier">t</span> <span class="special">)</span> <span class="special">=</span> <span class="identifier">R</span> <span class="special">*</span> <span class="identifier">x</span> <span class="special">-</span> <span class="identifier">y</span> <span class="special">-</span> <span class="identifier">x</span> <span class="special">*</span> <span class="identifier">z</span><span class="special">;</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span> <span class="number">6</span> <span class="special">>(</span> <span class="identifier">t</span> <span class="special">)</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">b</span> <span class="special">*</span> <span class="identifier">z</span> <span class="special">+</span> <span class="identifier">x</span> <span class="special">*</span> <span class="identifier">y</span> <span class="special">;</span> + + <span class="special">}</span> + <span class="special">};</span> + + <span class="identifier">lorenz_system</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">N</span> <span class="special">,</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">beta</span> <span class="special">)</span> + <span class="special">:</span> <span class="identifier">m_N</span><span class="special">(</span> <span class="identifier">N</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">m_beta</span><span class="special">(</span> <span class="identifier">beta</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">State</span> <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Deriv</span> <span class="special">></span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">Deriv</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="identifier">value_type</span> <span class="identifier">t</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">(</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_zip_iterator</span><span class="special">(</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_tuple</span><span class="special">(</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">)</span> <span class="special">+</span> <span class="identifier">m_N</span> <span class="special">,</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">)</span> <span class="special">+</span> <span class="number">2</span> <span class="special">*</span> <span class="identifier">m_N</span> <span class="special">,</span> + <span class="identifier">m_beta</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">dxdt</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">dxdt</span> <span class="special">)</span> <span class="special">+</span> <span class="identifier">m_N</span> <span class="special">,</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">dxdt</span> <span class="special">)</span> <span class="special">+</span> <span class="number">2</span> <span class="special">*</span> <span class="identifier">m_N</span> <span class="special">)</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_zip_iterator</span><span class="special">(</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">make_tuple</span><span class="special">(</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">)</span> <span class="special">+</span> <span class="identifier">m_N</span> <span class="special">,</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">)</span> <span class="special">+</span> <span class="number">2</span> <span class="special">*</span> <span class="identifier">m_N</span> <span class="special">,</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">)</span> <span class="special">+</span> <span class="number">3</span> <span class="special">*</span> <span class="identifier">m_N</span> <span class="special">,</span> + <span class="identifier">m_beta</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">dxdt</span> <span class="special">)</span> <span class="special">+</span> <span class="identifier">m_N</span> <span class="special">,</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">dxdt</span> <span class="special">)</span> <span class="special">+</span> <span class="number">2</span> <span class="special">*</span> <span class="identifier">m_N</span> <span class="special">,</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">dxdt</span> <span class="special">)</span> <span class="special">+</span> <span class="number">3</span> <span class="special">*</span> <span class="identifier">m_N</span> <span class="special">)</span> <span class="special">)</span> <span class="special">,</span> + <span class="identifier">lorenz_functor</span><span class="special">()</span> <span class="special">);</span> + <span class="special">}</span> + <span class="identifier">size_t</span> <span class="identifier">m_N</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">m_beta</span><span class="special">;</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + As <code class="computeroutput"><span class="identifier">state_type</span></code> a <code class="computeroutput"><span class="identifier">thrust</span><span class="special">::</span><span class="identifier">device_vector</span></code> or a <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a> + of a <code class="computeroutput"><span class="identifier">device_vector</span></code> is used. + The length of the state is <span class="emphasis"><em>3N</em></span> where <span class="emphasis"><em>N</em></span> + is the number of systems. The system is encoded into this vector such that + all <span class="emphasis"><em>x</em></span> components come first, then every <span class="emphasis"><em>y</em></span> + components and finally every <span class="emphasis"><em>z</em></span> components. Implementing + the device function is then a simple task, you only have to decompose the + tuple originating from the zip iterators. + </p> +<p> + Besides the system without perturbations we furthermore need to calculate + the system including linearized equations governing the time evolution + of small perturbations. Using the method from above this is straightforward, + with a small difficulty that Thrust's tuples have a maximal arity of 10. + But this is only a small problem since we can create a zip iterator packed + with zip iterators. So the top level zip iterator contains one zip iterator + for the state, one normal iterator for the parameter, and one zip iterator + for the derivative. Accessing the elements of this tuple in the system + function is then straightforward, you unpack the tuple with <code class="computeroutput"><span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><>()</span></code>. + We will not show the code here, it is to large. It can be found <a href="../../../../../../../libs/numeric/odeint/examples/thrust/lorenz_parameters.cu" target="_top">here</a> and + is easy to understand. + </p> +<p> + Furthermore, we need an observer which determines the norm of the perturbations, + normalizes them and averages the logarithm of the norm. The device functor + which is used within this observer is defined + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">lyap_functor</span> +<span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">T</span> <span class="special">></span> + <span class="identifier">__host__</span> <span class="identifier">__device__</span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="identifier">T</span> <span class="identifier">t</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="identifier">value_type</span> <span class="special">&</span><span class="identifier">dx</span> <span class="special">=</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span> <span class="number">0</span> <span class="special">>(</span> <span class="identifier">t</span> <span class="special">);</span> + <span class="identifier">value_type</span> <span class="special">&</span><span class="identifier">dy</span> <span class="special">=</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span> <span class="number">1</span> <span class="special">>(</span> <span class="identifier">t</span> <span class="special">);</span> + <span class="identifier">value_type</span> <span class="special">&</span><span class="identifier">dz</span> <span class="special">=</span> <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span> <span class="number">2</span> <span class="special">>(</span> <span class="identifier">t</span> <span class="special">);</span> + <span class="identifier">value_type</span> <span class="identifier">norm</span> <span class="special">=</span> <span class="identifier">sqrt</span><span class="special">(</span> <span class="identifier">dx</span> <span class="special">*</span> <span class="identifier">dx</span> <span class="special">+</span> <span class="identifier">dy</span> <span class="special">*</span> <span class="identifier">dy</span> <span class="special">+</span> <span class="identifier">dz</span> <span class="special">*</span> <span class="identifier">dz</span> <span class="special">);</span> + <span class="identifier">dx</span> <span class="special">/=</span> <span class="identifier">norm</span><span class="special">;</span> + <span class="identifier">dy</span> <span class="special">/=</span> <span class="identifier">norm</span><span class="special">;</span> + <span class="identifier">dz</span> <span class="special">/=</span> <span class="identifier">norm</span><span class="special">;</span> + <span class="identifier">thrust</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span> <span class="number">3</span> <span class="special">>(</span> <span class="identifier">t</span> <span class="special">)</span> <span class="special">+=</span> <span class="identifier">log</span><span class="special">(</span> <span class="identifier">norm</span> <span class="special">);</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + Note, that this functor manipulates the state, i.e. the perturbations. + </p> +<p> + Now we complete the whole code to calculate the Lyapunov exponents. First, + we have to define a state vector. This vector contains <span class="emphasis"><em>6N</em></span> + entries, the state <span class="emphasis"><em>x,y,z</em></span> and its perturbations <span class="emphasis"><em>dx,dy,dz</em></span>. + We initialize them such that <span class="emphasis"><em>x=y=z=10</em></span>, <span class="emphasis"><em>dx=1</em></span>, + and <span class="emphasis"><em>dy=dz=0</em></span>. We define a stepper type, a controlled + Runge-Kutta Dormand-Prince 5 stepper. We start with some integration to + overcome the transient behavior. For this, we do not involve the perturbation + and run the algorithm only on the state <span class="emphasis"><em>x,y,z</em></span> without + any observer. Note, how <a href="http://www.boost.org/doc/libs/release/libs/range/index.html" target="_top">Boost.Range</a> + is used for partial integration of the state vector without perturbations + (the first half of the whole state). After the transient, the full system + with perturbations is integrated and the Lyapunov exponents are calculated + and written to <code class="computeroutput"><span class="identifier">stdout</span></code>. + </p> +<p> +</p> +<pre class="programlisting"><span class="identifier">state_type</span> <span class="identifier">x</span><span class="special">(</span> <span class="number">6</span> <span class="special">*</span> <span class="identifier">N</span> <span class="special">);</span> + +<span class="comment">// initialize x,y,z</span> +<span class="identifier">thrust</span><span class="special">::</span><span class="identifier">fill</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">+</span> <span class="number">3</span> <span class="special">*</span> <span class="identifier">N</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">);</span> + +<span class="comment">// initial dx</span> +<span class="identifier">thrust</span><span class="special">::</span><span class="identifier">fill</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">+</span> <span class="number">3</span> <span class="special">*</span> <span class="identifier">N</span> <span class="special">,</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">+</span> <span class="number">4</span> <span class="special">*</span> <span class="identifier">N</span> <span class="special">,</span> <span class="number">1.0</span> <span class="special">);</span> + +<span class="comment">// initialize dy,dz</span> +<span class="identifier">thrust</span><span class="special">::</span><span class="identifier">fill</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">+</span> <span class="number">4</span> <span class="special">*</span> <span class="identifier">N</span> <span class="special">,</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">);</span> + + +<span class="comment">// create error stepper, can be used with make_controlled or make_dense_output</span> +<span class="keyword">typedef</span> <span class="identifier">runge_kutta_dopri5</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">,</span> <span class="identifier">value_type</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">,</span> <span class="identifier">value_type</span> <span class="special">,</span> <span class="identifier">thrust_algebra</span> <span class="special">,</span> <span class="identifier">thrust_operations</span> <span class="special">></span> <span class="identifier">stepper_type</span><span class="special">;</span> + + +<span class="identifier">lorenz_system</span> <span class="identifier">lorenz</span><span class="special">(</span> <span class="identifier">N</span> <span class="special">,</span> <span class="identifier">beta</span> <span class="special">);</span> +<span class="identifier">lorenz_perturbation_system</span> <span class="identifier">lorenz_perturbation</span><span class="special">(</span> <span class="identifier">N</span> <span class="special">,</span> <span class="identifier">beta</span> <span class="special">);</span> +<span class="identifier">lyap_observer</span> <span class="identifier">obs</span><span class="special">(</span> <span class="identifier">N</span> <span class="special">,</span> <span class="number">1</span> <span class="special">);</span> + +<span class="comment">// calculate transients</span> +<span class="identifier">integrate_adaptive</span><span class="special">(</span> <span class="identifier">make_controlled</span><span class="special">(</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="identifier">stepper_type</span><span class="special">()</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">lorenz</span> <span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">+</span> <span class="number">3</span> <span class="special">*</span> <span class="identifier">N</span> <span class="special">)</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> + +<span class="comment">// calculate the Lyapunov exponents -- the main loop</span> +<span class="keyword">double</span> <span class="identifier">t</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> +<span class="keyword">while</span><span class="special">(</span> <span class="identifier">t</span> <span class="special"><</span> <span class="number">10000.0</span> <span class="special">)</span> +<span class="special">{</span> + <span class="identifier">integrate_adaptive</span><span class="special">(</span> <span class="identifier">make_controlled</span><span class="special">(</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="number">1.0e-6</span> <span class="special">,</span> <span class="identifier">stepper_type</span><span class="special">()</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">lorenz_perturbation</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">+</span> <span class="number">1.0</span> <span class="special">,</span> <span class="number">0.1</span> <span class="special">);</span> + <span class="identifier">t</span> <span class="special">+=</span> <span class="number">1.0</span><span class="special">;</span> + <span class="identifier">obs</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">);</span> +<span class="special">}</span> + +<span class="identifier">vector</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span> <span class="identifier">lyap</span><span class="special">(</span> <span class="identifier">N</span> <span class="special">);</span> +<span class="identifier">obs</span><span class="special">.</span><span class="identifier">fill_lyap</span><span class="special">(</span> <span class="identifier">lyap</span> <span class="special">);</span> + +<span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">N</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> + <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">beta_host</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special"><<</span> <span class="string">"\t"</span> <span class="special"><<</span> <span class="identifier">lyap</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span> +</pre> +<p> + </p> +<p> + The full example can be found at <a href="../../../../../../../libs/numeric/odeint/examples/thrust/lorenz_parameters.cu" target="_top">lorenz_parameters.cu</a>. + </p> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="self_expanding_lattices.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="using_opencl_via_vexcl.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_matrices_as_state_types.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_matrices_as_state_types.html new file mode 100644 index 000000000..1554af304 --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_matrices_as_state_types.html @@ -0,0 +1,115 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Using matrices as state types</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../tutorial.html" title="Tutorial"> +<link rel="prev" href="using_boost__units.html" title="Using boost::units"> +<link rel="next" href="using_arbitrary_precision_floating_point_types.html" title="Using arbitrary precision floating point types"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="using_boost__units.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="using_arbitrary_precision_floating_point_types.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.tutorial.using_matrices_as_state_types"></a><a class="link" href="using_matrices_as_state_types.html" title="Using matrices as state types">Using + matrices as state types</a> +</h3></div></div></div> +<p> + odeint works well with a variety of different state types. It is not restricted + to pure vector-wise types, like <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span></code>, <code class="computeroutput"><span class="identifier">array</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">N</span> <span class="special">></span></code>, + <code class="computeroutput"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">></span></code>, + etc. but also works with types having a different topology then simple vectors. + Here, we show how odeint can be used with matrices as states type, in the + next section we will show how can be used to solve ODEs defined on complex + networks. + </p> +<p> + By default, odeint can be used with <code class="computeroutput"><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">matrix</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span></code> as state type for matrices. A simple + example is a two-dimensional lattice of coupled phase oscillators. Other + matrix types like <code class="computeroutput"><span class="identifier">mtl</span><span class="special">::</span><span class="identifier">dense_matrix</span></code> or blitz arrays and matrices + can used as well but need some kind of activation in order to work with odeint. + This activation is described in following sections, + </p> +<p> + The definition of the system is + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">ublas</span><span class="special">::</span><span class="identifier">matrix</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span> + +<span class="keyword">struct</span> <span class="identifier">two_dimensional_phase_lattice</span> +<span class="special">{</span> + <span class="identifier">two_dimensional_phase_lattice</span><span class="special">(</span> <span class="keyword">double</span> <span class="identifier">gamma</span> <span class="special">=</span> <span class="number">0.5</span> <span class="special">)</span> + <span class="special">:</span> <span class="identifier">m_gamma</span><span class="special">(</span> <span class="identifier">gamma</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">double</span> <span class="comment">/* t */</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="identifier">size_t</span> <span class="identifier">size1</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">size1</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">size2</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">size2</span><span class="special">();</span> + + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">1</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">size1</span><span class="special">-</span><span class="number">1</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> + <span class="special">{</span> + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">j</span><span class="special">=</span><span class="number">1</span> <span class="special">;</span> <span class="identifier">j</span><span class="special"><</span><span class="identifier">size2</span><span class="special">-</span><span class="number">1</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">j</span> <span class="special">)</span> + <span class="special">{</span> + <span class="identifier">dxdt</span><span class="special">(</span> <span class="identifier">i</span> <span class="special">,</span> <span class="identifier">j</span> <span class="special">)</span> <span class="special">=</span> + <span class="identifier">coupling_func</span><span class="special">(</span> <span class="identifier">x</span><span class="special">(</span> <span class="identifier">i</span> <span class="special">+</span> <span class="number">1</span> <span class="special">,</span> <span class="identifier">j</span> <span class="special">)</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">(</span> <span class="identifier">i</span> <span class="special">,</span> <span class="identifier">j</span> <span class="special">)</span> <span class="special">)</span> <span class="special">+</span> + <span class="identifier">coupling_func</span><span class="special">(</span> <span class="identifier">x</span><span class="special">(</span> <span class="identifier">i</span> <span class="special">-</span> <span class="number">1</span> <span class="special">,</span> <span class="identifier">j</span> <span class="special">)</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">(</span> <span class="identifier">i</span> <span class="special">,</span> <span class="identifier">j</span> <span class="special">)</span> <span class="special">)</span> <span class="special">+</span> + <span class="identifier">coupling_func</span><span class="special">(</span> <span class="identifier">x</span><span class="special">(</span> <span class="identifier">i</span> <span class="special">,</span> <span class="identifier">j</span> <span class="special">+</span> <span class="number">1</span> <span class="special">)</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">(</span> <span class="identifier">i</span> <span class="special">,</span> <span class="identifier">j</span> <span class="special">)</span> <span class="special">)</span> <span class="special">+</span> + <span class="identifier">coupling_func</span><span class="special">(</span> <span class="identifier">x</span><span class="special">(</span> <span class="identifier">i</span> <span class="special">,</span> <span class="identifier">j</span> <span class="special">-</span> <span class="number">1</span> <span class="special">)</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">(</span> <span class="identifier">i</span> <span class="special">,</span> <span class="identifier">j</span> <span class="special">)</span> <span class="special">);</span> + <span class="special">}</span> + <span class="special">}</span> + + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">x</span><span class="special">.</span><span class="identifier">size1</span><span class="special">()</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> <span class="identifier">dxdt</span><span class="special">(</span> <span class="identifier">i</span> <span class="special">,</span> <span class="number">0</span> <span class="special">)</span> <span class="special">=</span> <span class="identifier">dxdt</span><span class="special">(</span> <span class="identifier">i</span> <span class="special">,</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">size2</span><span class="special">()</span> <span class="special">-</span><span class="number">1</span> <span class="special">)</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> + <span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">j</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">j</span><span class="special"><</span><span class="identifier">x</span><span class="special">.</span><span class="identifier">size2</span><span class="special">()</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">j</span> <span class="special">)</span> <span class="identifier">dxdt</span><span class="special">(</span> <span class="number">0</span> <span class="special">,</span> <span class="identifier">j</span> <span class="special">)</span> <span class="special">=</span> <span class="identifier">dxdt</span><span class="special">(</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">size1</span><span class="special">()</span> <span class="special">-</span><span class="number">1</span> <span class="special">,</span> <span class="identifier">j</span> <span class="special">)</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span> + <span class="special">}</span> + + <span class="keyword">double</span> <span class="identifier">coupling_func</span><span class="special">(</span> <span class="keyword">double</span> <span class="identifier">x</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="keyword">return</span> <span class="identifier">sin</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">)</span> <span class="special">-</span> <span class="identifier">m_gamma</span> <span class="special">*</span> <span class="special">(</span> <span class="number">1.0</span> <span class="special">-</span> <span class="identifier">cos</span><span class="special">(</span> <span class="identifier">x</span> <span class="special">)</span> <span class="special">);</span> + <span class="special">}</span> + + <span class="keyword">double</span> <span class="identifier">m_gamma</span><span class="special">;</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + In principle this is all. Please note, that the above code is far from being + optimal. Better performance can be achieved if every interaction is only + calculated once and iterators for columns and rows are used. Below are some + visualizations of the evolution of this lattice equation. + </p> +<p> + <span class="inlinemediaobject"><img src="../../phase_lattice_2d_0000.jpg" alt="phase_lattice_2d_0000"></span> <span class="inlinemediaobject"><img src="../../phase_lattice_2d_0100.jpg" alt="phase_lattice_2d_0100"></span> <span class="inlinemediaobject"><img src="../../phase_lattice_2d_1000.jpg" alt="phase_lattice_2d_1000"></span> + </p> +<p> + The full cpp for this example can be found here <a href="../../../../../../../libs/numeric/odeint/examples/two_dimensional_phase_lattice.cpp" target="_top">two_dimensional_phase_lattice.cpp</a>. + </p> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="using_boost__units.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="using_arbitrary_precision_floating_point_types.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_opencl_via_vexcl.html b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_opencl_via_vexcl.html new file mode 100644 index 000000000..ecea817ec --- /dev/null +++ b/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_opencl_via_vexcl.html @@ -0,0 +1,180 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Using OpenCL via VexCL</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../tutorial.html" title="Tutorial"> +<link rel="prev" href="using_cuda__or_openmp__tbb_______via_thrust.html" title="Using CUDA (or OpenMP, TBB, ...) via Thrust"> +<link rel="next" href="all_examples.html" title="All examples"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="using_cuda__or_openmp__tbb_______via_thrust.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="all_examples.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="boost_numeric_odeint.tutorial.using_opencl_via_vexcl"></a><a class="link" href="using_opencl_via_vexcl.html" title="Using OpenCL via VexCL">Using + OpenCL via VexCL</a> +</h3></div></div></div> +<p> + In the previous section the usage of odeint in combination with <a href="http://code.google.com/p/thrust/" target="_top">Thrust</a> + was shown. In this section we show how one can use OpenCL with odeint. The + point of odeint is not to implement its own low-level data structures and + algorithms, but to use high level libraries doing this task. Here, we will + use the <a href="https://github.com/ddemidov/vexcl" target="_top">VexCL</a> framework + to use OpenCL. <a href="https://github.com/ddemidov/vexcl" target="_top">VexCL</a> + is a nice library for general computations and it uses heavily expression + templates. With the help of <a href="https://github.com/ddemidov/vexcl" target="_top">VexCL</a> + it is possible to write very compact and expressive application. + </p> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p> + vexcl needs C++11 features! So you have to compile with C++11 support enabled. + </p></td></tr> +</table></div> +<p> + To use <a href="https://github.com/ddemidov/vexcl" target="_top">VexCL</a> one needs + to include one additional header which includes the data-types and algorithms + from vexcl and the adaption to odeint. Adaption to odeint means here only + to adapt the resizing functionality of <a href="https://github.com/ddemidov/vexcl" target="_top">VexCL</a> + to odeint. + </p> +<p> +</p> +<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">odeint</span><span class="special">/</span><span class="identifier">external</span><span class="special">/</span><span class="identifier">vexcl</span><span class="special">/</span><span class="identifier">vexcl_resize</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> +</pre> +<p> + </p> +<p> + To demonstrate the use of <a href="https://github.com/ddemidov/vexcl" target="_top">VexCL</a> + we integrate an ensemble of Lorenz system. The example is very similar to + the parameter study of the Lorenz system in the previous section except that + we do not compute the Lyapunov exponents. Again, we vary the parameter R + of the Lorenz system an solve a whole ensemble of Lorenz systems in parallel + (each with a different parameter R). First, we define the state type and + a vector type + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">vex</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">vector_type</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">vex</span><span class="special">::</span><span class="identifier">multivector</span><span class="special"><</span> <span class="keyword">double</span><span class="special">,</span> <span class="number">3</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span> +</pre> +<p> + </p> +<p> + The <code class="computeroutput"><span class="identifier">vector_type</span></code> is used to + represent the parameter R. The <code class="computeroutput"><span class="identifier">state_type</span></code> + is a multi-vector of three sub vectors and is used to represent. The first + component of this multi-vector represent all <code class="computeroutput"><span class="identifier">x</span></code> + components of the Lorenz system, while the second all <code class="computeroutput"><span class="identifier">y</span></code> + components and the third all <code class="computeroutput"><span class="identifier">z</span></code> + components. The components of this vector can be obtained via + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">auto</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">=</span> <span class="identifier">X</span><span class="special">(</span><span class="number">0</span><span class="special">);</span> +<span class="keyword">auto</span> <span class="special">&</span><span class="identifier">y</span> <span class="special">=</span> <span class="identifier">X</span><span class="special">(</span><span class="number">1</span><span class="special">);</span> +<span class="keyword">auto</span> <span class="special">&</span><span class="identifier">z</span> <span class="special">=</span> <span class="identifier">X</span><span class="special">(</span><span class="number">2</span><span class="special">);</span> +</pre> +<p> + </p> +<p> + As already mentioned <a href="https://github.com/ddemidov/vexcl" target="_top">VexCL</a> + supports expression templates and we will use them to implement the system + function for the Lorenz ensemble: + </p> +<p> +</p> +<pre class="programlisting"><span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">sigma</span> <span class="special">=</span> <span class="number">10.0</span><span class="special">;</span> +<span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">b</span> <span class="special">=</span> <span class="number">8.0</span> <span class="special">/</span> <span class="number">3.0</span><span class="special">;</span> + +<span class="keyword">struct</span> <span class="identifier">sys_func</span> +<span class="special">{</span> + <span class="keyword">const</span> <span class="identifier">vector_type</span> <span class="special">&</span><span class="identifier">R</span><span class="special">;</span> + + <span class="identifier">sys_func</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">vector_type</span> <span class="special">&</span><span class="identifier">_R</span> <span class="special">)</span> <span class="special">:</span> <span class="identifier">R</span><span class="special">(</span> <span class="identifier">_R</span> <span class="special">)</span> <span class="special">{</span> <span class="special">}</span> + + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span> <span class="keyword">const</span> + <span class="special">{</span> + <span class="identifier">dxdt</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">sigma</span> <span class="special">*</span> <span class="special">(</span> <span class="identifier">x</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">(</span><span class="number">1</span><span class="special">)</span> <span class="special">);</span> + <span class="identifier">dxdt</span><span class="special">(</span><span class="number">1</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">R</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">(</span><span class="number">1</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">(</span><span class="number">2</span><span class="special">);</span> + <span class="identifier">dxdt</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special">=</span> <span class="special">-</span> <span class="identifier">b</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">x</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">(</span><span class="number">1</span><span class="special">);</span> + <span class="special">}</span> +<span class="special">};</span> +</pre> +<p> + </p> +<p> + It's very easy, isn't it? These three little lines do all the computations + for you. There is no need to write your own OpenCL kernels. <a href="https://github.com/ddemidov/vexcl" target="_top">VexCL</a> + does everything for you. Next we have to write the main application. We initialize + the vector of parameters (R) and the initial state. Since <a href="https://github.com/ddemidov/vexcl" target="_top">VexCL</a> + supports odeint we can already use the <code class="computeroutput"><span class="identifier">vector_space_algebra</span></code> + in combination with the <code class="computeroutput"><span class="identifier">default_operations</span></code> + for the stepper and we are done: + </p> +<p> +</p> +<pre class="programlisting"><span class="comment">// setup the opencl context</span> +<span class="identifier">vex</span><span class="special">::</span><span class="identifier">Context</span> <span class="identifier">ctx</span><span class="special">(</span> <span class="identifier">vex</span><span class="special">::</span><span class="identifier">Filter</span><span class="special">::</span><span class="identifier">Type</span><span class="special">(</span><span class="identifier">CL_DEVICE_TYPE_GPU</span><span class="special">)</span> <span class="special">);</span> +<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">ctx</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> + +<span class="comment">// set up number of system, time step and integration time</span> +<span class="keyword">const</span> <span class="identifier">size_t</span> <span class="identifier">n</span> <span class="special">=</span> <span class="number">1024</span> <span class="special">*</span> <span class="number">1024</span><span class="special">;</span> +<span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">dt</span> <span class="special">=</span> <span class="number">0.01</span><span class="special">;</span> +<span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">t_max</span> <span class="special">=</span> <span class="number">100.0</span><span class="special">;</span> + +<span class="comment">// initialize R</span> +<span class="keyword">double</span> <span class="identifier">Rmin</span> <span class="special">=</span> <span class="number">0.1</span> <span class="special">,</span> <span class="identifier">Rmax</span> <span class="special">=</span> <span class="number">50.0</span> <span class="special">,</span> <span class="identifier">dR</span> <span class="special">=</span> <span class="special">(</span> <span class="identifier">Rmax</span> <span class="special">-</span> <span class="identifier">Rmin</span> <span class="special">)</span> <span class="special">/</span> <span class="keyword">double</span><span class="special">(</span> <span class="identifier">n</span> <span class="special">-</span> <span class="number">1</span> <span class="special">);</span> +<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">x</span><span class="special">(</span> <span class="identifier">n</span> <span class="special">*</span> <span class="number">3</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">r</span><span class="special">(</span> <span class="identifier">n</span> <span class="special">);</span> +<span class="keyword">for</span><span class="special">(</span> <span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span> <span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="identifier">n</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span> <span class="identifier">r</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">Rmin</span> <span class="special">+</span> <span class="identifier">dR</span> <span class="special">*</span> <span class="keyword">double</span><span class="special">(</span> <span class="identifier">i</span> <span class="special">);</span> +<span class="identifier">vector_type</span> <span class="identifier">R</span><span class="special">(</span> <span class="identifier">ctx</span><span class="special">.</span><span class="identifier">queue</span><span class="special">()</span> <span class="special">,</span> <span class="identifier">r</span> <span class="special">);</span> + +<span class="comment">// initialize the state of the lorenz ensemble</span> +<span class="identifier">state_type</span> <span class="identifier">X</span><span class="special">(</span><span class="identifier">ctx</span><span class="special">.</span><span class="identifier">queue</span><span class="special">(),</span> <span class="identifier">n</span><span class="special">);</span> +<span class="identifier">X</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special">=</span> <span class="number">10.0</span><span class="special">;</span> +<span class="identifier">X</span><span class="special">(</span><span class="number">1</span><span class="special">)</span> <span class="special">=</span> <span class="number">10.0</span><span class="special">;</span> +<span class="identifier">X</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special">=</span> <span class="number">10.0</span><span class="special">;</span> + +<span class="comment">// create a stepper</span> +<span class="identifier">runge_kutta4</span><span class="special"><</span> + <span class="identifier">state_type</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">,</span> <span class="keyword">double</span> <span class="special">,</span> + <span class="identifier">odeint</span><span class="special">::</span><span class="identifier">vector_space_algebra</span> <span class="special">,</span> <span class="identifier">odeint</span><span class="special">::</span><span class="identifier">default_operations</span> + <span class="special">></span> <span class="identifier">stepper</span><span class="special">;</span> + +<span class="comment">// solve the system</span> +<span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">stepper</span> <span class="special">,</span> <span class="identifier">sys_func</span><span class="special">(</span> <span class="identifier">R</span> <span class="special">)</span> <span class="special">,</span> <span class="identifier">X</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="identifier">t_max</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span> +</pre> +<p> + </p> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="using_cuda__or_openmp__tbb_______via_thrust.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="all_examples.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html new file mode 100644 index 000000000..e8fa9412b --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html @@ -0,0 +1,74 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/integrate/integrate_adaptive.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/integrate_idp19514032.html" title="Function template integrate"> +<link rel="next" href="../../../../../boost/numeric/odeint/integrate_adap_idp19520144.html" title="Function template integrate_adaptive"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/integrate_idp19514032.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/integrate_adap_idp19520144.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.integrate.integrate_adaptive_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/integrate/integrate_adaptive.hpp" target="_top">boost/numeric/odeint/integrate/integrate_adaptive.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Observer<span class="special">></span> + <span class="identifier">size_t</span> <a class="link" href="../../../../../boost/numeric/odeint/integrate_adap_idp19520144.html" title="Function template integrate_adaptive"><span class="identifier">integrate_adaptive</span></a><span class="special">(</span><span class="identifier">Stepper</span><span class="special">,</span> <span class="identifier">System</span><span class="special">,</span> <span class="identifier">State</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> + <span class="identifier">Observer</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// Second version to solve the forwarding problem, can be called with Boost.Range as start_state. </span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Observer<span class="special">></span> + <span class="identifier">size_t</span> <a name="boost.numeric.odeint.integrate_adap_idp19527392"></a><span class="identifier">integrate_adaptive</span><span class="special">(</span><span class="identifier">Stepper</span> stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> <span class="identifier">Time</span> start_time<span class="special">,</span> + <span class="identifier">Time</span> end_time<span class="special">,</span> <span class="identifier">Time</span> dt<span class="special">,</span> <span class="identifier">Observer</span> observer<span class="special">)</span><span class="special">;</span> + + <span class="comment">// integrate_adaptive without an observer. </span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> Time<span class="special">></span> + <span class="identifier">size_t</span> <a name="boost.numeric.odeint.integrate_adap_idp19531824"></a><span class="identifier">integrate_adaptive</span><span class="special">(</span><span class="identifier">Stepper</span> stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> + <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> <span class="identifier">Time</span> start_time<span class="special">,</span> + <span class="identifier">Time</span> end_time<span class="special">,</span> <span class="identifier">Time</span> dt<span class="special">)</span><span class="special">;</span> + + <span class="comment">// Second version to solve the forwarding problem, can be called with Boost.Range as start_state. </span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> Time<span class="special">></span> + <span class="identifier">size_t</span> <a name="boost.numeric.odeint.integrate_adap_idp19535600"></a><span class="identifier">integrate_adaptive</span><span class="special">(</span><span class="identifier">Stepper</span> stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> <span class="identifier">Time</span> start_time<span class="special">,</span> + <span class="identifier">Time</span> end_time<span class="special">,</span> <span class="identifier">Time</span> dt<span class="special">)</span><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/integrate_idp19514032.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/integrate_adap_idp19520144.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/integrate_const_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/integrate_const_hpp.html new file mode 100644 index 000000000..d3ed18f40 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/integrate_const_hpp.html @@ -0,0 +1,74 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/integrate/integrate_const.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/integrate_adap_idp19520144.html" title="Function template integrate_adaptive"> +<link rel="next" href="../../../../../boost/numeric/odeint/integrate_cons_idp19540240.html" title="Function template integrate_const"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/integrate_adap_idp19520144.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/integrate_cons_idp19540240.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.integrate.integrate_const_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/integrate/integrate_const.hpp" target="_top">boost/numeric/odeint/integrate/integrate_const.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Observer<span class="special">></span> + <span class="identifier">size_t</span> <a class="link" href="../../../../../boost/numeric/odeint/integrate_cons_idp19540240.html" title="Function template integrate_const"><span class="identifier">integrate_const</span></a><span class="special">(</span><span class="identifier">Stepper</span><span class="special">,</span> <span class="identifier">System</span><span class="special">,</span> <span class="identifier">State</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> + <span class="identifier">Observer</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// Second version to solve the forwarding problem, can be called with Boost.Range as start_state. </span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Observer<span class="special">></span> + <span class="identifier">size_t</span> <a name="boost.numeric.odeint.integrate_cons_idp19547104"></a><span class="identifier">integrate_const</span><span class="special">(</span><span class="identifier">Stepper</span> stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> <span class="identifier">Time</span> start_time<span class="special">,</span> + <span class="identifier">Time</span> end_time<span class="special">,</span> <span class="identifier">Time</span> dt<span class="special">,</span> <span class="identifier">Observer</span> observer<span class="special">)</span><span class="special">;</span> + + <span class="comment">// integrate_const without observer calls </span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> Time<span class="special">></span> + <span class="identifier">size_t</span> <a name="boost.numeric.odeint.integrate_cons_idp19551520"></a><span class="identifier">integrate_const</span><span class="special">(</span><span class="identifier">Stepper</span> stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> + <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> <span class="identifier">Time</span> start_time<span class="special">,</span> + <span class="identifier">Time</span> end_time<span class="special">,</span> <span class="identifier">Time</span> dt<span class="special">)</span><span class="special">;</span> + + <span class="comment">// Second version to solve the forwarding problem, can be called with Boost.Range as start_state. </span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> Time<span class="special">></span> + <span class="identifier">size_t</span> <a name="boost.numeric.odeint.integrate_cons_idp19555280"></a><span class="identifier">integrate_const</span><span class="special">(</span><span class="identifier">Stepper</span> stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> <span class="identifier">Time</span> start_time<span class="special">,</span> + <span class="identifier">Time</span> end_time<span class="special">,</span> <span class="identifier">Time</span> dt<span class="special">)</span><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/integrate_adap_idp19520144.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/integrate_cons_idp19540240.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/integrate_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/integrate_hpp.html new file mode 100644 index 000000000..f9cb1ce80 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/integrate_hpp.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/integrate/integrate.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="next" href="../../../../../boost/numeric/odeint/integrate_idp10099280.html" title="Function template integrate"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/integrate_idp10099280.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.integrate.integrate_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/integrate/integrate.hpp" target="_top">boost/numeric/odeint/integrate/integrate.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> + <span class="keyword">typename</span> Observer<span class="special">></span> + <span class="identifier">size_t</span> <a class="link" href="../../../../../boost/numeric/odeint/integrate_idp10099280.html" title="Function template integrate"><span class="identifier">integrate</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">State</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> <span class="identifier">Observer</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">></span> + <span class="identifier">size_t</span> <a class="link" href="../../../../../boost/numeric/odeint/integrate_idp19514032.html" title="Function template integrate"><span class="identifier">integrate</span></a><span class="special">(</span><span class="identifier">System</span><span class="special">,</span> <span class="identifier">State</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">)</span><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/integrate_idp10099280.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html new file mode 100644 index 000000000..94bf52297 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html @@ -0,0 +1,75 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/integrate/integrate_n_steps.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/integrate_cons_idp19540240.html" title="Function template integrate_const"> +<link rel="next" href="../../../../../boost/numeric/odeint/integrate_n_st_idp19559904.html" title="Function template integrate_n_steps"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/integrate_cons_idp19540240.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/integrate_n_st_idp19559904.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.integrate.integrate_n_steps_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/integrate/integrate_n_steps.hpp" target="_top">boost/numeric/odeint/integrate/integrate_n_steps.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Observer<span class="special">></span> + <span class="identifier">Time</span> <a class="link" href="../../../../../boost/numeric/odeint/integrate_n_st_idp19559904.html" title="Function template integrate_n_steps"><span class="identifier">integrate_n_steps</span></a><span class="special">(</span><span class="identifier">Stepper</span><span class="special">,</span> <span class="identifier">System</span><span class="special">,</span> <span class="identifier">State</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> <span class="identifier">size_t</span><span class="special">,</span> + <span class="identifier">Observer</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// Solves the forwarding problem, can be called with Boost.Range as start_state. </span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Observer<span class="special">></span> + <span class="identifier">Time</span> <a name="boost.numeric.odeint.integrate_n_st_idp19566784"></a><span class="identifier">integrate_n_steps</span><span class="special">(</span><span class="identifier">Stepper</span> stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> <span class="identifier">Time</span> start_time<span class="special">,</span> + <span class="identifier">Time</span> dt<span class="special">,</span> <span class="identifier">size_t</span> num_of_steps<span class="special">,</span> + <span class="identifier">Observer</span> observer<span class="special">)</span><span class="special">;</span> + + <span class="comment">// The same function as above, but without observer calls. </span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> Time<span class="special">></span> + <span class="identifier">Time</span> <a name="boost.numeric.odeint.integrate_n_st_idp19571120"></a><span class="identifier">integrate_n_steps</span><span class="special">(</span><span class="identifier">Stepper</span> stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> + <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> <span class="identifier">Time</span> start_time<span class="special">,</span> <span class="identifier">Time</span> dt<span class="special">,</span> + <span class="identifier">size_t</span> num_of_steps<span class="special">)</span><span class="special">;</span> + + <span class="comment">// Solves the forwarding problem, can be called with Boost.Range as start_state. </span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> Time<span class="special">></span> + <span class="identifier">Time</span> <a name="boost.numeric.odeint.integrate_n_st_idp19574912"></a><span class="identifier">integrate_n_steps</span><span class="special">(</span><span class="identifier">Stepper</span> stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> <span class="identifier">Time</span> start_time<span class="special">,</span> + <span class="identifier">Time</span> dt<span class="special">,</span> <span class="identifier">size_t</span> num_of_steps<span class="special">)</span><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/integrate_cons_idp19540240.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/integrate_n_st_idp19559904.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/integrate_times_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/integrate_times_hpp.html new file mode 100644 index 000000000..a135ebcc3 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/integrate_times_hpp.html @@ -0,0 +1,77 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/integrate/integrate_times.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/integrate_n_st_idp19559904.html" title="Function template integrate_n_steps"> +<link rel="next" href="../../../../../boost/numeric/odeint/integrate_time_idp19579536.html" title="Function template integrate_times"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/integrate_n_st_idp19559904.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/integrate_time_idp19579536.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.integrate.integrate_times_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/integrate/integrate_times.hpp" target="_top">boost/numeric/odeint/integrate/integrate_times.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> TimeIterator<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Observer<span class="special">></span> + <span class="identifier">size_t</span> <a class="link" href="../../../../../boost/numeric/odeint/integrate_time_idp19579536.html" title="Function template integrate_times"><span class="identifier">integrate_times</span></a><span class="special">(</span><span class="identifier">Stepper</span><span class="special">,</span> <span class="identifier">System</span><span class="special">,</span> <span class="identifier">State</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">TimeIterator</span><span class="special">,</span> + <span class="identifier">TimeIterator</span><span class="special">,</span> <span class="identifier">Time</span><span class="special">,</span> <span class="identifier">Observer</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// Solves the forwarding problem, can be called with Boost.Range as start_state. </span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> TimeIterator<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Observer<span class="special">></span> + <span class="identifier">size_t</span> <a name="boost.numeric.odeint.integrate_time_idp19586672"></a><span class="identifier">integrate_times</span><span class="special">(</span><span class="identifier">Stepper</span> stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> + <span class="identifier">TimeIterator</span> times_start<span class="special">,</span> + <span class="identifier">TimeIterator</span> times_end<span class="special">,</span> <span class="identifier">Time</span> dt<span class="special">,</span> + <span class="identifier">Observer</span> observer<span class="special">)</span><span class="special">;</span> + + <span class="comment">// The same function as above, but without observer calls. </span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> TimeRange<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Observer<span class="special">></span> + <span class="identifier">size_t</span> <a name="boost.numeric.odeint.integrate_time_idp19591344"></a><span class="identifier">integrate_times</span><span class="special">(</span><span class="identifier">Stepper</span> stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> + <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">TimeRange</span> <span class="special">&</span> times<span class="special">,</span> + <span class="identifier">Time</span> dt<span class="special">,</span> <span class="identifier">Observer</span> observer<span class="special">)</span><span class="special">;</span> + + <span class="comment">// Solves the forwarding problem, can be called with Boost.Range as start_state. </span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">typename</span> System<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> TimeRange<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Observer<span class="special">></span> + <span class="identifier">size_t</span> <a name="boost.numeric.odeint.integrate_time_idp19595680"></a><span class="identifier">integrate_times</span><span class="special">(</span><span class="identifier">Stepper</span> stepper<span class="special">,</span> <span class="identifier">System</span> system<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">State</span> <span class="special">&</span> start_state<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">TimeRange</span> <span class="special">&</span> times<span class="special">,</span> <span class="identifier">Time</span> dt<span class="special">,</span> + <span class="identifier">Observer</span> observer<span class="special">)</span><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/integrate_n_st_idp19559904.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/integrate_time_idp19579536.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/null_observer_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/null_observer_hpp.html new file mode 100644 index 000000000..e2b2af107 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/null_observer_hpp.html @@ -0,0 +1,50 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/integrate/null_observer.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/integrate_time_idp19579536.html" title="Function template integrate_times"> +<link rel="next" href="../../../../../boost/numeric/odeint/null_observer.html" title="Struct null_observer"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/integrate_time_idp19579536.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/null_observer.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.integrate.null_observer_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/integrate/null_observer.hpp" target="_top">boost/numeric/odeint/integrate/null_observer.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/null_observer.html" title="Struct null_observer">null_observer</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/integrate_time_idp19579536.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/null_observer.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/observer_collection_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/observer_collection_hpp.html new file mode 100644 index 000000000..102b2c810 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/integrate/observer_collection_hpp.html @@ -0,0 +1,50 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/integrate/observer_collection.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/null_observer.html" title="Struct null_observer"> +<link rel="next" href="../../../../../boost/numeric/odeint/observer_collection.html" title="Class template observer_collection"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/null_observer.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/observer_collection.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.integrate.observer_collection_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/integrate/observer_collection.hpp" target="_top">boost/numeric/odeint/integrate/observer_collection.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">></span> <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/observer_collection.html" title="Class template observer_collection">observer_collection</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/null_observer.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/observer_collection.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/adams_bashforth_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/adams_bashforth_hpp.html new file mode 100644 index 000000000..6da26b867 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/adams_bashforth_hpp.html @@ -0,0 +1,56 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/adams_bashforth.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/observer_collection.html" title="Class template observer_collection"> +<link rel="next" href="../../../../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/observer_collection.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/adams_bashforth.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.adams_bashforth_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/adams_bashforth.hpp" target="_top">boost/numeric/odeint/stepper/adams_bashforth.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="identifier">size_t</span> Steps<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">,</span> + <span class="keyword">typename</span> InitializingStepper <span class="special">=</span> <a class="link" href="../../../../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4">runge_kutta4</a><span class="special"><</span> <span class="identifier">State</span> <span class="special">,</span> <span class="identifier">Value</span> <span class="special">,</span> <span class="identifier">Deriv</span> <span class="special">,</span> <span class="identifier">Time</span> <span class="special">,</span> <span class="identifier">Algebra</span> <span class="special">,</span> <span class="identifier">Operations</span><span class="special">,</span> <span class="identifier">Resizer</span> <span class="special">></span> <span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth">adams_bashforth</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/observer_collection.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/adams_bashforth.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/adams_bashforth_moulton_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/adams_bashforth_moulton_hpp.html new file mode 100644 index 000000000..ef6a3b3d7 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/adams_bashforth_moulton_hpp.html @@ -0,0 +1,55 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/adams_bashforth_moulton.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"> +<link rel="next" href="../../../../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/adams_bashforth.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/adams_bashforth_moulton.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.adams_bashforth_moulton_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/adams_bashforth_moulton.hpp" target="_top">boost/numeric/odeint/stepper/adams_bashforth_moulton.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="identifier">size_t</span> Steps<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton">adams_bashforth_moulton</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/adams_bashforth.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/adams_bashforth_moulton.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/adams_moulton_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/adams_moulton_hpp.html new file mode 100644 index 000000000..83f7348b8 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/adams_moulton_hpp.html @@ -0,0 +1,55 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/adams_moulton.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"> +<link rel="next" href="../../../../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/adams_bashforth_moulton.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/adams_moulton.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.adams_moulton_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/adams_moulton.hpp" target="_top">boost/numeric/odeint/stepper/adams_moulton.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="identifier">size_t</span> Steps<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton">adams_moulton</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/adams_bashforth_moulton.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/adams_moulton.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/base/algebra_stepper_base_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/base/algebra_stepper_base_hpp.html new file mode 100644 index 000000000..7d8cb2a5e --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/base/algebra_stepper_base_hpp.html @@ -0,0 +1,50 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/base/algebra_stepper_base.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"> +<link rel="next" href="../../../../../../boost/numeric/odeint/algebra_stepper_base.html" title="Class template algebra_stepper_base"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../../boost/numeric/odeint/adams_moulton.html"><img src="../../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../../odeint_reference.html"><img src="../../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../../index.html"><img src="../../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../../boost/numeric/odeint/algebra_stepper_base.html"><img src="../../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.base.algebra_stepper_base_hpp"></a>Header <<a href="../../../../../../../../../../../boost/numeric/odeint/stepper/base/algebra_stepper_base.hpp" target="_top">boost/numeric/odeint/stepper/base/algebra_stepper_base.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Algebra<span class="special">,</span> <span class="keyword">typename</span> Operations<span class="special">></span> <span class="keyword">class</span> <a class="link" href="../../../../../../boost/numeric/odeint/algebra_stepper_base.html" title="Class template algebra_stepper_base">algebra_stepper_base</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../../boost/numeric/odeint/adams_moulton.html"><img src="../../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../../odeint_reference.html"><img src="../../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../../index.html"><img src="../../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../../boost/numeric/odeint/algebra_stepper_base.html"><img src="../../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/base/explicit_error_stepper_base_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/base/explicit_error_stepper_base_hpp.html new file mode 100644 index 000000000..06b63d672 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/base/explicit_error_stepper_base_hpp.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/base/explicit_error_stepper_base.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../../boost/numeric/odeint/algebra_stepper_base.html" title="Class template algebra_stepper_base"> +<link rel="next" href="../../../../../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../../boost/numeric/odeint/algebra_stepper_base.html"><img src="../../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../../odeint_reference.html"><img src="../../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../../index.html"><img src="../../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../../boost/numeric/odeint/explicit_error_idp19750672.html"><img src="../../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.base.explicit_error_stepper_base_hpp"></a>Header <<a href="../../../../../../../../../../../boost/numeric/odeint/stepper/base/explicit_error_stepper_base.hpp" target="_top">boost/numeric/odeint/stepper/base/explicit_error_stepper_base.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> Order<span class="special">,</span> + <span class="keyword">unsigned</span> <span class="keyword">short</span> StepperOrder<span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> ErrorOrder<span class="special">,</span> + <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value<span class="special">,</span> <span class="keyword">typename</span> Deriv<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> + <span class="keyword">typename</span> Algebra<span class="special">,</span> <span class="keyword">typename</span> Operations<span class="special">,</span> <span class="keyword">typename</span> Resizer<span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base">explicit_error_stepper_base</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../../boost/numeric/odeint/algebra_stepper_base.html"><img src="../../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../../odeint_reference.html"><img src="../../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../../index.html"><img src="../../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../../boost/numeric/odeint/explicit_error_idp19750672.html"><img src="../../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base_hpp.html new file mode 100644 index 000000000..b2c20fba1 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base_hpp.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"> +<link rel="next" href="../../../../../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../../boost/numeric/odeint/explicit_error_idp19750672.html"><img src="../../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../../odeint_reference.html"><img src="../../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../../index.html"><img src="../../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../../boost/numeric/odeint/explicit_error_idp19850144.html"><img src="../../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.base.explicit_error_stepper_fsal_base_hpp"></a>Header <<a href="../../../../../../../../../../../boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base.hpp" target="_top">boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> Order<span class="special">,</span> + <span class="keyword">unsigned</span> <span class="keyword">short</span> StepperOrder<span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> ErrorOrder<span class="special">,</span> + <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value<span class="special">,</span> <span class="keyword">typename</span> Deriv<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> + <span class="keyword">typename</span> Algebra<span class="special">,</span> <span class="keyword">typename</span> Operations<span class="special">,</span> <span class="keyword">typename</span> Resizer<span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base">explicit_error_stepper_fsal_base</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../../boost/numeric/odeint/explicit_error_idp19750672.html"><img src="../../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../../odeint_reference.html"><img src="../../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../../index.html"><img src="../../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../../boost/numeric/odeint/explicit_error_idp19850144.html"><img src="../../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/base/explicit_stepper_base_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/base/explicit_stepper_base_hpp.html new file mode 100644 index 000000000..d18c081e0 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/base/explicit_stepper_base_hpp.html @@ -0,0 +1,53 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/base/explicit_stepper_base.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"> +<link rel="next" href="../../../../../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../../boost/numeric/odeint/explicit_error_idp19850144.html"><img src="../../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../../odeint_reference.html"><img src="../../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../../index.html"><img src="../../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../../boost/numeric/odeint/explicit_stepper_base.html"><img src="../../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.base.explicit_stepper_base_hpp"></a>Header <<a href="../../../../../../../../../../../boost/numeric/odeint/stepper/base/explicit_stepper_base.hpp" target="_top">boost/numeric/odeint/stepper/base/explicit_stepper_base.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> Order<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> Value<span class="special">,</span> <span class="keyword">typename</span> Deriv<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> + <span class="keyword">typename</span> Algebra<span class="special">,</span> <span class="keyword">typename</span> Operations<span class="special">,</span> <span class="keyword">typename</span> Resizer<span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base">explicit_stepper_base</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../../boost/numeric/odeint/explicit_error_idp19850144.html"><img src="../../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../../odeint_reference.html"><img src="../../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../../index.html"><img src="../../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../../boost/numeric/odeint/explicit_stepper_base.html"><img src="../../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base_hpp.html new file mode 100644 index 000000000..260ccd374 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base_hpp.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"> +<link rel="next" href="../../../../../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../../boost/numeric/odeint/explicit_stepper_base.html"><img src="../../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../../odeint_reference.html"><img src="../../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../../index.html"><img src="../../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../../boost/numeric/odeint/symplectic_nys_idp20023936.html"><img src="../../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.base.symplectic_rkn_stepper_base_hpp"></a>Header <<a href="../../../../../../../../../../../boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base.hpp" target="_top">boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="identifier">size_t</span> NumOfStages<span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> Order<span class="special">,</span> <span class="keyword">typename</span> Coor<span class="special">,</span> + <span class="keyword">typename</span> Momentum<span class="special">,</span> <span class="keyword">typename</span> Value<span class="special">,</span> <span class="keyword">typename</span> CoorDeriv<span class="special">,</span> + <span class="keyword">typename</span> MomentumDeriv<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> <span class="keyword">typename</span> Algebra<span class="special">,</span> + <span class="keyword">typename</span> Operations<span class="special">,</span> <span class="keyword">typename</span> Resizer<span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base">symplectic_nystroem_stepper_base</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../../boost/numeric/odeint/explicit_stepper_base.html"><img src="../../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../../odeint_reference.html"><img src="../../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../../index.html"><img src="../../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../../boost/numeric/odeint/symplectic_nys_idp20023936.html"><img src="../../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out_hpp.html new file mode 100644 index 000000000..d8b0bc6b5 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out_hpp.html @@ -0,0 +1,55 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/bulirsch_stoer_dense_out.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"> +<link rel="next" href="../../../../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/bulirsch_stoer.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/bulirsch_stoer_dense_out.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.bulirsch_stoer_dense_out_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/bulirsch_stoer_dense_out.hpp" target="_top">boost/numeric/odeint/stepper/bulirsch_stoer_dense_out.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out">bulirsch_stoer_dense_out</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/bulirsch_stoer.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/bulirsch_stoer_dense_out.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/bulirsch_stoer_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/bulirsch_stoer_hpp.html new file mode 100644 index 000000000..921477465 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/bulirsch_stoer_hpp.html @@ -0,0 +1,55 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/bulirsch_stoer.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"> +<link rel="next" href="../../../../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/symplectic_nys_idp20023936.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/bulirsch_stoer.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.bulirsch_stoer_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/bulirsch_stoer.hpp" target="_top">boost/numeric/odeint/stepper/bulirsch_stoer.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer">bulirsch_stoer</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/symplectic_nys_idp20023936.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/bulirsch_stoer.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html new file mode 100644 index 000000000..4630a8e49 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html @@ -0,0 +1,62 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"> +<link rel="next" href="../../../../../boost/numeric/odeint/default_error_checker.html" title="Class template default_error_checker"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/bulirsch_stoer_dense_out.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/default_error_checker.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.controlled_runge_kutta_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/controlled_runge_kutta.hpp" target="_top">boost/numeric/odeint/stepper/controlled_runge_kutta.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Value<span class="special">,</span> <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/default_error_checker.html" title="Class template default_error_checker">default_error_checker</a><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ErrorStepper<span class="special">,</span> + <span class="keyword">typename</span> ErrorChecker <span class="special">=</span> <a class="link" href="../../../../../boost/numeric/odeint/default_error_checker.html" title="Class template default_error_checker">default_error_checker</a><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">ErrorStepper</span><span class="special">::</span><span class="identifier">value_type</span> <span class="special">,</span><span class="keyword">typename</span> <span class="identifier">ErrorStepper</span><span class="special">::</span><span class="identifier">algebra_type</span> <span class="special">,</span><span class="keyword">typename</span> <span class="identifier">ErrorStepper</span><span class="special">::</span><span class="identifier">operations_type</span> <span class="special">></span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="keyword">typename</span> <span class="identifier">ErrorStepper</span><span class="special">::</span><span class="identifier">resizer_type</span><span class="special">,</span> + <span class="keyword">typename</span> ErrorStepperCategory <span class="special">=</span> <span class="keyword">typename</span> <span class="identifier">ErrorStepper</span><span class="special">::</span><span class="identifier">stepper_category</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/controlled_runge_kutta.html" title="Class template controlled_runge_kutta">controlled_runge_kutta</a><span class="special">;</span> + + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ErrorStepper<span class="special">,</span> <span class="keyword">typename</span> ErrorChecker<span class="special">,</span> <span class="keyword">typename</span> Resizer<span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>">controlled_runge_kutta</a><span class="special"><</span><span class="identifier">ErrorStepper</span><span class="special">,</span> <span class="identifier">ErrorChecker</span><span class="special">,</span> <span class="identifier">Resizer</span><span class="special">,</span> <span class="identifier">explicit_error_stepper_tag</span><span class="special">></span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ErrorStepper<span class="special">,</span> <span class="keyword">typename</span> ErrorChecker<span class="special">,</span> <span class="keyword">typename</span> Resizer<span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>">controlled_runge_kutta</a><span class="special"><</span><span class="identifier">ErrorStepper</span><span class="special">,</span> <span class="identifier">ErrorChecker</span><span class="special">,</span> <span class="identifier">Resizer</span><span class="special">,</span> <span class="identifier">explicit_error_stepper_fsal_tag</span><span class="special">></span><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/bulirsch_stoer_dense_out.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/default_error_checker.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/controlled_step_result_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/controlled_step_result_hpp.html new file mode 100644 index 000000000..2068aba91 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/controlled_step_result_hpp.html @@ -0,0 +1,52 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/controlled_step_result.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"> +<link rel="next" href="dense_output_runge_kutta_hpp.html" title="Header <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/controlled_run_idp20285920.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dense_output_runge_kutta_hpp.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.controlled_step_result_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/controlled_step_result.hpp" target="_top">boost/numeric/odeint/stepper/controlled_step_result.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + + <span class="comment">// Enum representing the return values of the controlled steppers. </span> + <span class="keyword">enum</span> <a name="boost.numeric.odeint.controlled_step_result"></a>controlled_step_result <span class="special">{</span> success, fail <span class="special">}</span><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/controlled_run_idp20285920.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dense_output_runge_kutta_hpp.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html new file mode 100644 index 000000000..7dd114d12 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html @@ -0,0 +1,57 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="controlled_step_result_hpp.html" title="Header <boost/numeric/odeint/stepper/controlled_step_result.hpp>"> +<link rel="next" href="../../../../../boost/numeric/odeint/dense_output_runge_kutta.html" title="Class template dense_output_runge_kutta"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="controlled_step_result_hpp.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/dense_output_runge_kutta.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.dense_output_runge_kutta_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp" target="_top">boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">,</span> + <span class="keyword">typename</span> StepperCategory <span class="special">=</span> <span class="keyword">typename</span> <span class="identifier">Stepper</span><span class="special">::</span><span class="identifier">stepper_category</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/dense_output_runge_kutta.html" title="Class template dense_output_runge_kutta">dense_output_runge_kutta</a><span class="special">;</span> + + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>">dense_output_runge_kutta</a><span class="special"><</span><span class="identifier">Stepper</span><span class="special">,</span> <span class="identifier">stepper_tag</span><span class="special">></span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>">dense_output_runge_kutta</a><span class="special"><</span><span class="identifier">Stepper</span><span class="special">,</span> <span class="identifier">explicit_controlled_stepper_fsal_tag</span><span class="special">></span><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="controlled_step_result_hpp.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/dense_output_runge_kutta.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/euler_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/euler_hpp.html new file mode 100644 index 000000000..92f9aee4d --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/euler_hpp.html @@ -0,0 +1,55 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/euler.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"> +<link rel="next" href="../../../../../boost/numeric/odeint/euler.html" title="Class template euler"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/dense_output_r_idp20378576.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/euler.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.euler_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/euler.hpp" target="_top">boost/numeric/odeint/stepper/euler.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/euler.html" title="Class template euler">euler</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/dense_output_r_idp20378576.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/euler.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/explicit_error_generic_rk_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/explicit_error_generic_rk_hpp.html new file mode 100644 index 000000000..c31bf71fe --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/explicit_error_generic_rk_hpp.html @@ -0,0 +1,56 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/explicit_error_generic_rk.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/euler.html" title="Class template euler"> +<link rel="next" href="../../../../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/euler.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/explicit_error_generic_rk.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.explicit_error_generic_rk_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/explicit_error_generic_rk.hpp" target="_top">boost/numeric/odeint/stepper/explicit_error_generic_rk.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="identifier">size_t</span> StageCount<span class="special">,</span> <span class="identifier">size_t</span> Order<span class="special">,</span> <span class="identifier">size_t</span> StepperOrder<span class="special">,</span> + <span class="identifier">size_t</span> ErrorOrder<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk">explicit_error_generic_rk</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/euler.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/explicit_error_generic_rk.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/explicit_generic_rk_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/explicit_generic_rk_hpp.html new file mode 100644 index 000000000..edaa4b0dd --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/explicit_generic_rk_hpp.html @@ -0,0 +1,53 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/explicit_generic_rk.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"> +<link rel="next" href="../../../../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/explicit_error_generic_rk.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/explicit_generic_rk.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.explicit_generic_rk_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/explicit_generic_rk.hpp" target="_top">boost/numeric/odeint/stepper/explicit_generic_rk.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="identifier">size_t</span> StageCount<span class="special">,</span> <span class="identifier">size_t</span> Order<span class="special">,</span> <span class="keyword">typename</span> State<span class="special">,</span> + <span class="keyword">typename</span> Value<span class="special">,</span> <span class="keyword">typename</span> Deriv<span class="special">,</span> <span class="keyword">typename</span> Time<span class="special">,</span> + <span class="keyword">typename</span> Algebra<span class="special">,</span> <span class="keyword">typename</span> Operations<span class="special">,</span> <span class="keyword">typename</span> Resizer<span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk">explicit_generic_rk</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/explicit_error_generic_rk.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/explicit_generic_rk.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/implicit_euler_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/implicit_euler_hpp.html new file mode 100644 index 000000000..9517298a1 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/implicit_euler_hpp.html @@ -0,0 +1,51 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/implicit_euler.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"> +<link rel="next" href="../../../../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/explicit_generic_rk.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/implicit_euler.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.implicit_euler_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/implicit_euler.hpp" target="_top">boost/numeric/odeint/stepper/implicit_euler.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ValueType<span class="special">,</span> <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler">implicit_euler</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/explicit_generic_rk.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/implicit_euler.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html new file mode 100644 index 000000000..ae12cc43f --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html @@ -0,0 +1,61 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/modified_midpoint.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"> +<link rel="next" href="../../../../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/implicit_euler.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/modified_midpoint.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.modified_midpoint_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/modified_midpoint.hpp" target="_top">boost/numeric/odeint/stepper/modified_midpoint.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint">modified_midpoint</a><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out">modified_midpoint_dense_out</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/implicit_euler.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/modified_midpoint.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/rosenbrock4_controller_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/rosenbrock4_controller_hpp.html new file mode 100644 index 000000000..66bf31fae --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/rosenbrock4_controller_hpp.html @@ -0,0 +1,50 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/rosenbrock4_controller.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"> +<link rel="next" href="../../../../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/rosenbrock4.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/rosenbrock4_controller.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.rosenbrock4_controller_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/rosenbrock4_controller.hpp" target="_top">boost/numeric/odeint/stepper/rosenbrock4_controller.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Stepper<span class="special">></span> <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller">rosenbrock4_controller</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/rosenbrock4.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/rosenbrock4_controller.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/rosenbrock4_dense_output_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/rosenbrock4_dense_output_hpp.html new file mode 100644 index 000000000..59fc7139e --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/rosenbrock4_dense_output_hpp.html @@ -0,0 +1,50 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/rosenbrock4_dense_output.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"> +<link rel="next" href="../../../../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/rosenbrock4_controller.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/rosenbrock4_dense_output.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.rosenbrock4_dense_output_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/rosenbrock4_dense_output.hpp" target="_top">boost/numeric/odeint/stepper/rosenbrock4_dense_output.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ControlledStepper<span class="special">></span> <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output">rosenbrock4_dense_output</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/rosenbrock4_controller.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/rosenbrock4_dense_output.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html new file mode 100644 index 000000000..449193ef7 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html @@ -0,0 +1,55 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/rosenbrock4.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"> +<link rel="next" href="../../../../../boost/numeric/odeint/default_rosenb_idp20694128.html" title="Struct template default_rosenbrock_coefficients"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/modified_midpo_idp20675728.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/default_rosenb_idp20694128.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.rosenbrock4_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/rosenbrock4.hpp" target="_top">boost/numeric/odeint/stepper/rosenbrock4.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Value<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/default_rosenb_idp20694128.html" title="Struct template default_rosenbrock_coefficients">default_rosenbrock_coefficients</a><span class="special">;</span> + + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Value<span class="special">,</span> + <span class="keyword">typename</span> Coefficients <span class="special">=</span> <span class="identifier">default_rosenbrock_coefficients</span><span class="special"><</span> <span class="identifier">Value</span> <span class="special">></span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4">rosenbrock4</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/modified_midpo_idp20675728.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/default_rosenb_idp20694128.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta4_classic_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta4_classic_hpp.html new file mode 100644 index 000000000..b77278d15 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta4_classic_hpp.html @@ -0,0 +1,55 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/runge_kutta4_classic.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"> +<link rel="next" href="../../../../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/runge_kutta4.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/runge_kutta4_classic.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.runge_kutta4_classic_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/runge_kutta4_classic.hpp" target="_top">boost/numeric/odeint/stepper/runge_kutta4_classic.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic">runge_kutta4_classic</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/runge_kutta4.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/runge_kutta4_classic.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta4_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta4_hpp.html new file mode 100644 index 000000000..0ab176ab2 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta4_hpp.html @@ -0,0 +1,55 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/runge_kutta4.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"> +<link rel="next" href="../../../../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/rosenbrock4_dense_output.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/runge_kutta4.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.runge_kutta4_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/runge_kutta4.hpp" target="_top">boost/numeric/odeint/stepper/runge_kutta4.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4">runge_kutta4</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/rosenbrock4_dense_output.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/runge_kutta4.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic_hpp.html new file mode 100644 index 000000000..d4659ee37 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic_hpp.html @@ -0,0 +1,55 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"> +<link rel="next" href="../../../../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/runge_kutta_cash_karp54.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.runge_kutta_cash_karp54_classic_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic.hpp" target="_top">boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic">runge_kutta_cash_karp54_classic</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/runge_kutta_cash_karp54.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_hpp.html new file mode 100644 index 000000000..6c80014b1 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_hpp.html @@ -0,0 +1,55 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/runge_kutta_cash_karp54.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"> +<link rel="next" href="../../../../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/runge_kutta4_classic.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/runge_kutta_cash_karp54.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.runge_kutta_cash_karp54_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/runge_kutta_cash_karp54.hpp" target="_top">boost/numeric/odeint/stepper/runge_kutta_cash_karp54.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54">runge_kutta_cash_karp54</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/runge_kutta4_classic.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/runge_kutta_cash_karp54.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta_dopri5_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta_dopri5_hpp.html new file mode 100644 index 000000000..e778f591d --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta_dopri5_hpp.html @@ -0,0 +1,55 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/runge_kutta_dopri5.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"> +<link rel="next" href="../../../../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/runge_kutta_dopri5.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.runge_kutta_dopri5_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/runge_kutta_dopri5.hpp" target="_top">boost/numeric/odeint/stepper/runge_kutta_dopri5.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5">runge_kutta_dopri5</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/runge_kutta_dopri5.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta_fehlberg78_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta_fehlberg78_hpp.html new file mode 100644 index 000000000..e23997b1b --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/runge_kutta_fehlberg78_hpp.html @@ -0,0 +1,55 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/runge_kutta_fehlberg78.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"> +<link rel="next" href="../../../../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/runge_kutta_dopri5.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/runge_kutta_fehlberg78.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.runge_kutta_fehlberg78_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/runge_kutta_fehlberg78.hpp" target="_top">boost/numeric/odeint/stepper/runge_kutta_fehlberg78.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> State<span class="special">,</span> <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> + <span class="keyword">typename</span> Deriv <span class="special">=</span> <span class="identifier">State</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78">runge_kutta_fehlberg78</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/runge_kutta_dopri5.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/runge_kutta_fehlberg78.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/stepper_categories_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/stepper_categories_hpp.html new file mode 100644 index 000000000..a8dcfb727 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/stepper_categories_hpp.html @@ -0,0 +1,67 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/stepper_categories.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"> +<link rel="next" href="../../../../../boost/numeric/odeint/stepper_tag.html" title="Struct stepper_tag"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/runge_kutta_fehlberg78.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/stepper_tag.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.stepper_categories_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/stepper_categories.hpp" target="_top">boost/numeric/odeint/stepper/stepper_categories.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/stepper_tag.html" title="Struct stepper_tag">stepper_tag</a><span class="special">;</span> + <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/error_stepper_tag.html" title="Struct error_stepper_tag">error_stepper_tag</a><span class="special">;</span> + <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/explicit_error_stepper_tag.html" title="Struct explicit_error_stepper_tag">explicit_error_stepper_tag</a><span class="special">;</span> + <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/explicit_error_idp21293008.html" title="Struct explicit_error_stepper_fsal_tag">explicit_error_stepper_fsal_tag</a><span class="special">;</span> + <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/controlled_stepper_tag.html" title="Struct controlled_stepper_tag">controlled_stepper_tag</a><span class="special">;</span> + <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/explicit_contr_idp21293728.html" title="Struct explicit_controlled_stepper_tag">explicit_controlled_stepper_tag</a><span class="special">;</span> + <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/explicit_contr_idp21294240.html" title="Struct explicit_controlled_stepper_fsal_tag">explicit_controlled_stepper_fsal_tag</a><span class="special">;</span> + <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/dense_output_stepper_tag.html" title="Struct dense_output_stepper_tag">dense_output_stepper_tag</a><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> tag<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/base_tag.html" title="Struct template base_tag">base_tag</a><span class="special">;</span> + + <span class="keyword">template</span><span class="special"><</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/base_tag_stepp_idp21295584.html" title="Struct base_tag<stepper_tag>">base_tag</a><span class="special"><</span><span class="identifier">stepper_tag</span><span class="special">></span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/base_tag_error_idp21296464.html" title="Struct base_tag<error_stepper_tag>">base_tag</a><span class="special"><</span><span class="identifier">error_stepper_tag</span><span class="special">></span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/base_tag_expli_idp21297360.html" title="Struct base_tag<explicit_error_stepper_tag>">base_tag</a><span class="special"><</span><span class="identifier">explicit_error_stepper_tag</span><span class="special">></span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/base_tag_expli_idp21298256.html" title="Struct base_tag<explicit_error_stepper_fsal_tag>">base_tag</a><span class="special"><</span><span class="identifier">explicit_error_stepper_fsal_tag</span><span class="special">></span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/base_tag_contr_idp21299152.html" title="Struct base_tag<controlled_stepper_tag>">base_tag</a><span class="special"><</span><span class="identifier">controlled_stepper_tag</span><span class="special">></span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/base_tag_expli_idp21300064.html" title="Struct base_tag<explicit_controlled_stepper_tag>">base_tag</a><span class="special"><</span><span class="identifier">explicit_controlled_stepper_tag</span><span class="special">></span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/base_tag_expli_idp21300976.html" title="Struct base_tag<explicit_controlled_stepper_fsal_tag>">base_tag</a><span class="special"><</span><span class="identifier">explicit_controlled_stepper_fsal_tag</span><span class="special">></span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../../../../../boost/numeric/odeint/base_tag_dense_idp21301904.html" title="Struct base_tag<dense_output_stepper_tag>">base_tag</a><span class="special"><</span><span class="identifier">dense_output_stepper_tag</span><span class="special">></span><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/runge_kutta_fehlberg78.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/stepper_tag.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/symplectic_euler_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/symplectic_euler_hpp.html new file mode 100644 index 000000000..634b4007f --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/symplectic_euler_hpp.html @@ -0,0 +1,56 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/symplectic_euler.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/base_tag_dense_idp21301904.html" title="Struct base_tag<dense_output_stepper_tag>"> +<link rel="next" href="../../../../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/base_tag_dense_idp21301904.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/symplectic_euler.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.symplectic_euler_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/symplectic_euler.hpp" target="_top">boost/numeric/odeint/stepper/symplectic_euler.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Coor<span class="special">,</span> <span class="keyword">typename</span> Momentum <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> + <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">typename</span> CoorDeriv <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> + <span class="keyword">typename</span> MomentumDeriv <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler">symplectic_euler</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/base_tag_dense_idp21301904.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/symplectic_euler.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan_hpp.html new file mode 100644 index 000000000..fca025fbc --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan_hpp.html @@ -0,0 +1,56 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"> +<link rel="next" href="../../../../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/symplectic_euler.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/symplectic_rkn_idp21344416.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.symplectic_rkn_sb3a_m4_mclachlan_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan.hpp" target="_top">boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Coor<span class="special">,</span> <span class="keyword">typename</span> Momentum <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> + <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">typename</span> CoorDeriv <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> + <span class="keyword">typename</span> MomentumDeriv <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan">symplectic_rkn_sb3a_m4_mclachlan</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/symplectic_euler.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/symplectic_rkn_idp21344416.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan_hpp.html b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan_hpp.html new file mode 100644 index 000000000..ef10e7df8 --- /dev/null +++ b/libs/numeric/odeint/doc/html/header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan_hpp.html @@ -0,0 +1,56 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Header <boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan.hpp></title> +<link rel="stylesheet" href="../../../../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../../../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../../../../../odeint_reference.html" title="odeint Reference"> +<link rel="prev" href="../../../../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"> +<link rel="next" href="../../../../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/symplectic_rkn_idp21344416.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/symplectic_rkn_idp21385536.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="header.boost.numeric.odeint.stepper.symplectic_rkn_sb3a_mclachlan_hpp"></a>Header <<a href="../../../../../../../../../../boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan.hpp" target="_top">boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan.hpp</a>></h3></div></div></div> +<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span> + <span class="keyword">namespace</span> <span class="identifier">odeint</span> <span class="special">{</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Coor<span class="special">,</span> <span class="keyword">typename</span> Momentum <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> + <span class="keyword">typename</span> Value <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">typename</span> CoorDeriv <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> + <span class="keyword">typename</span> MomentumDeriv <span class="special">=</span> <span class="identifier">Coor</span><span class="special">,</span> <span class="keyword">typename</span> Time <span class="special">=</span> <span class="identifier">Value</span><span class="special">,</span> + <span class="keyword">typename</span> Algebra <span class="special">=</span> <span class="identifier">range_algebra</span><span class="special">,</span> + <span class="keyword">typename</span> Operations <span class="special">=</span> <span class="identifier">default_operations</span><span class="special">,</span> + <span class="keyword">typename</span> Resizer <span class="special">=</span> <span class="identifier">initially_resizer</span><span class="special">></span> + <span class="keyword">class</span> <a class="link" href="../../../../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan">symplectic_rkn_sb3a_mclachlan</a><span class="special">;</span> + <span class="special">}</span> + <span class="special">}</span> +<span class="special">}</span></pre> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../../../../boost/numeric/odeint/symplectic_rkn_idp21344416.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../../../odeint_reference.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../../../boost/numeric/odeint/symplectic_rkn_idp21385536.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/index.html b/libs/numeric/odeint/doc/html/index.html new file mode 100644 index 000000000..00d07b9b0 --- /dev/null +++ b/libs/numeric/odeint/doc/html/index.html @@ -0,0 +1,173 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Chapter 1. Boost.Numeric.Odeint</title> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="next" href="boost_numeric_odeint/getting_started.html" title="Getting started"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="logo.jpg"></td> +<td align="center"><a href="../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"><a accesskey="n" href="boost_numeric_odeint/getting_started.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a></div> +<div class="chapter"> +<div class="titlepage"><div> +<div><h2 class="title"> +<a name="odeint"></a>Chapter 1. Boost.Numeric.Odeint</h2></div> +<div><div class="author"><h3 class="author"> +<span class="firstname">Karsten</span> <span class="surname">Ahnert</span> +</h3></div></div> +<div><div class="author"><h3 class="author"> +<span class="firstname">Mario</span> <span class="surname">Mulansky</span> +</h3></div></div> +<div><p class="copyright">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky</p></div> +<div><div class="legalnotice"> +<a name="odeint.legal"></a><p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></div> +</div></div> +<div class="toc"> +<p><b>Table of Contents</b></p> +<dl class="toc"> +<dt><span class="section"><a href="boost_numeric_odeint/getting_started.html">Getting started</a></span></dt> +<dd><dl> +<dt><span class="section"><a href="boost_numeric_odeint/getting_started/overview.html">Overview</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/getting_started/usage__compilation__headers.html">Usage, + Compilation, Headers</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/getting_started/short_example.html">Short + Example</a></span></dt> +</dl></dd> +<dt><span class="section"><a href="boost_numeric_odeint/tutorial.html">Tutorial</a></span></dt> +<dd><dl> +<dt><span class="section"><a href="boost_numeric_odeint/tutorial/harmonic_oscillator.html">Harmonic + oscillator</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/tutorial/solar_system.html">Solar system</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html">Chaotic + systems and Lyapunov exponents</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/tutorial/stiff_systems.html">Stiff systems</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/tutorial/complex_state_types.html">Complex + state types</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/tutorial/lattice_systems.html">Lattice + systems</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/tutorial/ensembles_of_oscillators.html">Ensembles + of oscillators</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/tutorial/using_boost__units.html">Using + boost::units</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/tutorial/using_matrices_as_state_types.html">Using + matrices as state types</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/tutorial/using_arbitrary_precision_floating_point_types.html">Using + arbitrary precision floating point types</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/tutorial/self_expanding_lattices.html">Self + expanding lattices</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html">Using + CUDA (or OpenMP, TBB, ...) via Thrust</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/tutorial/using_opencl_via_vexcl.html">Using + OpenCL via VexCL</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/tutorial/all_examples.html">All examples</a></span></dt> +</dl></dd> +<dt><span class="section"><a href="boost_numeric_odeint/odeint_in_detail.html">odeint in detail</a></span></dt> +<dd><dl> +<dt><span class="section"><a href="boost_numeric_odeint/odeint_in_detail/steppers.html">Steppers</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/odeint_in_detail/generation_functions.html">Generation + functions</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/odeint_in_detail/integrate_functions.html">Integrate + functions</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html">State + types, algebras and operations</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/odeint_in_detail/using_boost__ref.html">Using + boost::ref</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/odeint_in_detail/using_boost__range.html">Using + boost::range</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/odeint_in_detail/binding_member_functions.html">Binding + member functions</a></span></dt> +</dl></dd> +<dt><span class="section"><a href="boost_numeric_odeint/concepts.html">Concepts</a></span></dt> +<dd><dl> +<dt><span class="section"><a href="boost_numeric_odeint/concepts/system.html">System</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/concepts/symplectic_system.html">Symplectic + System</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/concepts/simple_symplectic_system.html">Simple + Symplectic System</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/concepts/implicit_system.html">Implicit + System</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/concepts/stepper.html">Stepper</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/concepts/error_stepper.html">Error Stepper</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/concepts/controlled_stepper.html">Controlled + Stepper</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/concepts/dense_output_stepper.html">Dense + Output Stepper</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/concepts/state_algebra_operations.html">State + Algebra Operations</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/concepts/state_wrapper.html">State Wrapper</a></span></dt> +</dl></dd> +<dt><span class="section"><a href="boost_numeric_odeint/literature.html">Literature</a></span></dt> +<dt><span class="section"><a href="boost_numeric_odeint/acknowledgments.html">Acknowledgments</a></span></dt> +<dt><span class="section"><a href="odeint_reference.html">odeint Reference</a></span></dt> +<dd><dl> +<dt><span class="section"><a href="header/boost/numeric/odeint/integrate/integrate_hpp.html">Header <boost/numeric/odeint/integrate/integrate.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html">Header <boost/numeric/odeint/integrate/integrate_adaptive.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/integrate/integrate_const_hpp.html">Header <boost/numeric/odeint/integrate/integrate_const.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html">Header <boost/numeric/odeint/integrate/integrate_n_steps.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/integrate/integrate_times_hpp.html">Header <boost/numeric/odeint/integrate/integrate_times.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/integrate/null_observer_hpp.html">Header <boost/numeric/odeint/integrate/null_observer.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/integrate/observer_collection_hpp.html">Header <boost/numeric/odeint/integrate/observer_collection.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/adams_bashforth_hpp.html">Header <boost/numeric/odeint/stepper/adams_bashforth.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/adams_bashforth_moulton_hpp.html">Header <boost/numeric/odeint/stepper/adams_bashforth_moulton.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/adams_moulton_hpp.html">Header <boost/numeric/odeint/stepper/adams_moulton.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/base/algebra_stepper_base_hpp.html">Header <boost/numeric/odeint/stepper/base/algebra_stepper_base.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/base/explicit_error_stepper_base_hpp.html">Header <boost/numeric/odeint/stepper/base/explicit_error_stepper_base.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base_hpp.html">Header <boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/base/explicit_stepper_base_hpp.html">Header <boost/numeric/odeint/stepper/base/explicit_stepper_base.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base_hpp.html">Header <boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/bulirsch_stoer_hpp.html">Header <boost/numeric/odeint/stepper/bulirsch_stoer.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out_hpp.html">Header <boost/numeric/odeint/stepper/bulirsch_stoer_dense_out.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html">Header <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/controlled_step_result_hpp.html">Header <boost/numeric/odeint/stepper/controlled_step_result.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html">Header <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/euler_hpp.html">Header <boost/numeric/odeint/stepper/euler.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/explicit_error_generic_rk_hpp.html">Header <boost/numeric/odeint/stepper/explicit_error_generic_rk.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/explicit_generic_rk_hpp.html">Header <boost/numeric/odeint/stepper/explicit_generic_rk.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/implicit_euler_hpp.html">Header <boost/numeric/odeint/stepper/implicit_euler.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html">Header <boost/numeric/odeint/stepper/modified_midpoint.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html">Header <boost/numeric/odeint/stepper/rosenbrock4.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/rosenbrock4_controller_hpp.html">Header <boost/numeric/odeint/stepper/rosenbrock4_controller.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/rosenbrock4_dense_output_hpp.html">Header <boost/numeric/odeint/stepper/rosenbrock4_dense_output.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/runge_kutta4_hpp.html">Header <boost/numeric/odeint/stepper/runge_kutta4.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/runge_kutta4_classic_hpp.html">Header <boost/numeric/odeint/stepper/runge_kutta4_classic.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_hpp.html">Header <boost/numeric/odeint/stepper/runge_kutta_cash_karp54.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic_hpp.html">Header <boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/runge_kutta_dopri5_hpp.html">Header <boost/numeric/odeint/stepper/runge_kutta_dopri5.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/runge_kutta_fehlberg78_hpp.html">Header <boost/numeric/odeint/stepper/runge_kutta_fehlberg78.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/stepper_categories_hpp.html">Header <boost/numeric/odeint/stepper/stepper_categories.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/symplectic_euler_hpp.html">Header <boost/numeric/odeint/stepper/symplectic_euler.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan_hpp.html">Header <boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan_hpp.html">Header <boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan.hpp></a></span></dt> +</dl></dd> +<dt><span class="section"><a href="odeint/indexes.html">Indexes</a></span></dt> +<dd><dl> +<dt><span class="section"><a href="odeint/indexes/s01.html">Class Index</a></span></dt> +<dt><span class="section"><a href="odeint/indexes/s02.html">Function Index</a></span></dt> +<dt><span class="section"><a href="odeint/indexes/s03.html">Index</a></span></dt> +</dl></dd> +</dl> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"><p><small>Last revised: June 25, 2013 at 22:03:53 GMT</small></p></td> +<td align="right"><div class="copyright-footer"></div></td> +</tr></table> +<hr> +<div class="spirit-nav"><a accesskey="n" href="boost_numeric_odeint/getting_started.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a></div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/logo.jpg b/libs/numeric/odeint/doc/html/logo.jpg Binary files differnew file mode 100644 index 000000000..a658bbea9 --- /dev/null +++ b/libs/numeric/odeint/doc/html/logo.jpg diff --git a/libs/numeric/odeint/doc/html/odeint/indexes.html b/libs/numeric/odeint/doc/html/odeint/indexes.html new file mode 100644 index 000000000..d550bb147 --- /dev/null +++ b/libs/numeric/odeint/doc/html/odeint/indexes.html @@ -0,0 +1,49 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Indexes</title> +<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="prev" href="../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"> +<link rel="next" href="indexes/s01.html" title="Class Index"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../logo.jpg"></td> +<td align="center"><a href="../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../boost/numeric/odeint/symplectic_rkn_idp21385536.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="indexes/s01.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h2 class="title" style="clear: both"> +<a name="odeint.indexes"></a><a class="link" href="indexes.html" title="Indexes">Indexes</a> +</h2></div></div></div> +<div class="toc"><dl class="toc"> +<dt><span class="section"><a href="indexes/s01.html">Class Index</a></span></dt> +<dt><span class="section"><a href="indexes/s02.html">Function Index</a></span></dt> +<dt><span class="section"><a href="indexes/s03.html">Index</a></span></dt> +</dl></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../boost/numeric/odeint/symplectic_rkn_idp21385536.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="indexes/s01.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/odeint/indexes/s01.html b/libs/numeric/odeint/doc/html/odeint/indexes/s01.html new file mode 100644 index 000000000..8039c830b --- /dev/null +++ b/libs/numeric/odeint/doc/html/odeint/indexes/s01.html @@ -0,0 +1,424 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class Index</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../indexes.html" title="Indexes"> +<link rel="prev" href="../indexes.html" title="Indexes"> +<link rel="next" href="s02.html" title="Function Index"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../indexes.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="s02.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="idp38152080"></a>Class Index</h3></div></div></div> +<p><a class="link" href="s01.html#idx_id_0">A</a> <a class="link" href="s01.html#idx_id_1">B</a> <a class="link" href="s01.html#idx_id_2">C</a> <a class="link" href="s01.html#idx_id_3">D</a> <a class="link" href="s01.html#idx_id_4">E</a> <a class="link" href="s01.html#idx_id_6">G</a> <a class="link" href="s01.html#idx_id_8">I</a> <a class="link" href="s01.html#idx_id_10">M</a> <a class="link" href="s01.html#idx_id_11">N</a> <a class="link" href="s01.html#idx_id_12">O</a> <a class="link" href="s01.html#idx_id_14">R</a> <a class="link" href="s01.html#idx_id_15">S</a> <a class="link" href="s01.html#idx_id_18">V</a></p> +<div class="variablelist"><dl class="variablelist"> +<dt> +<a name="idx_id_0"></a><span class="term">A</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">adams_bashforth</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">adams_bashforth_moulton</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">adams_moulton</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">algebra_stepper_base</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/algebra_stepper_base.html" title="Class template algebra_stepper_base"><span class="index-entry-level-1">Class template algebra_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_1"></a><span class="term">B</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">base_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_contr_idp21299152.html" title="Struct base_tag<controlled_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<controlled_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_dense_idp21301904.html" title="Struct base_tag<dense_output_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<dense_output_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_error_idp21296464.html" title="Struct base_tag<error_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21300976.html" title="Struct base_tag<explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21300064.html" title="Struct base_tag<explicit_controlled_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_controlled_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21298256.html" title="Struct base_tag<explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21297360.html" title="Struct base_tag<explicit_error_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_stepp_idp21295584.html" title="Struct base_tag<stepper_tag>"><span class="index-entry-level-1">Struct base_tag<stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag.html" title="Struct template base_tag"><span class="index-entry-level-1">Struct template base_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">bulirsch_stoer</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">bulirsch_stoer_dense_out</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_2"></a><span class="term">C</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">controlled_runge_kutta</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_runge_kutta.html" title="Class template controlled_runge_kutta"><span class="index-entry-level-1">Class template controlled_runge_kutta</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">controlled_stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_contr_idp21299152.html" title="Struct base_tag<controlled_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<controlled_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_stepper_tag.html" title="Struct controlled_stepper_tag"><span class="index-entry-level-1">Struct controlled_stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_contr_idp21294240.html" title="Struct explicit_controlled_stepper_fsal_tag"><span class="index-entry-level-1">Struct explicit_controlled_stepper_fsal_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_contr_idp21293728.html" title="Struct explicit_controlled_stepper_tag"><span class="index-entry-level-1">Struct explicit_controlled_stepper_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">controller_factory</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/generation_functions.html" title="Generation functions"><span class="index-entry-level-1">Generation functions</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_3"></a><span class="term">D</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">default_error_checker</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_error_checker.html" title="Class template default_error_checker"><span class="index-entry-level-1">Class template default_error_checker</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">default_operations</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">default_rosenbrock_coefficients</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_rosenb_idp20694128.html" title="Struct template default_rosenbrock_coefficients"><span class="index-entry-level-1">Struct template default_rosenbrock_coefficients</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">dense_output_runge_kutta</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_runge_kutta.html" title="Class template dense_output_runge_kutta"><span class="index-entry-level-1">Class template dense_output_runge_kutta</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">dense_output_stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_dense_idp21301904.html" title="Struct base_tag<dense_output_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<dense_output_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_stepper_tag.html" title="Struct dense_output_stepper_tag"><span class="index-entry-level-1">Struct dense_output_stepper_tag</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_4"></a><span class="term">E</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">error_stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_error_idp21296464.html" title="Struct base_tag<error_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/error_stepper_tag.html" title="Struct error_stepper_tag"><span class="index-entry-level-1">Struct error_stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp21293008.html" title="Struct explicit_error_stepper_fsal_tag"><span class="index-entry-level-1">Struct explicit_error_stepper_fsal_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_stepper_tag.html" title="Struct explicit_error_stepper_tag"><span class="index-entry-level-1">Struct explicit_error_stepper_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">euler</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_controlled_stepper_fsal_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21300976.html" title="Struct base_tag<explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_contr_idp21294240.html" title="Struct explicit_controlled_stepper_fsal_tag"><span class="index-entry-level-1">Struct explicit_controlled_stepper_fsal_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_controlled_stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21300064.html" title="Struct base_tag<explicit_controlled_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_controlled_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_contr_idp21293728.html" title="Struct explicit_controlled_stepper_tag"><span class="index-entry-level-1">Struct explicit_controlled_stepper_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_error_generic_rk</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_error_stepper_base</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_error_stepper_fsal_base</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_error_stepper_fsal_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21298256.html" title="Struct base_tag<explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp21293008.html" title="Struct explicit_error_stepper_fsal_tag"><span class="index-entry-level-1">Struct explicit_error_stepper_fsal_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_error_stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21297360.html" title="Struct base_tag<explicit_error_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_stepper_tag.html" title="Struct explicit_error_stepper_tag"><span class="index-entry-level-1">Struct explicit_error_stepper_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_generic_rk</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_stepper_base</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_6"></a><span class="term">G</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">get_controller</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/generation_functions.html" title="Generation functions"><span class="index-entry-level-1">Generation functions</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">gsl_vector_iterator</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_8"></a><span class="term">I</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">implicit_euler</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">initially_resizer</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">is_resizeable</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.boost_ublas" title="Boost.Ublas"><span class="index-entry-level-1">Boost.Ublas</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">std::list</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.using_the_container_interface" title="Using the container interface"><span class="index-entry-level-1">Using the container interface</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_10"></a><span class="term">M</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">modified_midpoint</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">modified_midpoint_dense_out</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_11"></a><span class="term">N</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">null_observer</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/null_observer.html" title="Struct null_observer"><span class="index-entry-level-1">Struct null_observer</span></a></p></li></ul></div> +</li></ul></div></dd> +<dt> +<a name="idx_id_12"></a><span class="term">O</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">observer_collection</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/observer_collection.html" title="Class template observer_collection"><span class="index-entry-level-1">Class template observer_collection</span></a></p></li></ul></div> +</li></ul></div></dd> +<dt> +<a name="idx_id_14"></a><span class="term">R</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">range_algebra</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">std::list</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">rosenbrock4</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">rosenbrock4_controller</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">rosenbrock4_dense_output</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">runge_kutta4</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">runge_kutta4_classic</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">runge_kutta_cash_karp54</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">runge_kutta_cash_karp54_classic</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">runge_kutta_fehlberg78</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_15"></a><span class="term">S</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">same_size_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">std::list</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">state_wrapper</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_stepp_idp21295584.html" title="Struct base_tag<stepper_tag>"><span class="index-entry-level-1">Struct base_tag<stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/error_stepper_tag.html" title="Struct error_stepper_tag"><span class="index-entry-level-1">Struct error_stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/stepper_tag.html" title="Struct stepper_tag"><span class="index-entry-level-1">Struct stepper_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">symplectic_euler</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">Class template symplectic_euler</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">symplectic_nystroem_stepper_base</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">Class template symplectic_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_m4_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_mclachlan</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">symplectic_rkn_sb3a_m4_mclachlan</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_m4_mclachlan</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">symplectic_rkn_sb3a_mclachlan</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_mclachlan</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_18"></a><span class="term">V</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">vector_space_reduce</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.point_type" title="Point type"><span class="index-entry-level-1">Point type</span></a></p></li></ul></div> +</li></ul></div></dd> +</dl></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../indexes.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="s02.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/odeint/indexes/s02.html b/libs/numeric/odeint/doc/html/odeint/indexes/s02.html new file mode 100644 index 000000000..9cb17da1e --- /dev/null +++ b/libs/numeric/odeint/doc/html/odeint/indexes/s02.html @@ -0,0 +1,597 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Function Index</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../indexes.html" title="Indexes"> +<link rel="prev" href="s01.html" title="Class Index"> +<link rel="next" href="s03.html" title="Index"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="s01.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="s03.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="idp38322896"></a>Function Index</h3></div></div></div> +<p><a class="link" href="s02.html#idx_id_20">A</a> <a class="link" href="s02.html#idx_id_22">C</a> <a class="link" href="s02.html#idx_id_23">D</a> <a class="link" href="s02.html#idx_id_24">E</a> <a class="link" href="s02.html#idx_id_25">F</a> <a class="link" href="s02.html#idx_id_26">G</a> <a class="link" href="s02.html#idx_id_28">I</a> <a class="link" href="s02.html#idx_id_30">M</a> <a class="link" href="s02.html#idx_id_32">O</a> <a class="link" href="s02.html#idx_id_33">P</a> <a class="link" href="s02.html#idx_id_34">R</a> <a class="link" href="s02.html#idx_id_35">S</a> <a class="link" href="s02.html#idx_id_36">T</a></p> +<div class="variablelist"><dl class="variablelist"> +<dt> +<a name="idx_id_20"></a><span class="term">A</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">adjust_size</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">Class template symplectic_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_m4_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_mclachlan</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">advance</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">algebra</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/algebra_stepper_base.html" title="Class template algebra_stepper_base"><span class="index-entry-level-1">Class template algebra_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">Class template symplectic_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_m4_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_mclachlan</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_22"></a><span class="term">C</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">calculate_finite_difference</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">calc_state</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_23"></a><span class="term">D</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">decrement</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">do_step</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">Class template symplectic_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_m4_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">Custom steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/error_stepper.html" title="Error Stepper"><span class="index-entry-level-1">Error Stepper</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.explicit_steppers" title="Explicit steppers"><span class="index-entry-level-1">Explicit steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">do_step_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">do_step_v1</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">do_step_v5</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_24"></a><span class="term">E</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">end_iterator</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">error</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_error_checker.html" title="Class template default_error_checker"><span class="index-entry-level-1">Class template default_error_checker</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_25"></a><span class="term">F</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">f</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">Custom steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.define_the_ode" title="Define the ODE"><span class="index-entry-level-1">Define the ODE</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.define_the_system_function" title="Define the system function"><span class="index-entry-level-1">Define the system function</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.explicit_steppers" title="Explicit steppers"><span class="index-entry-level-1">Explicit steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.implicit_solvers" title="Implicit solvers"><span class="index-entry-level-1">Implicit solvers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/implicit_system.html" title="Implicit System"><span class="index-entry-level-1">Implicit System</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/overview.html" title="Overview"><span class="index-entry-level-1">Overview</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/short_example.html" title="Short Example"><span class="index-entry-level-1">Short Example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/stiff_systems.html" title="Stiff systems"><span class="index-entry-level-1">Stiff systems</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.symplectic_solvers" title="Symplectic solvers"><span class="index-entry-level-1">Symplectic solvers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/symplectic_system.html" title="Symplectic System"><span class="index-entry-level-1">Symplectic System</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/system.html" title="System"><span class="index-entry-level-1">System</span></a></p></li> +</ul></div> +</li></ul></div></dd> +<dt> +<a name="idx_id_26"></a><span class="term">G</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">get_current_deriv</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">get_current_state</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">get_old_deriv</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">get_old_state</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">gsl_vector_iterator</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_28"></a><span class="term">I</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">increment</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">initialize</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/using_boost__range.html" title="Using boost::range"><span class="index-entry-level-1">Using boost::range</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.using_steppers" title="Using steppers"><span class="index-entry-level-1">Using steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">initializing_stepper</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">integrate</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/integrate_idp10099280.html" title="Function template integrate"><span class="index-entry-level-1">Function template integrate</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../header/boost/numeric/odeint/integrate/integrate_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate.hpp>"><span class="index-entry-level-1">Header < boost/numeric/odeint/integrate/integrate.hpp ></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">integrate_adaptive</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/integrate_adap_idp19520144.html" title="Function template integrate_adaptive"><span class="index-entry-level-1">Function template integrate_adaptive</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_adaptive.hpp>"><span class="index-entry-level-1">Header < boost/numeric/odeint/integrate/integrate_adaptive.hpp ></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.parameter_studies" title="Parameter studies"><span class="index-entry-level-1">Parameter studies</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">integrate_const</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/ensembles_of_oscillators.html" title="Ensembles of oscillators"><span class="index-entry-level-1">Ensembles of oscillators</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/integrate_cons_idp19540240.html" title="Function template integrate_const"><span class="index-entry-level-1">Function template integrate_const</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../header/boost/numeric/odeint/integrate/integrate_const_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_const.hpp>"><span class="index-entry-level-1">Header < boost/numeric/odeint/integrate/integrate_const.hpp ></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_constant_step_size" title="Integration with Constant Step Size"><span class="index-entry-level-1">Integration with Constant Step Size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains" title="Large oscillator chains"><span class="index-entry-level-1">Large oscillator chains</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_opencl_via_vexcl.html" title="Using OpenCL via VexCL"><span class="index-entry-level-1">Using OpenCL via VexCL</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">integrate_n_steps</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents"><span class="index-entry-level-1">Chaotic systems and Lyapunov exponents</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/integrate_n_st_idp19559904.html" title="Function template integrate_n_steps"><span class="index-entry-level-1">Function template integrate_n_steps</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_n_steps.hpp>"><span class="index-entry-level-1">Header < boost/numeric/odeint/integrate/integrate_n_steps.hpp ></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">integrate_times</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/integrate_time_idp19579536.html" title="Function template integrate_times"><span class="index-entry-level-1">Function template integrate_times</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../header/boost/numeric/odeint/integrate/integrate_times_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_times.hpp>"><span class="index-entry-level-1">Header < boost/numeric/odeint/integrate/integrate_times.hpp ></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">iter</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_30"></a><span class="term">M</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">max</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.controlled_steppers.adaptive_step_size_algorithms" title="Table 1.5. Adaptive step size algorithms"><span class="index-entry-level-1">Adaptive step size algorithms</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.controlled_steppers" title="Controlled steppers"><span class="index-entry-level-1">Controlled steppers</span></a></p></li> +</ul></div> +</li></ul></div></dd> +<dt> +<a name="idx_id_32"></a><span class="term">O</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">observers</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/observer_collection.html" title="Class template observer_collection"><span class="index-entry-level-1">Class template observer_collection</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">ode</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/binding_member_functions.html" title="Binding member functions"><span class="index-entry-level-1">Binding member functions</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_33"></a><span class="term">P</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">prepare_dense_output</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +</ul></div> +</li></ul></div></dd> +<dt> +<a name="idx_id_34"></a><span class="term">R</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">range_begin</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">range_end</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">reset</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/ensembles_of_oscillators.html" title="Ensembles of oscillators"><span class="index-entry-level-1">Ensembles of oscillators</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">std::list</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_dpdt</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_dqdt</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_dxdt_tmp_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_k_x_tmp_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_m_dxdt</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_m_dxdt_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_m_dxdt_new_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_m_xerr</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_m_xerr_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_m_xnew</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_m_xnew_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_x_err</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_35"></a><span class="term">S</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">same_size</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">std::list</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">set_steps</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">solve</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">stepper</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/short_example.html" title="Short Example"><span class="index-entry-level-1">Short Example</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">step_storage</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">sys</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains" title="Large oscillator chains"><span class="index-entry-level-1">Large oscillator chains</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html" title="Steppers"><span class="index-entry-level-1">Steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">system</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.parameter_studies" title="Parameter studies"><span class="index-entry-level-1">Parameter studies</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_36"></a><span class="term">T</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">toggle_current_state</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">try_step</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">try_step_v1</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +</dl></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="s01.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="s03.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/odeint/indexes/s03.html b/libs/numeric/odeint/doc/html/odeint/indexes/s03.html new file mode 100644 index 000000000..c6994f433 --- /dev/null +++ b/libs/numeric/odeint/doc/html/odeint/indexes/s03.html @@ -0,0 +1,3127 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Index</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="../indexes.html" title="Indexes"> +<link rel="prev" href="s02.html" title="Function Index"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../logo.jpg"></td> +<td align="center"><a href="../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="s02.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="idp38590320"></a>Index</h3></div></div></div> +<p><a class="link" href="s03.html#idx_id_40">A</a> <a class="link" href="s03.html#idx_id_41">B</a> <a class="link" href="s03.html#idx_id_42">C</a> <a class="link" href="s03.html#idx_id_43">D</a> <a class="link" href="s03.html#idx_id_44">E</a> <a class="link" href="s03.html#idx_id_45">F</a> <a class="link" href="s03.html#idx_id_46">G</a> <a class="link" href="s03.html#idx_id_47">H</a> <a class="link" href="s03.html#idx_id_48">I</a> <a class="link" href="s03.html#idx_id_49">L</a> <a class="link" href="s03.html#idx_id_50">M</a> <a class="link" href="s03.html#idx_id_51">N</a> <a class="link" href="s03.html#idx_id_52">O</a> <a class="link" href="s03.html#idx_id_53">P</a> <a class="link" href="s03.html#idx_id_54">R</a> <a class="link" href="s03.html#idx_id_55">S</a> <a class="link" href="s03.html#idx_id_56">T</a> <a class="link" href="s03.html#idx_id_57">U</a> <a class="link" href="s03.html#idx_id_58">V</a> <a class="link" href="s03.html#idx_id_59">W</a></p> +<div class="variablelist"><dl class="variablelist"> +<dt> +<a name="idx_id_40"></a><span class="term">A</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Acknowledgments</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/acknowledgments.html" title="Acknowledgments"><span class="index-entry-level-1">example</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">adams_bashforth</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">adams_bashforth_moulton</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">adams_moulton</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Adaptive step size algorithms</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.controlled_steppers.adaptive_step_size_algorithms" title="Table 1.5. Adaptive step size algorithms"><span class="index-entry-level-1">max</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">adjust_size</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">Class template symplectic_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_m4_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_mclachlan</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">advance</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">algebra</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/algebra_stepper_base.html" title="Class template algebra_stepper_base"><span class="index-entry-level-1">Class template algebra_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">Class template symplectic_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_m4_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_mclachlan</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">algebra_stepper_base</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/algebra_stepper_base.html" title="Class template algebra_stepper_base"><span class="index-entry-level-1">Class template algebra_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">algebra_stepper_base_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">algebra_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/algebra_stepper_base.html" title="Class template algebra_stepper_base"><span class="index-entry-level-1">Class template algebra_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_error_checker.html" title="Class template default_error_checker"><span class="index-entry-level-1">Class template default_error_checker</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">Class template symplectic_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_m4_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">All examples</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/all_examples.html" title="All examples"><span class="index-entry-level-1">example</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_41"></a><span class="term">B</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">base_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_contr_idp21299152.html" title="Struct base_tag<controlled_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<controlled_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_dense_idp21301904.html" title="Struct base_tag<dense_output_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<dense_output_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_error_idp21296464.html" title="Struct base_tag<error_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21300976.html" title="Struct base_tag<explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21300064.html" title="Struct base_tag<explicit_controlled_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_controlled_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21298256.html" title="Struct base_tag<explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21297360.html" title="Struct base_tag<explicit_error_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_stepp_idp21295584.html" title="Struct base_tag<stepper_tag>"><span class="index-entry-level-1">Struct base_tag<stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag.html" title="Struct template base_tag"><span class="index-entry-level-1">Struct template base_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">base_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Binding member functions</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/binding_member_functions.html" title="Binding member functions"><span class="index-entry-level-1">ode</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">book</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.define_the_system_function" title="Define the system function"><span class="index-entry-level-1">Define the system function</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Boost.Ublas</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.boost_ublas" title="Boost.Ublas"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.boost_ublas" title="Boost.Ublas"><span class="index-entry-level-1">is_resizeable</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.boost_ublas" title="Boost.Ublas"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.boost_ublas" title="Boost.Ublas"><span class="index-entry-level-1">type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">bulirsch_stoer</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">bulirsch_stoer_dense_out</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_42"></a><span class="term">C</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">calculate_finite_difference</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">calc_state</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Chaotic systems and Lyapunov exponents</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents"><span class="index-entry-level-1">integrate_n_steps</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents"><span class="index-entry-level-1">snippet</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents"><span class="index-entry-level-1">state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template adams_bashforth</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">algebra_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">do_step_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">initialize</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">initializing_stepper</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">initializing_stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">order_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">reset</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">stepper_category</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">step_storage</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">step_storage_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">value_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">wrapped_deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">wrapped_state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template adams_bashforth_moulton</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">initialize</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">order_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">stepper_category</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">value_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">wrapped_deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">wrapped_state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template adams_moulton</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">order_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">stepper_category</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">step_storage_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">value_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">wrapped_deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">wrapped_state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template algebra_stepper_base</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/algebra_stepper_base.html" title="Class template algebra_stepper_base"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/algebra_stepper_base.html" title="Class template algebra_stepper_base"><span class="index-entry-level-1">algebra_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/algebra_stepper_base.html" title="Class template algebra_stepper_base"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/algebra_stepper_base.html" title="Class template algebra_stepper_base"><span class="index-entry-level-1">operations_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template bulirsch_stoer</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">reset</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">resize_m_dxdt</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">resize_m_xnew</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">try_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">try_step_v1</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template bulirsch_stoer_dense_out</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">calculate_finite_difference</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">calc_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">get_current_deriv</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">get_current_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">get_old_deriv</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">get_old_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">initialize</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">prepare_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">reset</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">stepper_category</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">toggle_current_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">try_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template controlled_runge_kutta</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_runge_kutta.html" title="Class template controlled_runge_kutta"><span class="index-entry-level-1">controlled_runge_kutta</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">controlled_runge_kutta</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">error_checker_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">explicit_error_stepper_fsal_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">initialize</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">reset</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">resize_m_dxdt_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">resize_m_dxdt_new_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">resize_m_xerr_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">resize_m_xnew_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">stepper</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">stepper_category</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">try_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">try_step_v1</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">controlled_runge_kutta</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">error_checker_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">explicit_error_stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">resize_m_dxdt_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">resize_m_xerr_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">resize_m_xnew_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">stepper</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">stepper_category</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">try_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">try_step_v1</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template default_error_checker</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_error_checker.html" title="Class template default_error_checker"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_error_checker.html" title="Class template default_error_checker"><span class="index-entry-level-1">default_error_checker</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_error_checker.html" title="Class template default_error_checker"><span class="index-entry-level-1">error</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_error_checker.html" title="Class template default_error_checker"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_error_checker.html" title="Class template default_error_checker"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template dense_output_runge_kutta</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_runge_kutta.html" title="Class template dense_output_runge_kutta"><span class="index-entry-level-1">dense_output_runge_kutta</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">calc_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">controlled_stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">dense_output_runge_kutta</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">dense_output_stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">explicit_controlled_stepper_fsal_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">get_current_deriv</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">get_current_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">get_old_deriv</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">get_old_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">initialize</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">resize</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">stepper_category</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">toggle_current_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">value_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">wrapped_deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">wrapped_state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">calc_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">dense_output_runge_kutta</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">dense_output_stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">get_current_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">get_old_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">initialize</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">stepper_category</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">toggle_current_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">value_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">wrapped_deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">wrapped_state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template euler</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">calc_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">do_step_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">stepper_base_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template explicit_error_generic_rk</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">coef_a_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">coef_b_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">coef_c_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">do_step_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">rk_algorithm_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">stepper_base_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">value_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">wrapped_deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">wrapped_state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template explicit_error_stepper_base</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">algebra_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">algebra_stepper_base_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">do_step_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">do_step_v1</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">do_step_v5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">order_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">stepper</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">stepper_category</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template explicit_error_stepper_fsal_base</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">algebra_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">algebra_stepper_base_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">do_step_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">do_step_v1</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">do_step_v5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">initialize</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">order_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">reset</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">stepper</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">stepper_category</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template explicit_generic_rk</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">coef_a_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">coef_b_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">coef_c_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">do_step_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">rk_algorithm_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">stepper_base_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">value_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">wrapped_deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">wrapped_state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template explicit_stepper_base</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">algebra_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">algebra_stepper_base_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">base_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">do_step_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">do_step_v1</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">order_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">snippet</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">stepper</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">stepper_category</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template implicit_euler</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">matrix_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">pmatrix_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">solve</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">stepper_category</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">value_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">wrapped_deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">wrapped_matrix_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">wrapped_pmatrix_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">wrapped_state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template modified_midpoint</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">do_step_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">set_steps</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">stepper_base_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">value_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">wrapped_deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">wrapped_state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template modified_midpoint_dense_out</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">deriv_table_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">modified_midpoint_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">resize</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">set_steps</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">value_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">wrapped_deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">wrapped_state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template observer_collection</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/observer_collection.html" title="Class template observer_collection"><span class="index-entry-level-1">collection_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/observer_collection.html" title="Class template observer_collection"><span class="index-entry-level-1">observers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/observer_collection.html" title="Class template observer_collection"><span class="index-entry-level-1">observer_collection</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/observer_collection.html" title="Class template observer_collection"><span class="index-entry-level-1">observer_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template rosenbrock4</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">calc_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">matrix_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">order_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">pmatrix_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">prepare_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">resize_x_err</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">rosenbrock_coefficients</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">stepper_category</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">value_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">wrapped_deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">wrapped_matrix_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">wrapped_pmatrix_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">wrapped_state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template rosenbrock4_controller</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">controller_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">error</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">resize_m_xerr</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">resize_m_xnew</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">rosenbrock4_controller</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">stepper</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">stepper_category</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">try_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">value_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">wrapped_deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">wrapped_state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template rosenbrock4_dense_output</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">calc_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">controlled_stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">dense_output_stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">get_current_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">get_old_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">initialize</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">stepper_category</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">toggle_current_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">value_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">wrapped_deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">wrapped_state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template runge_kutta4</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">do_step_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template runge_kutta4_classic</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">default_operations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">do_step_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">initially_resizer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">range_algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">stepper_base_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template runge_kutta_cash_karp54</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">do_step_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">resizer_typ</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template runge_kutta_cash_karp54_classic</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">default_operations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">do_step_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">initially_resizer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">range_algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">stepper_base_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template runge_kutta_dopri5</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">calc_state</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">do_step_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">initialize</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">reset</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">resize_dxdt_tmp_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">resize_k_x_tmp_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">stepper_base_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template runge_kutta_fehlberg78</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">do_step_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template symplectic_euler</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">symplectic_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template symplectic_nystroem_stepper_base</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">algebra_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">algebra_stepper_base_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">coef_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">coor_deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">coor_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">do_step_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">momentum_deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">momentum_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">order_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">resize_dpdt</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">resize_dqdt</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">stepper_category</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">value_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">wrapped_coor_deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">wrapped_momentum_deriv_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template symplectic_rkn_sb3a_m4_mclachlan</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">symplectic_rkn_sb3a_m4_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Class template symplectic_rkn_sb3a_mclachlan</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">adjust_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">symplectic_rkn_sb3a_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">coef_a_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">coef_b_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">coef_c_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">coef_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">collection_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/observer_collection.html" title="Class template observer_collection"><span class="index-entry-level-1">Class template observer_collection</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Complex state types</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/complex_state_types.html" title="Complex state types"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/complex_state_types.html" title="Complex state types"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/complex_state_types.html" title="Complex state types"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/complex_state_types.html" title="Complex state types"><span class="index-entry-level-1">stepper_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Construction/Resizing</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing" title="Construction/Resizing"><span class="index-entry-level-1">example</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Controlled steppers</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.controlled_steppers" title="Controlled steppers"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.controlled_steppers" title="Controlled steppers"><span class="index-entry-level-1">max</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.controlled_steppers" title="Controlled steppers"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">controlled_runge_kutta</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_runge_kutta.html" title="Class template controlled_runge_kutta"><span class="index-entry-level-1">Class template controlled_runge_kutta</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">controlled_stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_contr_idp21299152.html" title="Struct base_tag<controlled_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<controlled_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_stepper_tag.html" title="Struct controlled_stepper_tag"><span class="index-entry-level-1">Struct controlled_stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_contr_idp21294240.html" title="Struct explicit_controlled_stepper_fsal_tag"><span class="index-entry-level-1">Struct explicit_controlled_stepper_fsal_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_contr_idp21293728.html" title="Struct explicit_controlled_stepper_tag"><span class="index-entry-level-1">Struct explicit_controlled_stepper_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">controlled_stepper_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_adaptive_step_size" title="Integration with Adaptive Step Size"><span class="index-entry-level-1">Integration with Adaptive Step Size</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">controller_factory</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/generation_functions.html" title="Generation functions"><span class="index-entry-level-1">Generation functions</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">controller_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">coor_deriv_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">coor_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Custom Runge-Kutta steppers</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">algebra_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">default_operations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">initially_resizer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">operations_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">range_algebra</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">resizer_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">stepper_base_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">value_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">wrapped_deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">wrapped_state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Custom steppers</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">f</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">order_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">stepper_category</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">time_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_43"></a><span class="term">D</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">decrement</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">default_error_checker</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_error_checker.html" title="Class template default_error_checker"><span class="index-entry-level-1">Class template default_error_checker</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">default_operations</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">default_rosenbrock_coefficients</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_rosenb_idp20694128.html" title="Struct template default_rosenbrock_coefficients"><span class="index-entry-level-1">Struct template default_rosenbrock_coefficients</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Define the ODE</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.define_the_ode" title="Define the ODE"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.define_the_ode" title="Define the ODE"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.define_the_ode" title="Define the ODE"><span class="index-entry-level-1">f</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.define_the_ode" title="Define the ODE"><span class="index-entry-level-1">state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Define the system function</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.define_the_system_function" title="Define the system function"><span class="index-entry-level-1">book</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.define_the_system_function" title="Define the system function"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.define_the_system_function" title="Define the system function"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.define_the_system_function" title="Define the system function"><span class="index-entry-level-1">f</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.define_the_system_function" title="Define the system function"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.define_the_system_function" title="Define the system function"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.define_the_system_function" title="Define the system function"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Dense output steppers</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.dense_output_steppers" title="Dense output steppers"><span class="index-entry-level-1">example</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">dense_output_runge_kutta</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_runge_kutta.html" title="Class template dense_output_runge_kutta"><span class="index-entry-level-1">Class template dense_output_runge_kutta</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">dense_output_stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_dense_idp21301904.html" title="Struct base_tag<dense_output_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<dense_output_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_stepper_tag.html" title="Struct dense_output_stepper_tag"><span class="index-entry-level-1">Struct dense_output_stepper_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">dense_output_stepper_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">deriv_table_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">deriv_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">Custom steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_boost__units.html" title="Using boost::units"><span class="index-entry-level-1">Using boost::units</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">do_step</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">Class template symplectic_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_m4_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">Custom steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/error_stepper.html" title="Error Stepper"><span class="index-entry-level-1">Error Stepper</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.explicit_steppers" title="Explicit steppers"><span class="index-entry-level-1">Explicit steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">do_step_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">do_step_v1</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">do_step_v5</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_44"></a><span class="term">E</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">end_iterator</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Ensembles of oscillators</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/ensembles_of_oscillators.html" title="Ensembles of oscillators"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/ensembles_of_oscillators.html" title="Ensembles of oscillators"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/ensembles_of_oscillators.html" title="Ensembles of oscillators"><span class="index-entry-level-1">integrate_const</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/ensembles_of_oscillators.html" title="Ensembles of oscillators"><span class="index-entry-level-1">reset</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">equations</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents"><span class="index-entry-level-1">Chaotic systems and Lyapunov exponents</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">Custom steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.define_the_ode" title="Define the ODE"><span class="index-entry-level-1">Define the ODE</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.define_the_system_function" title="Define the system function"><span class="index-entry-level-1">Define the system function</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/ensembles_of_oscillators.html" title="Ensembles of oscillators"><span class="index-entry-level-1">Ensembles of oscillators</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/all_examples.html#boost_numeric_odeint.tutorial.all_examples.examples_overview" title="Table 1.4. Examples Overview"><span class="index-entry-level-1">Examples Overview</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.explicit_steppers" title="Explicit steppers"><span class="index-entry-level-1">Explicit steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/integrate_idp10099280.html" title="Function template integrate"><span class="index-entry-level-1">Function template integrate</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.gravitation_and_energy_conservation" title="Gravitation and energy conservation"><span class="index-entry-level-1">Gravitation and energy conservation</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.implicit_solvers" title="Implicit solvers"><span class="index-entry-level-1">Implicit solvers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains" title="Large oscillator chains"><span class="index-entry-level-1">Large oscillator chains</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/lattice_systems.html" title="Lattice systems"><span class="index-entry-level-1">Lattice systems</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/literature.html" title="Literature"><span class="index-entry-level-1">Literature</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/overview.html" title="Overview"><span class="index-entry-level-1">Overview</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.parameter_studies" title="Parameter studies"><span class="index-entry-level-1">Parameter studies</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/short_example.html" title="Short Example"><span class="index-entry-level-1">Short Example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/simple_symplectic_system.html" title="Simple Symplectic System"><span class="index-entry-level-1">Simple Symplectic System</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/state_algebra_operations.html" title="State Algebra Operations"><span class="index-entry-level-1">State Algebra Operations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html" title="Steppers"><span class="index-entry-level-1">Steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/stiff_systems.html" title="Stiff systems"><span class="index-entry-level-1">Stiff systems</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.symplectic_solvers" title="Symplectic solvers"><span class="index-entry-level-1">Symplectic solvers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/symplectic_system.html" title="Symplectic System"><span class="index-entry-level-1">Symplectic System</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_boost__units.html" title="Using boost::units"><span class="index-entry-level-1">Using boost::units</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html" title="Using CUDA (or OpenMP, TBB, ...) via Thrust"><span class="index-entry-level-1">Using CUDA (or OpenMP, TBB, ...) via Thrust</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_matrices_as_state_types.html" title="Using matrices as state types"><span class="index-entry-level-1">Using matrices as state types</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.using_steppers" title="Using steppers"><span class="index-entry-level-1">Using steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">error</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_error_checker.html" title="Class template default_error_checker"><span class="index-entry-level-1">Class template default_error_checker</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Error Stepper</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/error_stepper.html" title="Error Stepper"><span class="index-entry-level-1">do_step</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">error_checker_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">error_stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_error_idp21296464.html" title="Struct base_tag<error_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/error_stepper_tag.html" title="Struct error_stepper_tag"><span class="index-entry-level-1">Struct error_stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp21293008.html" title="Struct explicit_error_stepper_fsal_tag"><span class="index-entry-level-1">Struct explicit_error_stepper_fsal_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_stepper_tag.html" title="Struct explicit_error_stepper_tag"><span class="index-entry-level-1">Struct explicit_error_stepper_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">euler</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">example</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/acknowledgments.html" title="Acknowledgments"><span class="index-entry-level-1">Acknowledgments</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/all_examples.html" title="All examples"><span class="index-entry-level-1">All examples</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.boost_ublas" title="Boost.Ublas"><span class="index-entry-level-1">Boost.Ublas</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents"><span class="index-entry-level-1">Chaotic systems and Lyapunov exponents</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/complex_state_types.html" title="Complex state types"><span class="index-entry-level-1">Complex state types</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing" title="Construction/Resizing"><span class="index-entry-level-1">Construction/Resizing</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.controlled_steppers" title="Controlled steppers"><span class="index-entry-level-1">Controlled steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">Custom steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.define_the_ode" title="Define the ODE"><span class="index-entry-level-1">Define the ODE</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.define_the_system_function" title="Define the system function"><span class="index-entry-level-1">Define the system function</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.dense_output_steppers" title="Dense output steppers"><span class="index-entry-level-1">Dense output steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/ensembles_of_oscillators.html" title="Ensembles of oscillators"><span class="index-entry-level-1">Ensembles of oscillators</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.example_expressions" title="Example expressions"><span class="index-entry-level-1">Example expressions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/all_examples.html#boost_numeric_odeint.tutorial.all_examples.examples_overview" title="Table 1.4. Examples Overview"><span class="index-entry-level-1">Examples Overview</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.explicit_steppers" title="Explicit steppers"><span class="index-entry-level-1">Explicit steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.gravitation_and_energy_conservation" title="Gravitation and energy conservation"><span class="index-entry-level-1">Gravitation and energy conservation</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html" title="Harmonic oscillator"><span class="index-entry-level-1">Harmonic oscillator</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_adaptive_step_size" title="Integration with Adaptive Step Size"><span class="index-entry-level-1">Integration with Adaptive Step Size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_constant_step_size" title="Integration with Constant Step Size"><span class="index-entry-level-1">Integration with Constant Step Size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains" title="Large oscillator chains"><span class="index-entry-level-1">Large oscillator chains</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/lattice_systems.html" title="Lattice systems"><span class="index-entry-level-1">Lattice systems</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.multistep_methods" title="Multistep methods"><span class="index-entry-level-1">Multistep methods</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/overview.html" title="Overview"><span class="index-entry-level-1">Overview</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.parameter_studies" title="Parameter studies"><span class="index-entry-level-1">Parameter studies</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.phase_oscillator_ensemble" title="Phase oscillator ensemble"><span class="index-entry-level-1">Phase oscillator ensemble</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.point_type" title="Point type"><span class="index-entry-level-1">Point type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/self_expanding_lattices.html" title="Self expanding lattices"><span class="index-entry-level-1">Self expanding lattices</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/short_example.html" title="Short Example"><span class="index-entry-level-1">Short Example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/state_algebra_operations.html" title="State Algebra Operations"><span class="index-entry-level-1">State Algebra Operations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html" title="State types, algebras and operations"><span class="index-entry-level-1">State types, algebras and operations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">std::list</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.stepper_types" title="Stepper Types"><span class="index-entry-level-1">Stepper Types</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/stiff_systems.html" title="Stiff systems"><span class="index-entry-level-1">Stiff systems</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.symplectic_solvers" title="Symplectic solvers"><span class="index-entry-level-1">Symplectic solvers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_arbitrary_precision_floating_point_types.html" title="Using arbitrary precision floating point types"><span class="index-entry-level-1">Using arbitrary precision floating point types</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/using_boost__range.html" title="Using boost::range"><span class="index-entry-level-1">Using boost::range</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/using_boost__ref.html" title="Using boost::ref"><span class="index-entry-level-1">Using boost::ref</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_boost__units.html" title="Using boost::units"><span class="index-entry-level-1">Using boost::units</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html" title="Using CUDA (or OpenMP, TBB, ...) via Thrust"><span class="index-entry-level-1">Using CUDA (or OpenMP, TBB, ...) via Thrust</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_matrices_as_state_types.html" title="Using matrices as state types"><span class="index-entry-level-1">Using matrices as state types</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_opencl_via_vexcl.html" title="Using OpenCL via VexCL"><span class="index-entry-level-1">Using OpenCL via VexCL</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.using_steppers" title="Using steppers"><span class="index-entry-level-1">Using steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.using_the_container_interface" title="Using the container interface"><span class="index-entry-level-1">Using the container interface</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Example expressions</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.example_expressions" title="Example expressions"><span class="index-entry-level-1">example</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Examples Overview</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/all_examples.html#boost_numeric_odeint.tutorial.all_examples.examples_overview" title="Table 1.4. Examples Overview"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/all_examples.html#boost_numeric_odeint.tutorial.all_examples.examples_overview" title="Table 1.4. Examples Overview"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/all_examples.html#boost_numeric_odeint.tutorial.all_examples.examples_overview" title="Table 1.4. Examples Overview"><span class="index-entry-level-1">graphics</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/all_examples.html#boost_numeric_odeint.tutorial.all_examples.examples_overview" title="Table 1.4. Examples Overview"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Explicit steppers</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.explicit_steppers" title="Explicit steppers"><span class="index-entry-level-1">do_step</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.explicit_steppers" title="Explicit steppers"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.explicit_steppers" title="Explicit steppers"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.explicit_steppers" title="Explicit steppers"><span class="index-entry-level-1">f</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_controlled_stepper_fsal_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21300976.html" title="Struct base_tag<explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_contr_idp21294240.html" title="Struct explicit_controlled_stepper_fsal_tag"><span class="index-entry-level-1">Struct explicit_controlled_stepper_fsal_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_controlled_stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21300064.html" title="Struct base_tag<explicit_controlled_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_controlled_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_contr_idp21293728.html" title="Struct explicit_controlled_stepper_tag"><span class="index-entry-level-1">Struct explicit_controlled_stepper_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_error_generic_rk</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_error_stepper_base</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_error_stepper_fsal_base</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_error_stepper_fsal_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21298256.html" title="Struct base_tag<explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp21293008.html" title="Struct explicit_error_stepper_fsal_tag"><span class="index-entry-level-1">Struct explicit_error_stepper_fsal_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_error_stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21297360.html" title="Struct base_tag<explicit_error_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_stepper_tag.html" title="Struct explicit_error_stepper_tag"><span class="index-entry-level-1">Struct explicit_error_stepper_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_generic_rk</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">explicit_stepper_base</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_45"></a><span class="term">F</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">f</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">Custom steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.define_the_ode" title="Define the ODE"><span class="index-entry-level-1">Define the ODE</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.define_the_system_function" title="Define the system function"><span class="index-entry-level-1">Define the system function</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.explicit_steppers" title="Explicit steppers"><span class="index-entry-level-1">Explicit steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.implicit_solvers" title="Implicit solvers"><span class="index-entry-level-1">Implicit solvers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/implicit_system.html" title="Implicit System"><span class="index-entry-level-1">Implicit System</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/overview.html" title="Overview"><span class="index-entry-level-1">Overview</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/short_example.html" title="Short Example"><span class="index-entry-level-1">Short Example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/stiff_systems.html" title="Stiff systems"><span class="index-entry-level-1">Stiff systems</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.symplectic_solvers" title="Symplectic solvers"><span class="index-entry-level-1">Symplectic solvers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/symplectic_system.html" title="Symplectic System"><span class="index-entry-level-1">Symplectic System</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/system.html" title="System"><span class="index-entry-level-1">System</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Function template integrate</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/integrate_idp10099280.html" title="Function template integrate"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/integrate_idp10099280.html" title="Function template integrate"><span class="index-entry-level-1">integrate</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Function template integrate_adaptive</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/integrate_adap_idp19520144.html" title="Function template integrate_adaptive"><span class="index-entry-level-1">integrate_adaptive</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Function template integrate_const</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/integrate_cons_idp19540240.html" title="Function template integrate_const"><span class="index-entry-level-1">integrate_const</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Function template integrate_n_steps</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/integrate_n_st_idp19559904.html" title="Function template integrate_n_steps"><span class="index-entry-level-1">integrate_n_steps</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Function template integrate_times</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/integrate_time_idp19579536.html" title="Function template integrate_times"><span class="index-entry-level-1">integrate_times</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_46"></a><span class="term">G</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Generation functions</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/generation_functions.html" title="Generation functions"><span class="index-entry-level-1">controller_factory</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/generation_functions.html" title="Generation functions"><span class="index-entry-level-1">get_controller</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/generation_functions.html" title="Generation functions"><span class="index-entry-level-1">type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Generation functions make_controlled( abs_error , rel_error , stepper )</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_adaptive_step_size.generation_functions_make_controlled__abs_error___rel_error___stepper__" title="Table 1.2. Generation functions make_controlled( abs_error , rel_error , stepper )"><span class="index-entry-level-1">remark</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Generation functions make_dense_output( abs_error , rel_error , stepper )</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_adaptive_step_size.generation_functions_make_dense_output__abs_error___rel_error___stepper__" title="Table 1.3. Generation functions make_dense_output( abs_error , rel_error , stepper )"><span class="index-entry-level-1">remark</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">get_controller</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/generation_functions.html" title="Generation functions"><span class="index-entry-level-1">Generation functions</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">get_current_deriv</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">get_current_state</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">get_old_deriv</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">get_old_state</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">graphics</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/all_examples.html#boost_numeric_odeint.tutorial.all_examples.examples_overview" title="Table 1.4. Examples Overview"><span class="index-entry-level-1">Examples Overview</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html" title="Using CUDA (or OpenMP, TBB, ...) via Thrust"><span class="index-entry-level-1">Using CUDA (or OpenMP, TBB, ...) via Thrust</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Gravitation and energy conservation</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.gravitation_and_energy_conservation" title="Gravitation and energy conservation"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.gravitation_and_energy_conservation" title="Gravitation and energy conservation"><span class="index-entry-level-1">example</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">GSL Vector</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">advance</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">decrement</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">end_iterator</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">gsl_vector_iterator</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">increment</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">is_resizeable</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">iter</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">range_begin</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">range_end</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">resize</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">same_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">same_size_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">state_wrapper</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">state_wrapper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">gsl_vector_iterator</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_47"></a><span class="term">H</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Harmonic oscillator</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html" title="Harmonic oscillator"><span class="index-entry-level-1">example</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Header < boost/numeric/odeint/integrate/integrate.hpp ></span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../header/boost/numeric/odeint/integrate/integrate_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate.hpp>"><span class="index-entry-level-1">integrate</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Header < boost/numeric/odeint/integrate/integrate_adaptive.hpp ></span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_adaptive.hpp>"><span class="index-entry-level-1">integrate_adaptive</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Header < boost/numeric/odeint/integrate/integrate_const.hpp ></span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../header/boost/numeric/odeint/integrate/integrate_const_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_const.hpp>"><span class="index-entry-level-1">integrate_const</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Header < boost/numeric/odeint/integrate/integrate_n_steps.hpp ></span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_n_steps.hpp>"><span class="index-entry-level-1">integrate_n_steps</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Header < boost/numeric/odeint/integrate/integrate_times.hpp ></span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../header/boost/numeric/odeint/integrate/integrate_times_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_times.hpp>"><span class="index-entry-level-1">integrate_times</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_48"></a><span class="term">I</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Implicit solvers</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.implicit_solvers" title="Implicit solvers"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.implicit_solvers" title="Implicit solvers"><span class="index-entry-level-1">f</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Implicit System</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/implicit_system.html" title="Implicit System"><span class="index-entry-level-1">f</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">implicit_euler</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">increment</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">index</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../indexes.html" title="Indexes"><span class="index-entry-level-1">Indexes</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains" title="Large oscillator chains"><span class="index-entry-level-1">Large oscillator chains</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/self_expanding_lattices.html" title="Self expanding lattices"><span class="index-entry-level-1">Self expanding lattices</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Indexes</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../indexes.html" title="Indexes"><span class="index-entry-level-1">index</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">initialize</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/using_boost__range.html" title="Using boost::range"><span class="index-entry-level-1">Using boost::range</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.using_steppers" title="Using steppers"><span class="index-entry-level-1">Using steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">initializing_stepper</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">initializing_stepper_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">initially_resizer</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">integrate</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/integrate_idp10099280.html" title="Function template integrate"><span class="index-entry-level-1">Function template integrate</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../header/boost/numeric/odeint/integrate/integrate_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate.hpp>"><span class="index-entry-level-1">Header < boost/numeric/odeint/integrate/integrate.hpp ></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Integrate functions</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/integrate_functions.html" title="Integrate functions"><span class="index-entry-level-1">pre-conditions</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">integrate_adaptive</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/integrate_adap_idp19520144.html" title="Function template integrate_adaptive"><span class="index-entry-level-1">Function template integrate_adaptive</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_adaptive.hpp>"><span class="index-entry-level-1">Header < boost/numeric/odeint/integrate/integrate_adaptive.hpp ></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.parameter_studies" title="Parameter studies"><span class="index-entry-level-1">Parameter studies</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">integrate_const</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/ensembles_of_oscillators.html" title="Ensembles of oscillators"><span class="index-entry-level-1">Ensembles of oscillators</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/integrate_cons_idp19540240.html" title="Function template integrate_const"><span class="index-entry-level-1">Function template integrate_const</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../header/boost/numeric/odeint/integrate/integrate_const_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_const.hpp>"><span class="index-entry-level-1">Header < boost/numeric/odeint/integrate/integrate_const.hpp ></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_constant_step_size" title="Integration with Constant Step Size"><span class="index-entry-level-1">Integration with Constant Step Size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains" title="Large oscillator chains"><span class="index-entry-level-1">Large oscillator chains</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_opencl_via_vexcl.html" title="Using OpenCL via VexCL"><span class="index-entry-level-1">Using OpenCL via VexCL</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">integrate_n_steps</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents"><span class="index-entry-level-1">Chaotic systems and Lyapunov exponents</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/integrate_n_st_idp19559904.html" title="Function template integrate_n_steps"><span class="index-entry-level-1">Function template integrate_n_steps</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_n_steps.hpp>"><span class="index-entry-level-1">Header < boost/numeric/odeint/integrate/integrate_n_steps.hpp ></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">integrate_times</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/integrate_time_idp19579536.html" title="Function template integrate_times"><span class="index-entry-level-1">Function template integrate_times</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../header/boost/numeric/odeint/integrate/integrate_times_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate_times.hpp>"><span class="index-entry-level-1">Header < boost/numeric/odeint/integrate/integrate_times.hpp ></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Integration with Adaptive Step Size</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_adaptive_step_size" title="Integration with Adaptive Step Size"><span class="index-entry-level-1">controlled_stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_adaptive_step_size" title="Integration with Adaptive Step Size"><span class="index-entry-level-1">example</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Integration with Constant Step Size</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_constant_step_size" title="Integration with Constant Step Size"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_constant_step_size" title="Integration with Constant Step Size"><span class="index-entry-level-1">integrate_const</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">is_resizeable</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.boost_ublas" title="Boost.Ublas"><span class="index-entry-level-1">Boost.Ublas</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">std::list</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.using_the_container_interface" title="Using the container interface"><span class="index-entry-level-1">Using the container interface</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">iter</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_49"></a><span class="term">L</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Large oscillator chains</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains" title="Large oscillator chains"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains" title="Large oscillator chains"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains" title="Large oscillator chains"><span class="index-entry-level-1">index</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains" title="Large oscillator chains"><span class="index-entry-level-1">integrate_const</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains" title="Large oscillator chains"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains" title="Large oscillator chains"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains" title="Large oscillator chains"><span class="index-entry-level-1">sys</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Lattice systems</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/lattice_systems.html" title="Lattice systems"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/lattice_systems.html" title="Lattice systems"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/lattice_systems.html" title="Lattice systems"><span class="index-entry-level-1">remark</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/lattice_systems.html" title="Lattice systems"><span class="index-entry-level-1">stepper_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">links</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/usage__compilation__headers.html" title="Usage, Compilation, Headers"><span class="index-entry-level-1">Usage, Compilation, Headers</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Literature</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/literature.html" title="Literature"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/literature.html" title="Literature"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_50"></a><span class="term">M</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">matrix_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/stiff_systems.html" title="Stiff systems"><span class="index-entry-level-1">Stiff systems</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">max</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.controlled_steppers.adaptive_step_size_algorithms" title="Table 1.5. Adaptive step size algorithms"><span class="index-entry-level-1">Adaptive step size algorithms</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.controlled_steppers" title="Controlled steppers"><span class="index-entry-level-1">Controlled steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">modified_midpoint</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">modified_midpoint_dense_out</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">momentum_deriv_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">momentum_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Multistep methods</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.multistep_methods" title="Multistep methods"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.multistep_methods" title="Multistep methods"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_51"></a><span class="term">N</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">null_observer</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/null_observer.html" title="Struct null_observer"><span class="index-entry-level-1">Struct null_observer</span></a></p></li></ul></div> +</li></ul></div></dd> +<dt> +<a name="idx_id_52"></a><span class="term">O</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">observers</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/observer_collection.html" title="Class template observer_collection"><span class="index-entry-level-1">Class template observer_collection</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">observer_collection</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/observer_collection.html" title="Class template observer_collection"><span class="index-entry-level-1">Class template observer_collection</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">observer_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/observer_collection.html" title="Class template observer_collection"><span class="index-entry-level-1">Class template observer_collection</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">ode</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/binding_member_functions.html" title="Binding member functions"><span class="index-entry-level-1">Binding member functions</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">operations_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/algebra_stepper_base.html" title="Class template algebra_stepper_base"><span class="index-entry-level-1">Class template algebra_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_error_checker.html" title="Class template default_error_checker"><span class="index-entry-level-1">Class template default_error_checker</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">order_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">Custom steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_rosenb_idp20694128.html" title="Struct template default_rosenbrock_coefficients"><span class="index-entry-level-1">Struct template default_rosenbrock_coefficients</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Overview</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/overview.html" title="Overview"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/overview.html" title="Overview"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/overview.html" title="Overview"><span class="index-entry-level-1">f</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_53"></a><span class="term">P</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Parameter studies</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.parameter_studies" title="Parameter studies"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.parameter_studies" title="Parameter studies"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.parameter_studies" title="Parameter studies"><span class="index-entry-level-1">integrate_adaptive</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.parameter_studies" title="Parameter studies"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.parameter_studies" title="Parameter studies"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.parameter_studies" title="Parameter studies"><span class="index-entry-level-1">system</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">path</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/usage__compilation__headers.html" title="Usage, Compilation, Headers"><span class="index-entry-level-1">Usage, Compilation, Headers</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Phase oscillator ensemble</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.phase_oscillator_ensemble" title="Phase oscillator ensemble"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.phase_oscillator_ensemble" title="Phase oscillator ensemble"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.phase_oscillator_ensemble" title="Phase oscillator ensemble"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.phase_oscillator_ensemble" title="Phase oscillator ensemble"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.phase_oscillator_ensemble" title="Phase oscillator ensemble"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">pmatrix_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Point type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.point_type" title="Point type"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.point_type" title="Point type"><span class="index-entry-level-1">vector_space_reduce</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">pre-conditions</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents"><span class="index-entry-level-1">Chaotic systems and Lyapunov exponents</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">Class template symplectic_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_m4_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/complex_state_types.html" title="Complex state types"><span class="index-entry-level-1">Complex state types</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.controlled_steppers" title="Controlled steppers"><span class="index-entry-level-1">Controlled steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.define_the_system_function" title="Define the system function"><span class="index-entry-level-1">Define the system function</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/all_examples.html#boost_numeric_odeint.tutorial.all_examples.examples_overview" title="Table 1.4. Examples Overview"><span class="index-entry-level-1">Examples Overview</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/integrate_functions.html" title="Integrate functions"><span class="index-entry-level-1">Integrate functions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains" title="Large oscillator chains"><span class="index-entry-level-1">Large oscillator chains</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/literature.html" title="Literature"><span class="index-entry-level-1">Literature</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.multistep_methods" title="Multistep methods"><span class="index-entry-level-1">Multistep methods</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.parameter_studies" title="Parameter studies"><span class="index-entry-level-1">Parameter studies</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.phase_oscillator_ensemble" title="Phase oscillator ensemble"><span class="index-entry-level-1">Phase oscillator ensemble</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.pre_defined_implementations" title="Pre-Defined implementations"><span class="index-entry-level-1">Pre-Defined implementations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/overview.html#boost_numeric_odeint.getting_started.overview.stepper_algorithms" title="Table 1.1. Stepper Algorithms"><span class="index-entry-level-1">Stepper Algorithms</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html" title="Steppers"><span class="index-entry-level-1">Steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/usage__compilation__headers.html" title="Usage, Compilation, Headers"><span class="index-entry-level-1">Usage, Compilation, Headers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_arbitrary_precision_floating_point_types.html" title="Using arbitrary precision floating point types"><span class="index-entry-level-1">Using arbitrary precision floating point types</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_opencl_via_vexcl.html" title="Using OpenCL via VexCL"><span class="index-entry-level-1">Using OpenCL via VexCL</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.using_steppers" title="Using steppers"><span class="index-entry-level-1">Using steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Pre-Defined implementations</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.pre_defined_implementations" title="Pre-Defined implementations"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.pre_defined_implementations" title="Pre-Defined implementations"><span class="index-entry-level-1">remark</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">prepare_dense_output</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_54"></a><span class="term">R</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">range_algebra</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">range_begin</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">range_end</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">remark</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_adaptive_step_size.generation_functions_make_controlled__abs_error___rel_error___stepper__" title="Table 1.2. Generation functions make_controlled( abs_error , rel_error , stepper )"><span class="index-entry-level-1">Generation functions make_controlled( abs_error , rel_error , stepper )</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.integration_with_adaptive_step_size.generation_functions_make_dense_output__abs_error___rel_error___stepper__" title="Table 1.3. Generation functions make_dense_output( abs_error , rel_error , stepper )"><span class="index-entry-level-1">Generation functions make_dense_output( abs_error , rel_error , stepper )</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/lattice_systems.html" title="Lattice systems"><span class="index-entry-level-1">Lattice systems</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/state_algebra_operations.html#boost_numeric_odeint.concepts.state_algebra_operations.pre_defined_implementations" title="Pre-Defined implementations"><span class="index-entry-level-1">Pre-Defined implementations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/overview.html#boost_numeric_odeint.getting_started.overview.stepper_algorithms" title="Table 1.1. Stepper Algorithms"><span class="index-entry-level-1">Stepper Algorithms</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">reset</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/ensembles_of_oscillators.html" title="Ensembles of oscillators"><span class="index-entry-level-1">Ensembles of oscillators</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">std::list</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resizer_typ</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resizer_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_dpdt</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_dqdt</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_dxdt_tmp_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">std::list</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_k_x_tmp_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_m_dxdt</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_m_dxdt_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_m_dxdt_new_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_m_xerr</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_m_xerr_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_m_xnew</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_m_xnew_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">resize_x_err</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">rk_algorithm_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">rosenbrock4</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">rosenbrock4_controller</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">rosenbrock4_dense_output</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">rosenbrock_coefficients</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">runge_kutta4</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">runge_kutta4_classic</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">runge_kutta_cash_karp54</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">runge_kutta_cash_karp54_classic</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">runge_kutta_fehlberg78</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_55"></a><span class="term">S</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">same_size</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">std::list</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">same_size_impl</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">std::list</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Self expanding lattices</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/self_expanding_lattices.html" title="Self expanding lattices"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/self_expanding_lattices.html" title="Self expanding lattices"><span class="index-entry-level-1">index</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/self_expanding_lattices.html" title="Self expanding lattices"><span class="index-entry-level-1">state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">set_steps</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Short Example</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/short_example.html" title="Short Example"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/short_example.html" title="Short Example"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/short_example.html" title="Short Example"><span class="index-entry-level-1">f</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/short_example.html" title="Short Example"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/short_example.html" title="Short Example"><span class="index-entry-level-1">stepper</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Simple Symplectic System</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/simple_symplectic_system.html" title="Simple Symplectic System"><span class="index-entry-level-1">equations</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">snippet</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents"><span class="index-entry-level-1">Chaotic systems and Lyapunov exponents</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">solve</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">State Algebra Operations</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/state_algebra_operations.html" title="State Algebra Operations"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/state_algebra_operations.html" title="State Algebra Operations"><span class="index-entry-level-1">example</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">State types, algebras and operations</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html" title="State types, algebras and operations"><span class="index-entry-level-1">example</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">state_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.boost_ublas" title="Boost.Ublas"><span class="index-entry-level-1">Boost.Ublas</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html" title="Chaotic systems and Lyapunov exponents"><span class="index-entry-level-1">Chaotic systems and Lyapunov exponents</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/complex_state_types.html" title="Complex state types"><span class="index-entry-level-1">Complex state types</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">Custom steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.define_the_ode" title="Define the ODE"><span class="index-entry-level-1">Define the ODE</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains" title="Large oscillator chains"><span class="index-entry-level-1">Large oscillator chains</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.phase_oscillator_ensemble" title="Phase oscillator ensemble"><span class="index-entry-level-1">Phase oscillator ensemble</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/self_expanding_lattices.html" title="Self expanding lattices"><span class="index-entry-level-1">Self expanding lattices</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/short_example.html" title="Short Example"><span class="index-entry-level-1">Short Example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">std::list</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_arbitrary_precision_floating_point_types.html" title="Using arbitrary precision floating point types"><span class="index-entry-level-1">Using arbitrary precision floating point types</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_boost__units.html" title="Using boost::units"><span class="index-entry-level-1">Using boost::units</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_matrices_as_state_types.html" title="Using matrices as state types"><span class="index-entry-level-1">Using matrices as state types</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_opencl_via_vexcl.html" title="Using OpenCL via VexCL"><span class="index-entry-level-1">Using OpenCL via VexCL</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">state_wrapper</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">state_wrapper_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">std::list</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">is_resizeable</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">resize</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">resize_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">same_size</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">same_size_impl</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">stepper</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/short_example.html" title="Short Example"><span class="index-entry-level-1">Short Example</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Stepper Algorithms</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/overview.html#boost_numeric_odeint.getting_started.overview.stepper_algorithms" title="Table 1.1. Stepper Algorithms"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/overview.html#boost_numeric_odeint.getting_started.overview.stepper_algorithms" title="Table 1.1. Stepper Algorithms"><span class="index-entry-level-1">remark</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Stepper Types</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/harmonic_oscillator.html#boost_numeric_odeint.tutorial.harmonic_oscillator.stepper_types" title="Stepper Types"><span class="index-entry-level-1">example</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Steppers</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html" title="Steppers"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html" title="Steppers"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html" title="Steppers"><span class="index-entry-level-1">sys</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">stepper_base_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">stepper_category</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">Custom steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_stepp_idp21295584.html" title="Struct base_tag<stepper_tag>"><span class="index-entry-level-1">Struct base_tag<stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/error_stepper_tag.html" title="Struct error_stepper_tag"><span class="index-entry-level-1">Struct error_stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/stepper_tag.html" title="Struct stepper_tag"><span class="index-entry-level-1">Struct stepper_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">stepper_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/complex_state_types.html" title="Complex state types"><span class="index-entry-level-1">Complex state types</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.define_the_system_function" title="Define the system function"><span class="index-entry-level-1">Define the system function</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/lattice_systems.html" title="Lattice systems"><span class="index-entry-level-1">Lattice systems</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.parameter_studies" title="Parameter studies"><span class="index-entry-level-1">Parameter studies</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.phase_oscillator_ensemble" title="Phase oscillator ensemble"><span class="index-entry-level-1">Phase oscillator ensemble</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_boost__units.html" title="Using boost::units"><span class="index-entry-level-1">Using boost::units</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">step_storage</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">step_storage_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Stiff systems</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/stiff_systems.html" title="Stiff systems"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/stiff_systems.html" title="Stiff systems"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/stiff_systems.html" title="Stiff systems"><span class="index-entry-level-1">f</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/stiff_systems.html" title="Stiff systems"><span class="index-entry-level-1">matrix_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct base_tag<controlled_stepper_tag></span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_contr_idp21299152.html" title="Struct base_tag<controlled_stepper_tag>"><span class="index-entry-level-1">base_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_contr_idp21299152.html" title="Struct base_tag<controlled_stepper_tag>"><span class="index-entry-level-1">controlled_stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_contr_idp21299152.html" title="Struct base_tag<controlled_stepper_tag>"><span class="index-entry-level-1">type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct base_tag<dense_output_stepper_tag></span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_dense_idp21301904.html" title="Struct base_tag<dense_output_stepper_tag>"><span class="index-entry-level-1">base_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_dense_idp21301904.html" title="Struct base_tag<dense_output_stepper_tag>"><span class="index-entry-level-1">dense_output_stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_dense_idp21301904.html" title="Struct base_tag<dense_output_stepper_tag>"><span class="index-entry-level-1">type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct base_tag<error_stepper_tag></span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_error_idp21296464.html" title="Struct base_tag<error_stepper_tag>"><span class="index-entry-level-1">base_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_error_idp21296464.html" title="Struct base_tag<error_stepper_tag>"><span class="index-entry-level-1">error_stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_error_idp21296464.html" title="Struct base_tag<error_stepper_tag>"><span class="index-entry-level-1">type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct base_tag<explicit_controlled_stepper_fsal_tag></span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21300976.html" title="Struct base_tag<explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">base_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21300976.html" title="Struct base_tag<explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">explicit_controlled_stepper_fsal_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21300976.html" title="Struct base_tag<explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct base_tag<explicit_controlled_stepper_tag></span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21300064.html" title="Struct base_tag<explicit_controlled_stepper_tag>"><span class="index-entry-level-1">base_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21300064.html" title="Struct base_tag<explicit_controlled_stepper_tag>"><span class="index-entry-level-1">explicit_controlled_stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21300064.html" title="Struct base_tag<explicit_controlled_stepper_tag>"><span class="index-entry-level-1">type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct base_tag<explicit_error_stepper_fsal_tag></span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21298256.html" title="Struct base_tag<explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">base_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21298256.html" title="Struct base_tag<explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">explicit_error_stepper_fsal_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21298256.html" title="Struct base_tag<explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct base_tag<explicit_error_stepper_tag></span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21297360.html" title="Struct base_tag<explicit_error_stepper_tag>"><span class="index-entry-level-1">base_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21297360.html" title="Struct base_tag<explicit_error_stepper_tag>"><span class="index-entry-level-1">explicit_error_stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21297360.html" title="Struct base_tag<explicit_error_stepper_tag>"><span class="index-entry-level-1">type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct base_tag<stepper_tag></span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_stepp_idp21295584.html" title="Struct base_tag<stepper_tag>"><span class="index-entry-level-1">base_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_stepp_idp21295584.html" title="Struct base_tag<stepper_tag>"><span class="index-entry-level-1">stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_stepp_idp21295584.html" title="Struct base_tag<stepper_tag>"><span class="index-entry-level-1">type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct controlled_stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_stepper_tag.html" title="Struct controlled_stepper_tag"><span class="index-entry-level-1">controlled_stepper_tag</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct dense_output_stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_stepper_tag.html" title="Struct dense_output_stepper_tag"><span class="index-entry-level-1">dense_output_stepper_tag</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct error_stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/error_stepper_tag.html" title="Struct error_stepper_tag"><span class="index-entry-level-1">error_stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/error_stepper_tag.html" title="Struct error_stepper_tag"><span class="index-entry-level-1">stepper_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct explicit_controlled_stepper_fsal_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_contr_idp21294240.html" title="Struct explicit_controlled_stepper_fsal_tag"><span class="index-entry-level-1">controlled_stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_contr_idp21294240.html" title="Struct explicit_controlled_stepper_fsal_tag"><span class="index-entry-level-1">explicit_controlled_stepper_fsal_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct explicit_controlled_stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_contr_idp21293728.html" title="Struct explicit_controlled_stepper_tag"><span class="index-entry-level-1">controlled_stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_contr_idp21293728.html" title="Struct explicit_controlled_stepper_tag"><span class="index-entry-level-1">explicit_controlled_stepper_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct explicit_error_stepper_fsal_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp21293008.html" title="Struct explicit_error_stepper_fsal_tag"><span class="index-entry-level-1">error_stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp21293008.html" title="Struct explicit_error_stepper_fsal_tag"><span class="index-entry-level-1">explicit_error_stepper_fsal_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct explicit_error_stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_stepper_tag.html" title="Struct explicit_error_stepper_tag"><span class="index-entry-level-1">error_stepper_tag</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_stepper_tag.html" title="Struct explicit_error_stepper_tag"><span class="index-entry-level-1">explicit_error_stepper_tag</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct null_observer</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/null_observer.html" title="Struct null_observer"><span class="index-entry-level-1">null_observer</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct stepper_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/stepper_tag.html" title="Struct stepper_tag"><span class="index-entry-level-1">stepper_tag</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct template base_tag</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag.html" title="Struct template base_tag"><span class="index-entry-level-1">base_tag</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Struct template default_rosenbrock_coefficients</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_rosenb_idp20694128.html" title="Struct template default_rosenbrock_coefficients"><span class="index-entry-level-1">default_rosenbrock_coefficients</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_rosenb_idp20694128.html" title="Struct template default_rosenbrock_coefficients"><span class="index-entry-level-1">order_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_rosenb_idp20694128.html" title="Struct template default_rosenbrock_coefficients"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Symplectic solvers</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.symplectic_solvers" title="Symplectic solvers"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.symplectic_solvers" title="Symplectic solvers"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.symplectic_solvers" title="Symplectic solvers"><span class="index-entry-level-1">f</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Symplectic System</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/symplectic_system.html" title="Symplectic System"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/symplectic_system.html" title="Symplectic System"><span class="index-entry-level-1">f</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">symplectic_euler</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">Class template symplectic_euler</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">symplectic_nystroem_stepper_base</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">Class template symplectic_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_m4_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_mclachlan</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">symplectic_rkn_sb3a_m4_mclachlan</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_m4_mclachlan</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">symplectic_rkn_sb3a_mclachlan</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_mclachlan</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">sys</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.large_oscillator_chains" title="Large oscillator chains"><span class="index-entry-level-1">Large oscillator chains</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html" title="Steppers"><span class="index-entry-level-1">Steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">System</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/concepts/system.html" title="System"><span class="index-entry-level-1">f</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">system</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.parameter_studies" title="Parameter studies"><span class="index-entry-level-1">Parameter studies</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_56"></a><span class="term">T</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">time_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">Custom steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_boost__units.html" title="Using boost::units"><span class="index-entry-level-1">Using boost::units</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">toggle_current_state</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">try_step</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">try_step_v1</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.boost_ublas" title="Boost.Ublas"><span class="index-entry-level-1">Boost.Ublas</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/generation_functions.html" title="Generation functions"><span class="index-entry-level-1">Generation functions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.std__list" title="std::list"><span class="index-entry-level-1">std::list</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_contr_idp21299152.html" title="Struct base_tag<controlled_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<controlled_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_dense_idp21301904.html" title="Struct base_tag<dense_output_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<dense_output_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_error_idp21296464.html" title="Struct base_tag<error_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21300976.html" title="Struct base_tag<explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21300064.html" title="Struct base_tag<explicit_controlled_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_controlled_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21298256.html" title="Struct base_tag<explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_expli_idp21297360.html" title="Struct base_tag<explicit_error_stepper_tag>"><span class="index-entry-level-1">Struct base_tag<explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/base_tag_stepp_idp21295584.html" title="Struct base_tag<stepper_tag>"><span class="index-entry-level-1">Struct base_tag<stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.using_the_container_interface" title="Using the container interface"><span class="index-entry-level-1">Using the container interface</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_57"></a><span class="term">U</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Usage, Compilation, Headers</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/usage__compilation__headers.html" title="Usage, Compilation, Headers"><span class="index-entry-level-1">links</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/usage__compilation__headers.html" title="Usage, Compilation, Headers"><span class="index-entry-level-1">path</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/getting_started/usage__compilation__headers.html" title="Usage, Compilation, Headers"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Using arbitrary precision floating point types</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_arbitrary_precision_floating_point_types.html" title="Using arbitrary precision floating point types"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_arbitrary_precision_floating_point_types.html" title="Using arbitrary precision floating point types"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_arbitrary_precision_floating_point_types.html" title="Using arbitrary precision floating point types"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_arbitrary_precision_floating_point_types.html" title="Using arbitrary precision floating point types"><span class="index-entry-level-1">value_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Using boost::range</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/using_boost__range.html" title="Using boost::range"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/using_boost__range.html" title="Using boost::range"><span class="index-entry-level-1">initialize</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Using boost::ref</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/using_boost__ref.html" title="Using boost::ref"><span class="index-entry-level-1">example</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Using boost::units</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_boost__units.html" title="Using boost::units"><span class="index-entry-level-1">deriv_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_boost__units.html" title="Using boost::units"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_boost__units.html" title="Using boost::units"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_boost__units.html" title="Using boost::units"><span class="index-entry-level-1">state_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_boost__units.html" title="Using boost::units"><span class="index-entry-level-1">stepper_type</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_boost__units.html" title="Using boost::units"><span class="index-entry-level-1">time_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Using CUDA (or OpenMP, TBB, ...) via Thrust</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html" title="Using CUDA (or OpenMP, TBB, ...) via Thrust"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html" title="Using CUDA (or OpenMP, TBB, ...) via Thrust"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html" title="Using CUDA (or OpenMP, TBB, ...) via Thrust"><span class="index-entry-level-1">graphics</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Using matrices as state types</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_matrices_as_state_types.html" title="Using matrices as state types"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_matrices_as_state_types.html" title="Using matrices as state types"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_matrices_as_state_types.html" title="Using matrices as state types"><span class="index-entry-level-1">state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Using OpenCL via VexCL</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_opencl_via_vexcl.html" title="Using OpenCL via VexCL"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_opencl_via_vexcl.html" title="Using OpenCL via VexCL"><span class="index-entry-level-1">integrate_const</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_opencl_via_vexcl.html" title="Using OpenCL via VexCL"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_opencl_via_vexcl.html" title="Using OpenCL via VexCL"><span class="index-entry-level-1">state_type</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Using steppers</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.using_steppers" title="Using steppers"><span class="index-entry-level-1">equations</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.using_steppers" title="Using steppers"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.using_steppers" title="Using steppers"><span class="index-entry-level-1">initialize</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.using_steppers" title="Using steppers"><span class="index-entry-level-1">pre-conditions</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">Using the container interface</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.using_the_container_interface" title="Using the container interface"><span class="index-entry-level-1">example</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.using_the_container_interface" title="Using the container interface"><span class="index-entry-level-1">is_resizeable</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing.using_the_container_interface" title="Using the container interface"><span class="index-entry-level-1">type</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_58"></a><span class="term">V</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">value_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer.html" title="Class template bulirsch_stoer"><span class="index-entry-level-1">Class template bulirsch_stoer</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/bulirsch_stoer_dense_out.html" title="Class template bulirsch_stoer_dense_out"><span class="index-entry-level-1">Class template bulirsch_stoer_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20285920.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/controlled_run_idp20221056.html" title="Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag>"><span class="index-entry-level-1">Class template controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_error_checker.html" title="Class template default_error_checker"><span class="index-entry-level-1">Class template default_error_checker</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/euler.html" title="Class template euler"><span class="index-entry-level-1">Class template euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19750672.html" title="Class template explicit_error_stepper_base"><span class="index-entry-level-1">Class template explicit_error_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_idp19850144.html" title="Class template explicit_error_stepper_fsal_base"><span class="index-entry-level-1">Class template explicit_error_stepper_fsal_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_stepper_base.html" title="Class template explicit_stepper_base"><span class="index-entry-level-1">Class template explicit_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4.html" title="Class template runge_kutta4"><span class="index-entry-level-1">Class template runge_kutta4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta4_classic.html" title="Class template runge_kutta4_classic"><span class="index-entry-level-1">Class template runge_kutta4_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_cash_karp54.html" title="Class template runge_kutta_cash_karp54"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_ca_idp20976880.html" title="Class template runge_kutta_cash_karp54_classic"><span class="index-entry-level-1">Class template runge_kutta_cash_karp54_classic</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_dopri5.html" title="Class template runge_kutta_dopri5"><span class="index-entry-level-1">Class template runge_kutta_dopri5</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/runge_kutta_fehlberg78.html" title="Class template runge_kutta_fehlberg78"><span class="index-entry-level-1">Class template runge_kutta_fehlberg78</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_euler.html" title="Class template symplectic_euler"><span class="index-entry-level-1">Class template symplectic_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21344416.html" title="Class template symplectic_rkn_sb3a_m4_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_m4_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_rkn_idp21385536.html" title="Class template symplectic_rkn_sb3a_mclachlan"><span class="index-entry-level-1">Class template symplectic_rkn_sb3a_mclachlan</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_steppers" title="Custom steppers"><span class="index-entry-level-1">Custom steppers</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/solar_system.html#boost_numeric_odeint.tutorial.solar_system.define_the_system_function" title="Define the system function"><span class="index-entry-level-1">Define the system function</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.gsl_vector" title="GSL Vector"><span class="index-entry-level-1">GSL Vector</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html#boost_numeric_odeint.tutorial.using_cuda__or_openmp__tbb_______via_thrust.phase_oscillator_ensemble" title="Phase oscillator ensemble"><span class="index-entry-level-1">Phase oscillator ensemble</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/default_rosenb_idp20694128.html" title="Struct template default_rosenbrock_coefficients"><span class="index-entry-level-1">Struct template default_rosenbrock_coefficients</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/tutorial/using_arbitrary_precision_floating_point_types.html" title="Using arbitrary precision floating point types"><span class="index-entry-level-1">Using arbitrary precision floating point types</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">vector_space_reduce</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.algebras_and_operations.point_type" title="Point type"><span class="index-entry-level-1">Point type</span></a></p></li></ul></div> +</li> +</ul></div></dd> +<dt> +<a name="idx_id_59"></a><span class="term">W</span> +</dt> +<dd><div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">wrapped_coor_deriv_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">wrapped_deriv_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">wrapped_matrix_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">wrapped_momentum_deriv_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/symplectic_nys_idp20023936.html" title="Class template symplectic_nystroem_stepper_base"><span class="index-entry-level-1">Class template symplectic_nystroem_stepper_base</span></a></p></li></ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">wrapped_pmatrix_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +</ul></div> +</li> +<li class="listitem" style="list-style-type: none"> +<p><span class="index-entry-level-0">wrapped_state_type</span></p> +<div class="index"><ul class="index" style="list-style-type: none; "> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth.html" title="Class template adams_bashforth"><span class="index-entry-level-1">Class template adams_bashforth</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_bashforth_moulton.html" title="Class template adams_bashforth_moulton"><span class="index-entry-level-1">Class template adams_bashforth_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/adams_moulton.html" title="Class template adams_moulton"><span class="index-entry-level-1">Class template adams_moulton</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20378576.html" title="Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/dense_output_r_idp20346736.html" title="Class template dense_output_runge_kutta<Stepper, stepper_tag>"><span class="index-entry-level-1">Class template dense_output_runge_kutta<Stepper, stepper_tag></span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_error_generic_rk.html" title="Class template explicit_error_generic_rk"><span class="index-entry-level-1">Class template explicit_error_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/explicit_generic_rk.html" title="Class template explicit_generic_rk"><span class="index-entry-level-1">Class template explicit_generic_rk</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/implicit_euler.html" title="Class template implicit_euler"><span class="index-entry-level-1">Class template implicit_euler</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpoint.html" title="Class template modified_midpoint"><span class="index-entry-level-1">Class template modified_midpoint</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/modified_midpo_idp20675728.html" title="Class template modified_midpoint_dense_out"><span class="index-entry-level-1">Class template modified_midpoint_dense_out</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4.html" title="Class template rosenbrock4"><span class="index-entry-level-1">Class template rosenbrock4</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_controller.html" title="Class template rosenbrock4_controller"><span class="index-entry-level-1">Class template rosenbrock4_controller</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost/numeric/odeint/rosenbrock4_dense_output.html" title="Class template rosenbrock4_dense_output"><span class="index-entry-level-1">Class template rosenbrock4_dense_output</span></a></p></li> +<li class="listitem" style="list-style-type: none"><p><a class="link" href="../../boost_numeric_odeint/odeint_in_detail/steppers.html#boost_numeric_odeint.odeint_in_detail.steppers.custom_runge_kutta_steppers" title="Custom Runge-Kutta steppers"><span class="index-entry-level-1">Custom Runge-Kutta steppers</span></a></p></li> +</ul></div> +</li> +</ul></div></dd> +</dl></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="s02.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/odeint_reference.html b/libs/numeric/odeint/doc/html/odeint_reference.html new file mode 100644 index 000000000..0233f5276 --- /dev/null +++ b/libs/numeric/odeint/doc/html/odeint_reference.html @@ -0,0 +1,83 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>odeint Reference</title> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="up" href="index.html" title="Chapter 1. Boost.Numeric.Odeint"> +<link rel="prev" href="boost_numeric_odeint/acknowledgments.html" title="Acknowledgments"> +<link rel="next" href="header/boost/numeric/odeint/integrate/integrate_hpp.html" title="Header <boost/numeric/odeint/integrate/integrate.hpp>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="logo.jpg"></td> +<td align="center"><a href="../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="boost_numeric_odeint/acknowledgments.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="header/boost/numeric/odeint/integrate/integrate_hpp.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h2 class="title" style="clear: both"> +<a name="odeint_reference"></a>odeint Reference</h2></div></div></div> +<div class="toc"><dl class="toc"> +<dt><span class="section"><a href="header/boost/numeric/odeint/integrate/integrate_hpp.html">Header <boost/numeric/odeint/integrate/integrate.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html">Header <boost/numeric/odeint/integrate/integrate_adaptive.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/integrate/integrate_const_hpp.html">Header <boost/numeric/odeint/integrate/integrate_const.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html">Header <boost/numeric/odeint/integrate/integrate_n_steps.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/integrate/integrate_times_hpp.html">Header <boost/numeric/odeint/integrate/integrate_times.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/integrate/null_observer_hpp.html">Header <boost/numeric/odeint/integrate/null_observer.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/integrate/observer_collection_hpp.html">Header <boost/numeric/odeint/integrate/observer_collection.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/adams_bashforth_hpp.html">Header <boost/numeric/odeint/stepper/adams_bashforth.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/adams_bashforth_moulton_hpp.html">Header <boost/numeric/odeint/stepper/adams_bashforth_moulton.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/adams_moulton_hpp.html">Header <boost/numeric/odeint/stepper/adams_moulton.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/base/algebra_stepper_base_hpp.html">Header <boost/numeric/odeint/stepper/base/algebra_stepper_base.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/base/explicit_error_stepper_base_hpp.html">Header <boost/numeric/odeint/stepper/base/explicit_error_stepper_base.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base_hpp.html">Header <boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/base/explicit_stepper_base_hpp.html">Header <boost/numeric/odeint/stepper/base/explicit_stepper_base.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base_hpp.html">Header <boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/bulirsch_stoer_hpp.html">Header <boost/numeric/odeint/stepper/bulirsch_stoer.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out_hpp.html">Header <boost/numeric/odeint/stepper/bulirsch_stoer_dense_out.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html">Header <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/controlled_step_result_hpp.html">Header <boost/numeric/odeint/stepper/controlled_step_result.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html">Header <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/euler_hpp.html">Header <boost/numeric/odeint/stepper/euler.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/explicit_error_generic_rk_hpp.html">Header <boost/numeric/odeint/stepper/explicit_error_generic_rk.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/explicit_generic_rk_hpp.html">Header <boost/numeric/odeint/stepper/explicit_generic_rk.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/implicit_euler_hpp.html">Header <boost/numeric/odeint/stepper/implicit_euler.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html">Header <boost/numeric/odeint/stepper/modified_midpoint.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html">Header <boost/numeric/odeint/stepper/rosenbrock4.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/rosenbrock4_controller_hpp.html">Header <boost/numeric/odeint/stepper/rosenbrock4_controller.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/rosenbrock4_dense_output_hpp.html">Header <boost/numeric/odeint/stepper/rosenbrock4_dense_output.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/runge_kutta4_hpp.html">Header <boost/numeric/odeint/stepper/runge_kutta4.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/runge_kutta4_classic_hpp.html">Header <boost/numeric/odeint/stepper/runge_kutta4_classic.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_hpp.html">Header <boost/numeric/odeint/stepper/runge_kutta_cash_karp54.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic_hpp.html">Header <boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/runge_kutta_dopri5_hpp.html">Header <boost/numeric/odeint/stepper/runge_kutta_dopri5.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/runge_kutta_fehlberg78_hpp.html">Header <boost/numeric/odeint/stepper/runge_kutta_fehlberg78.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/stepper_categories_hpp.html">Header <boost/numeric/odeint/stepper/stepper_categories.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/symplectic_euler_hpp.html">Header <boost/numeric/odeint/stepper/symplectic_euler.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan_hpp.html">Header <boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan.hpp></a></span></dt> +<dt><span class="section"><a href="header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan_hpp.html">Header <boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan.hpp></a></span></dt> +</dl></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2009-2012 Karsten + Ahnert and Mario Mulansky<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="boost_numeric_odeint/acknowledgments.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="header/boost/numeric/odeint/integrate/integrate_hpp.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/numeric/odeint/doc/html/phase_lattice_2d_0000.jpg b/libs/numeric/odeint/doc/html/phase_lattice_2d_0000.jpg Binary files differnew file mode 100644 index 000000000..f98703eb9 --- /dev/null +++ b/libs/numeric/odeint/doc/html/phase_lattice_2d_0000.jpg diff --git a/libs/numeric/odeint/doc/html/phase_lattice_2d_0100.jpg b/libs/numeric/odeint/doc/html/phase_lattice_2d_0100.jpg Binary files differnew file mode 100644 index 000000000..786283935 --- /dev/null +++ b/libs/numeric/odeint/doc/html/phase_lattice_2d_0100.jpg diff --git a/libs/numeric/odeint/doc/html/phase_lattice_2d_1000.jpg b/libs/numeric/odeint/doc/html/phase_lattice_2d_1000.jpg Binary files differnew file mode 100644 index 000000000..e0ee037c7 --- /dev/null +++ b/libs/numeric/odeint/doc/html/phase_lattice_2d_1000.jpg diff --git a/libs/numeric/odeint/doc/html/solar_system.jpg b/libs/numeric/odeint/doc/html/solar_system.jpg Binary files differnew file mode 100644 index 000000000..b89c3b3de --- /dev/null +++ b/libs/numeric/odeint/doc/html/solar_system.jpg diff --git a/libs/numeric/odeint/doc/html/standalone_HTML.manifest b/libs/numeric/odeint/doc/html/standalone_HTML.manifest new file mode 100644 index 000000000..400756742 --- /dev/null +++ b/libs/numeric/odeint/doc/html/standalone_HTML.manifest @@ -0,0 +1,145 @@ +index.html +boost_numeric_odeint/getting_started.html +boost_numeric_odeint/getting_started/overview.html +boost_numeric_odeint/getting_started/usage__compilation__headers.html +boost_numeric_odeint/getting_started/short_example.html +boost_numeric_odeint/tutorial.html +boost_numeric_odeint/tutorial/harmonic_oscillator.html +boost_numeric_odeint/tutorial/solar_system.html +boost_numeric_odeint/tutorial/chaotic_systems_and_lyapunov_exponents.html +boost_numeric_odeint/tutorial/stiff_systems.html +boost_numeric_odeint/tutorial/complex_state_types.html +boost_numeric_odeint/tutorial/lattice_systems.html +boost_numeric_odeint/tutorial/ensembles_of_oscillators.html +boost_numeric_odeint/tutorial/using_boost__units.html +boost_numeric_odeint/tutorial/using_matrices_as_state_types.html +boost_numeric_odeint/tutorial/using_arbitrary_precision_floating_point_types.html +boost_numeric_odeint/tutorial/self_expanding_lattices.html +boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html +boost_numeric_odeint/tutorial/using_opencl_via_vexcl.html +boost_numeric_odeint/tutorial/all_examples.html +boost_numeric_odeint/odeint_in_detail.html +boost_numeric_odeint/odeint_in_detail/steppers.html +boost_numeric_odeint/odeint_in_detail/generation_functions.html +boost_numeric_odeint/odeint_in_detail/integrate_functions.html +boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html +boost_numeric_odeint/odeint_in_detail/using_boost__ref.html +boost_numeric_odeint/odeint_in_detail/using_boost__range.html +boost_numeric_odeint/odeint_in_detail/binding_member_functions.html +boost_numeric_odeint/concepts.html +boost_numeric_odeint/concepts/system.html +boost_numeric_odeint/concepts/symplectic_system.html +boost_numeric_odeint/concepts/simple_symplectic_system.html +boost_numeric_odeint/concepts/implicit_system.html +boost_numeric_odeint/concepts/stepper.html +boost_numeric_odeint/concepts/error_stepper.html +boost_numeric_odeint/concepts/controlled_stepper.html +boost_numeric_odeint/concepts/dense_output_stepper.html +boost_numeric_odeint/concepts/state_algebra_operations.html +boost_numeric_odeint/concepts/state_wrapper.html +boost_numeric_odeint/literature.html +boost_numeric_odeint/acknowledgments.html +odeint_reference.html +header/boost/numeric/odeint/integrate/integrate_hpp.html +boost/numeric/odeint/integrate_idp10099280.html +boost/numeric/odeint/integrate_idp19514032.html +header/boost/numeric/odeint/integrate/integrate_adaptive_hpp.html +boost/numeric/odeint/integrate_adap_idp19520144.html +header/boost/numeric/odeint/integrate/integrate_const_hpp.html +boost/numeric/odeint/integrate_cons_idp19540240.html +header/boost/numeric/odeint/integrate/integrate_n_steps_hpp.html +boost/numeric/odeint/integrate_n_st_idp19559904.html +header/boost/numeric/odeint/integrate/integrate_times_hpp.html +boost/numeric/odeint/integrate_time_idp19579536.html +header/boost/numeric/odeint/integrate/null_observer_hpp.html +boost/numeric/odeint/null_observer.html +header/boost/numeric/odeint/integrate/observer_collection_hpp.html +boost/numeric/odeint/observer_collection.html +header/boost/numeric/odeint/stepper/adams_bashforth_hpp.html +boost/numeric/odeint/adams_bashforth.html +header/boost/numeric/odeint/stepper/adams_bashforth_moulton_hpp.html +boost/numeric/odeint/adams_bashforth_moulton.html +header/boost/numeric/odeint/stepper/adams_moulton_hpp.html +boost/numeric/odeint/adams_moulton.html +header/boost/numeric/odeint/stepper/base/algebra_stepper_base_hpp.html +boost/numeric/odeint/algebra_stepper_base.html +header/boost/numeric/odeint/stepper/base/explicit_error_stepper_base_hpp.html +boost/numeric/odeint/explicit_error_idp19750672.html +header/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base_hpp.html +boost/numeric/odeint/explicit_error_idp19850144.html +header/boost/numeric/odeint/stepper/base/explicit_stepper_base_hpp.html +boost/numeric/odeint/explicit_stepper_base.html +header/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base_hpp.html +boost/numeric/odeint/symplectic_nys_idp20023936.html +header/boost/numeric/odeint/stepper/bulirsch_stoer_hpp.html +boost/numeric/odeint/bulirsch_stoer.html +header/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out_hpp.html +boost/numeric/odeint/bulirsch_stoer_dense_out.html +header/boost/numeric/odeint/stepper/controlled_runge_kutta_hpp.html +boost/numeric/odeint/default_error_checker.html +boost/numeric/odeint/controlled_runge_kutta.html +boost/numeric/odeint/controlled_run_idp20221056.html +boost/numeric/odeint/controlled_run_idp20285920.html +header/boost/numeric/odeint/stepper/controlled_step_result_hpp.html +header/boost/numeric/odeint/stepper/dense_output_runge_kutta_hpp.html +boost/numeric/odeint/dense_output_runge_kutta.html +boost/numeric/odeint/dense_output_r_idp20346736.html +boost/numeric/odeint/dense_output_r_idp20378576.html +header/boost/numeric/odeint/stepper/euler_hpp.html +boost/numeric/odeint/euler.html +header/boost/numeric/odeint/stepper/explicit_error_generic_rk_hpp.html +boost/numeric/odeint/explicit_error_generic_rk.html +header/boost/numeric/odeint/stepper/explicit_generic_rk_hpp.html +boost/numeric/odeint/explicit_generic_rk.html +header/boost/numeric/odeint/stepper/implicit_euler_hpp.html +boost/numeric/odeint/implicit_euler.html +header/boost/numeric/odeint/stepper/modified_midpoint_hpp.html +boost/numeric/odeint/modified_midpoint.html +boost/numeric/odeint/modified_midpo_idp20675728.html +header/boost/numeric/odeint/stepper/rosenbrock4_hpp.html +boost/numeric/odeint/default_rosenb_idp20694128.html +boost/numeric/odeint/rosenbrock4.html +header/boost/numeric/odeint/stepper/rosenbrock4_controller_hpp.html +boost/numeric/odeint/rosenbrock4_controller.html +header/boost/numeric/odeint/stepper/rosenbrock4_dense_output_hpp.html +boost/numeric/odeint/rosenbrock4_dense_output.html +header/boost/numeric/odeint/stepper/runge_kutta4_hpp.html +boost/numeric/odeint/runge_kutta4.html +header/boost/numeric/odeint/stepper/runge_kutta4_classic_hpp.html +boost/numeric/odeint/runge_kutta4_classic.html +header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_hpp.html +boost/numeric/odeint/runge_kutta_cash_karp54.html +header/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic_hpp.html +boost/numeric/odeint/runge_kutta_ca_idp20976880.html +header/boost/numeric/odeint/stepper/runge_kutta_dopri5_hpp.html +boost/numeric/odeint/runge_kutta_dopri5.html +header/boost/numeric/odeint/stepper/runge_kutta_fehlberg78_hpp.html +boost/numeric/odeint/runge_kutta_fehlberg78.html +header/boost/numeric/odeint/stepper/stepper_categories_hpp.html +boost/numeric/odeint/stepper_tag.html +boost/numeric/odeint/error_stepper_tag.html +boost/numeric/odeint/explicit_error_stepper_tag.html +boost/numeric/odeint/explicit_error_idp21293008.html +boost/numeric/odeint/controlled_stepper_tag.html +boost/numeric/odeint/explicit_contr_idp21293728.html +boost/numeric/odeint/explicit_contr_idp21294240.html +boost/numeric/odeint/dense_output_stepper_tag.html +boost/numeric/odeint/base_tag.html +boost/numeric/odeint/base_tag_stepp_idp21295584.html +boost/numeric/odeint/base_tag_error_idp21296464.html +boost/numeric/odeint/base_tag_expli_idp21297360.html +boost/numeric/odeint/base_tag_expli_idp21298256.html +boost/numeric/odeint/base_tag_contr_idp21299152.html +boost/numeric/odeint/base_tag_expli_idp21300064.html +boost/numeric/odeint/base_tag_expli_idp21300976.html +boost/numeric/odeint/base_tag_dense_idp21301904.html +header/boost/numeric/odeint/stepper/symplectic_euler_hpp.html +boost/numeric/odeint/symplectic_euler.html +header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan_hpp.html +boost/numeric/odeint/symplectic_rkn_idp21344416.html +header/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan_hpp.html +boost/numeric/odeint/symplectic_rkn_idp21385536.html +odeint/indexes.html +odeint/indexes/s01.html +odeint/indexes/s02.html +odeint/indexes/s03.html |