summaryrefslogtreecommitdiff
path: root/boost/numeric/odeint/stepper/generation/make_controlled.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/numeric/odeint/stepper/generation/make_controlled.hpp')
-rw-r--r--boost/numeric/odeint/stepper/generation/make_controlled.hpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/boost/numeric/odeint/stepper/generation/make_controlled.hpp b/boost/numeric/odeint/stepper/generation/make_controlled.hpp
index 603978fec8..61bc8f1920 100644
--- a/boost/numeric/odeint/stepper/generation/make_controlled.hpp
+++ b/boost/numeric/odeint/stepper/generation/make_controlled.hpp
@@ -43,6 +43,15 @@ struct controller_factory
{
return Controller( abs_error , rel_error , stepper );
}
+
+ Controller operator()(
+ typename Stepper::value_type abs_error ,
+ typename Stepper::value_type rel_error ,
+ typename Stepper::time_type max_dt ,
+ const Stepper &stepper )
+ {
+ return Controller( abs_error , rel_error , max_dt, stepper );
+ }
};
@@ -72,6 +81,19 @@ typename result_of::make_controlled< Stepper >::type make_controlled(
}
+template< class Stepper >
+typename result_of::make_controlled< Stepper >::type make_controlled(
+ typename Stepper::value_type abs_error ,
+ typename Stepper::value_type rel_error ,
+ typename Stepper::time_type max_dt ,
+ const Stepper & stepper = Stepper() )
+{
+ typedef Stepper stepper_type;
+ typedef typename result_of::make_controlled< stepper_type >::type controller_type;
+ typedef controller_factory< stepper_type , controller_type > factory_type;
+ factory_type factory;
+ return factory( abs_error , rel_error , max_dt, stepper );
+}
} // odeint
} // numeric