summaryrefslogtreecommitdiff
path: root/boost/numeric/odeint/stepper/generation/make_dense_output.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/numeric/odeint/stepper/generation/make_dense_output.hpp')
-rw-r--r--boost/numeric/odeint/stepper/generation/make_dense_output.hpp78
1 files changed, 78 insertions, 0 deletions
diff --git a/boost/numeric/odeint/stepper/generation/make_dense_output.hpp b/boost/numeric/odeint/stepper/generation/make_dense_output.hpp
new file mode 100644
index 0000000000..a28e31b5d2
--- /dev/null
+++ b/boost/numeric/odeint/stepper/generation/make_dense_output.hpp
@@ -0,0 +1,78 @@
+/*
+ [auto_generated]
+ boost/numeric/odeint/stepper/generation/make_dense_output.hpp
+
+ [begin_description]
+ Factory function to simplify the creation of dense output steppers from error steppers.
+ [end_description]
+
+ Copyright 2011-2012 Karsten Ahnert
+ Copyright 2011-2012 Mario Mulansky
+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or
+ copy at http://www.boost.org/LICENSE_1_0.txt)
+ */
+
+
+#ifndef BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_MAKE_DENSE_OUTPUT_HPP_INCLUDED
+#define BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_MAKE_DENSE_OUTPUT_HPP_INCLUDED
+
+namespace boost {
+namespace numeric {
+namespace odeint {
+
+
+// default template for the dense output
+template< class Stepper > struct get_dense_output { };
+
+
+
+// default dense output factory
+template< class Stepper , class DenseOutput >
+struct dense_output_factory
+{
+ DenseOutput operator()(
+ typename Stepper::value_type abs_error ,
+ typename Stepper::value_type rel_error ,
+ const Stepper &stepper )
+ {
+ return DenseOutput( abs_error , rel_error , stepper );
+ }
+};
+
+
+
+namespace result_of
+{
+ template< class Stepper >
+ struct make_dense_output
+ {
+ typedef typename get_dense_output< Stepper >::type type;
+ };
+}
+
+
+
+template< class Stepper >
+typename result_of::make_dense_output< Stepper >::type make_dense_output(
+ typename Stepper::value_type abs_error ,
+ typename Stepper::value_type rel_error ,
+ const Stepper &stepper = Stepper() )
+{
+ typedef Stepper stepper_type;
+ typedef typename result_of::make_dense_output< stepper_type >::type dense_output_type;
+ typedef dense_output_factory< stepper_type , dense_output_type > factory_type;
+ factory_type factory;
+ return factory( abs_error , rel_error , stepper );
+}
+
+
+
+
+} // odeint
+} // numeric
+} // boost
+
+
+#endif // BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_MAKE_DENSE_OUTPUT_HPP_INCLUDED