Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r64927 - in sandbox/odeint/branches/karsten: boost/numeric boost/numeric/odeint/algebra boost/numeric/odeint/stepper libs/numeric/odeint/test
From: karsten.ahnert_at_[hidden]
Date: 2010-08-19 11:59:03


Author: karsten
Date: 2010-08-19 11:59:01 EDT (Thu, 19 Aug 2010)
New Revision: 64927
URL: http://svn.boost.org/trac/boost/changeset/64927

Log:
* changing the in-place stepping to in- and out-place stepping
* introducing the dopri5 method
Added:
   sandbox/odeint/branches/karsten/boost/numeric/odeint/stepper/explicit_error_dopri5.hpp (contents, props changed)
Text files modified:
   sandbox/odeint/branches/karsten/boost/numeric/odeint.hpp | 1
   sandbox/odeint/branches/karsten/boost/numeric/odeint/algebra/standard_operations.hpp | 29 -----------------
   sandbox/odeint/branches/karsten/boost/numeric/odeint/stepper/explicit_error_rk54_ck.hpp | 23 ++++++--------
   sandbox/odeint/branches/karsten/boost/numeric/odeint/stepper/explicit_stepper_base.hpp | 65 ++++++++++++++++++++++++++++++++--------
   sandbox/odeint/branches/karsten/libs/numeric/odeint/test/check_stepper_concepts.cpp | 48 ++++++++++++++--------------
   5 files changed, 87 insertions(+), 79 deletions(-)

Modified: sandbox/odeint/branches/karsten/boost/numeric/odeint.hpp
==============================================================================
--- sandbox/odeint/branches/karsten/boost/numeric/odeint.hpp (original)
+++ sandbox/odeint/branches/karsten/boost/numeric/odeint.hpp 2010-08-19 11:59:01 EDT (Thu, 19 Aug 2010)
@@ -21,6 +21,7 @@
 #include <boost/numeric/odeint/stepper/explicit_rk4.hpp>
 
 #include <boost/numeric/odeint/stepper/explicit_error_rk54_ck.hpp>
+#include <boost/numeric/odeint/stepper/explicit_error_dopri5.hpp>
 
 #include <boost/numeric/odeint/stepper/controlled_error_stepper.hpp>
 

Modified: sandbox/odeint/branches/karsten/boost/numeric/odeint/algebra/standard_operations.hpp
==============================================================================
--- sandbox/odeint/branches/karsten/boost/numeric/odeint/algebra/standard_operations.hpp (original)
+++ sandbox/odeint/branches/karsten/boost/numeric/odeint/algebra/standard_operations.hpp 2010-08-19 11:59:01 EDT (Thu, 19 Aug 2010)
@@ -28,35 +28,6 @@
 {
         typedef Time time_type;
 
-// struct increment1
-// {
-// time_type m_dt;
-//
-// increment1( time_type dt ) : m_dt( dt ) { }
-//
-// template< class T1 , class T2 >
-// void operator()( T1 &t1 , const T2 &t2 ) const
-// {
-// t1 += m_dt * t2;
-// }
-// };
-//
-//
-// struct increment4
-// {
-// time_type m_alpha1 , m_alpha2 , m_alpha3 , m_alpha4;
-//
-// increment4( time_type alpha1 , time_type alpha2 , time_type alpha3 , time_type alpha4 )
-// : m_alpha1( alpha1 ) , m_alpha2( alpha2 ) , m_alpha3( alpha3 ) , m_alpha4( alpha4 ) { }
-//
-// template< class T1 , class T2 , class T3 , class T4 , class T5 >
-// void operator()( T1 &t1 , const T2 &t2 , const T3 &t3 , const T4 &t4 , const T5 &t5 )
-// {
-// t1 += m_alpha1 * t2 + m_alpha2 * t3 + m_alpha3 * t4 + m_alpha4 * t5;
-// }
-// };
-
-
         struct scale_sum2
         {
                 time_type m_alpha1;

Added: sandbox/odeint/branches/karsten/boost/numeric/odeint/stepper/explicit_error_dopri5.hpp
==============================================================================
--- (empty file)
+++ sandbox/odeint/branches/karsten/boost/numeric/odeint/stepper/explicit_error_dopri5.hpp 2010-08-19 11:59:01 EDT (Thu, 19 Aug 2010)
@@ -0,0 +1,106 @@
+/*
+ boost header: boost_numeric_odeint/explicit_error_dopri5.hpp
+
+ Copyright 2009 Karsten Ahnert
+ Copyright 2009 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_BOOST_NUMERIC_ODEINT_STEPPER_EXPLICIT_ERROR_DOPRI5_HPP_INCLUDED
+#define BOOST_BOOST_NUMERIC_ODEINT_STEPPER_EXPLICIT_ERROR_DOPRI5_HPP_INCLUDED
+
+#include <boost/numeric/odeint/algebra/standard_algebra.hpp>
+#include <boost/numeric/odeint/algebra/standard_operations.hpp>
+#include <boost/numeric/odeint/algebra/standard_resize.hpp>
+
+#include <boost/numeric/odeint/stepper/explicit_stepper_base.hpp>
+#include <boost/numeric/odeint/stepper/detail/macros.hpp>
+
+namespace boost {
+namespace numeric {
+namespace odeint {
+
+/*
+ * ToDo: Check orders rk_ckc
+ */
+template<
+ class State ,
+ class Time = double ,
+ class Algebra = standard_algebra< State > ,
+ class Operations = standard_operations< Time > ,
+ class AdjustSizePolicy = adjust_size_initially_tag
+ >
+class explicit_error_dopri5
+: public explicit_error_stepper_base<
+ explicit_error_dopri5< State , Time , Algebra , Operations , AdjustSizePolicy > ,
+ 5 , 4 , State , Time , Algebra , Operations , AdjustSizePolicy >
+{
+
+public :
+
+ BOOST_ODEINT_EXPLICIT_ERROR_STEPPERS_TYPEDEFS( explicit_error_dopri5 , 5 , 4 );
+
+ explicit_error_dopri5( void )
+ : m_size_adjuster() , m_x1() , m_x2() , m_x3() , m_x4() , m_x5() , m_x6()
+ {
+ boost::numeric::odeint::construct( m_x1 );
+ boost::numeric::odeint::construct( m_x2 );
+ boost::numeric::odeint::construct( m_x3 );
+ boost::numeric::odeint::construct( m_x4 );
+ boost::numeric::odeint::construct( m_x5 );
+ boost::numeric::odeint::construct( m_x6 );
+ m_size_adjuster.register_state( 0 , m_x1 );
+ m_size_adjuster.register_state( 1 , m_x2 );
+ m_size_adjuster.register_state( 2 , m_x3 );
+ m_size_adjuster.register_state( 3 , m_x4 );
+ m_size_adjuster.register_state( 4 , m_x5 );
+ m_size_adjuster.register_state( 5 , m_x6 );
+ }
+
+ ~explicit_error_dopri5( void )
+ {
+ boost::numeric::odeint::destruct( m_x1 );
+ boost::numeric::odeint::destruct( m_x2 );
+ boost::numeric::odeint::destruct( m_x3 );
+ boost::numeric::odeint::destruct( m_x4 );
+ boost::numeric::odeint::destruct( m_x5 );
+ boost::numeric::odeint::destruct( m_x6 );
+ }
+
+
+ template< class System >
+ void do_step_impl( System system , const state_type &in , const state_type &dxdt , state_type &out , time_type t , time_type dt , state_type &xerr )
+ {
+ }
+
+
+
+ template< class System >
+ void do_step_impl( System system , const state_type &in , const state_type &dxdt , state_type &out , time_type t , time_type dt )
+ {
+ }
+
+
+ void adjust_size( const state_type &x )
+ {
+ m_size_adjuster.adjust_size( x );
+ stepper_base_type::adjust_size( x );
+ }
+
+
+private:
+
+ size_adjuster< state_type , 6 > m_size_adjuster;
+ state_type m_x1, m_x2, m_x3, m_x4, m_x5, m_x6;
+
+};
+
+
+} // odeint
+} // numeric
+} // boost
+
+#endif //BOOST_BOOST_NUMERIC_ODEINT_STEPPER_EXPLICIT_ERROR_DOPRI5_HPP_INCLUDED

Modified: sandbox/odeint/branches/karsten/boost/numeric/odeint/stepper/explicit_error_rk54_ck.hpp
==============================================================================
--- sandbox/odeint/branches/karsten/boost/numeric/odeint/stepper/explicit_error_rk54_ck.hpp (original)
+++ sandbox/odeint/branches/karsten/boost/numeric/odeint/stepper/explicit_error_rk54_ck.hpp 2010-08-19 11:59:01 EDT (Thu, 19 Aug 2010)
@@ -77,7 +77,7 @@
 
 
         template< class System >
- void do_step_impl( System system , state_type &x , const state_type &dxdt , time_type t , time_type dt , state_type &xerr )
+ void do_step_impl( System system , const state_type &in , const state_type &dxdt , state_type &out , time_type t , time_type dt , state_type &xerr )
         {
 
                 const time_type c1 = static_cast<time_type> ( 37.0 ) / static_cast<time_type>( 378.0 );
@@ -91,7 +91,7 @@
                 const time_type dc5 = static_cast<time_type> ( -277.0 ) / static_cast<time_type>( 14336.0 );
                 const time_type dc6 = c6 - static_cast<time_type> ( 0.25 );
 
- do_step_impl( system , x , dxdt , t , dt );
+ do_step_impl( system , in , dxdt , out , t , dt );
 
                 //error estimate
                 algebra_type::for_each6( xerr , dxdt , m_x3 , m_x4 , m_x5 , m_x6 ,
@@ -102,10 +102,10 @@
 
 
         template< class System >
- void do_step_impl( System system , state_type &x , const state_type &dxdt , time_type t , time_type dt )
+ void do_step_impl( System system , const state_type &in , const state_type &dxdt , state_type &out , time_type t , time_type dt )
         {
                 /* ToDo: separate resize m_dxdt and m_x1..6 */
- m_size_adjuster.adjust_size_by_policy( x , adjust_size_policy() );
+ m_size_adjuster.adjust_size_by_policy( in , adjust_size_policy() );
 
                 const time_type a2 = static_cast<time_type> ( 0.2 );
                 const time_type a3 = static_cast<time_type> ( 0.3 );
@@ -135,32 +135,29 @@
                 const time_type c6 = static_cast<time_type> ( 512.0 ) / static_cast<time_type>( 1771.0 );
 
                 //m_x1 = x + dt*b21*dxdt
- algebra_type::for_each3( m_x1 , x , dxdt ,
+ algebra_type::for_each3( m_x1 , in , dxdt ,
                                         typename operations_type::scale_sum2( 1.0 , dt*b21 ) );
 
                 system( m_x1 , m_x2 , t + dt*a2 );
                 // m_x1 = x + dt*b31*dxdt + dt*b32*m_x2
- algebra_type::for_each4( m_x1 , x , dxdt , m_x2 ,
+ algebra_type::for_each4( m_x1 , in , dxdt , m_x2 ,
                                         typename operations_type::scale_sum3( 1.0 , dt*b31 , dt*b32 ));
 
                 system( m_x1 , m_x3 , t + dt*a3 );
                 // m_x1 = x + dt * (b41*dxdt + b42*m_x2 + b43*m_x3)
- algebra_type::for_each5( m_x1 , x , dxdt , m_x2 , m_x3 ,
+ algebra_type::for_each5( m_x1 , in , dxdt , m_x2 , m_x3 ,
                                         typename operations_type::scale_sum4( 1.0 , dt*b41 , dt*b42 , dt*b43 ));
 
                 system( m_x1, m_x4 , t + dt*a4 );
- algebra_type::for_each6( m_x1 , x , dxdt , m_x2 , m_x3 , m_x4 ,
+ algebra_type::for_each6( m_x1 , in , dxdt , m_x2 , m_x3 , m_x4 ,
                                         typename operations_type::scale_sum5( 1.0 , dt*b51 , dt*b52 , dt*b53 , dt*b54 ));
 
                 system( m_x1 , m_x5 , t + dt*a5 );
- algebra_type::for_each7( m_x1 , x , dxdt , m_x2 , m_x3 , m_x4 , m_x5 ,
+ algebra_type::for_each7( m_x1 , in , dxdt , m_x2 , m_x3 , m_x4 , m_x5 ,
                                                         typename operations_type::scale_sum6( 1.0 , dt*b61 , dt*b62 , dt*b63 , dt*b64 , dt*b65 ));
 
- /*
- * ToDo: use increment5
- */
                 system( m_x1 , m_x6 , t + dt*a6 );
- algebra_type::for_each6( x , x , dxdt , m_x3 , m_x4 , m_x6 ,
+ algebra_type::for_each6( out , in , dxdt , m_x3 , m_x4 , m_x6 ,
                                         typename operations_type::scale_sum5( 1.0 , dt*c1 , dt*c3 , dt*c4 , dt*c6 ));
 
         }

Modified: sandbox/odeint/branches/karsten/boost/numeric/odeint/stepper/explicit_stepper_base.hpp
==============================================================================
--- sandbox/odeint/branches/karsten/boost/numeric/odeint/stepper/explicit_stepper_base.hpp (original)
+++ sandbox/odeint/branches/karsten/boost/numeric/odeint/stepper/explicit_stepper_base.hpp 2010-08-19 11:59:01 EDT (Thu, 19 Aug 2010)
@@ -189,19 +189,32 @@
 
 
         template< class System >
- void do_step( System system , state_type &x , time_type t , time_type dt , state_type &xerr )
+ void do_step( System &system , state_type &x , time_type t , time_type dt , state_type &xerr )
         {
                 m_size_adjuster.adjust_size_by_policy( x , adjust_size_policy() );
                 system( x , m_dxdt ,t );
- this->stepper().do_step_impl( system , x , m_dxdt , t , dt , xerr );
+ this->stepper().do_step_impl( system , x , m_dxdt , x , t , dt , xerr );
         }
 
         template< class System >
- void do_step( System system , state_type &x , const state_type &dxdt , time_type t , time_type dt , state_type &xerr )
+ void do_step( System &system , state_type &x , const state_type &dxdt , time_type t , time_type dt , state_type &xerr )
         {
- this->stepper().do_step_impl( system , x , dxdt , t , dt , xerr );
+ this->stepper().do_step_impl( system , x , dxdt , x , t , dt , xerr );
         }
 
+ template< class System >
+ void do_step( System &system , const state_type &in , state_type &out , time_type t , time_type dt , state_type &xerr )
+ {
+ m_size_adjuster.adjust_size_by_policy( in , adjust_size_policy() );
+ system( in , m_dxdt ,t );
+ this->stepper().do_step_impl( system , in , m_dxdt , out , t , dt , xerr );
+ }
+
+ template< class System >
+ void do_step( System &system , const state_type &in , const state_type &dxdt , state_type &out , time_type t , time_type dt , state_type &xerr )
+ {
+ this->stepper().do_step_impl( system , in , dxdt , out , t , dt , xerr );
+ }
 
 
         void adjust_size( const state_type &x )
@@ -288,36 +301,62 @@
 
 
         template< class System >
- void do_step( System system , state_type &x , time_type t , time_type dt )
+ void do_step( System &system , state_type &x , time_type t , time_type dt )
         {
                 m_size_adjuster.adjust_size_by_policy( x , adjust_size_policy() );
                 system( x , m_dxdt ,t );
- this->stepper().do_step_impl( system , x , m_dxdt , t , dt );
+ this->stepper().do_step_impl( system , x , m_dxdt , x , t , dt );
         }
 
         template< class System >
- void do_step( System system , state_type &x , const state_type &dxdt , time_type t , time_type dt )
+ void do_step( System &system , state_type &x , const state_type &dxdt , time_type t , time_type dt )
         {
- this->stepper().do_step_impl( system , x , dxdt , t , dt );
+ this->stepper().do_step_impl( system , x , dxdt , x , t , dt );
         }
 
+ template< class System >
+ void do_step( System &system , const state_type &in , state_type &out , time_type t , time_type dt )
+ {
+ m_size_adjuster.adjust_size_by_policy( in , adjust_size_policy() );
+ system( in , m_dxdt ,t );
+ this->stepper().do_step_impl( system , in , m_dxdt , out , t , dt );
+ }
 
         template< class System >
- void do_step( System system , state_type &x , time_type t , time_type dt , state_type &xerr )
+ void do_step( System &system , const state_type &in , const state_type &dxdt , state_type &out , time_type t , time_type dt )
+ {
+ this->stepper().do_step_impl( system , in , dxdt , out , t , dt );
+ }
+
+
+
+ template< class System >
+ void do_step( System &system , state_type &x , time_type t , time_type dt , state_type &xerr )
         {
                 m_size_adjuster.adjust_size_by_policy( x , adjust_size_policy() );
                 system( x , m_dxdt ,t );
- this->stepper().do_step_impl( system , x , m_dxdt , t , dt , xerr );
+ this->stepper().do_step_impl( system , x , m_dxdt , x , t , dt , xerr );
         }
 
-
         template< class System >
- void do_step( System system , state_type &x , const state_type &dxdt , time_type t , time_type dt , state_type &xerr )
+ void do_step( System &system , state_type &x , const state_type &dxdt , time_type t , time_type dt , state_type &xerr )
         {
- this->stepper().do_step_impl( system , x , dxdt , t , dt , xerr );
+ this->stepper().do_step_impl( system , x , dxdt , x , t , dt , xerr );
         }
 
+ template< class System >
+ void do_step( System &system , state_type &in , state_type &out , time_type t , time_type dt , state_type &xerr )
+ {
+ m_size_adjuster.adjust_size_by_policy( in , adjust_size_policy() );
+ system( in , m_dxdt ,t );
+ this->stepper().do_step_impl( system , in , m_dxdt , out , t , dt , xerr );
+ }
 
+ template< class System >
+ void do_step( System &system , state_type &in , const state_type &dxdt , state_type &out , time_type t , time_type dt , state_type &xerr )
+ {
+ this->stepper().do_step_impl( system , in , dxdt , out , t , dt , xerr );
+ }
 
         void adjust_size( const state_type &x )
         {

Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/test/check_stepper_concepts.cpp
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/test/check_stepper_concepts.cpp (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/test/check_stepper_concepts.cpp 2010-08-19 11:59:01 EDT (Thu, 19 Aug 2010)
@@ -109,10 +109,10 @@
 {
         void operator()( void )
         {
- vector_type x( 1 , 0.0 );
+ vector_type x( 1 , 2.0 );
                 Stepper stepper;
                 check_stepper_concept( stepper , constant_system1 , x );
- BOOST_CHECK_SMALL( fabs( x[0] - 0.1 ) , eps );
+ BOOST_CHECK_SMALL( fabs( x[0] - 2.1 ) , eps );
         }
 };
 
@@ -122,10 +122,10 @@
         void operator()( void ) const
         {
                 gsl_vector_type *x = gsl_vector_alloc( 1 );
- gsl_vector_set( x , 0 , 0.0 );
+ gsl_vector_set( x , 0 , 2.0 );
                 Stepper stepper;
                 check_stepper_concept( stepper , constant_system2 , *x );
- BOOST_CHECK_SMALL( fabs( gsl_vector_get( x , 0 ) - 0.1 ) , eps );
+ BOOST_CHECK_SMALL( fabs( gsl_vector_get( x , 0 ) - 2.1 ) , eps );
                 gsl_vector_free( x );
         }
 };
@@ -136,10 +136,10 @@
         void operator()( void ) const
         {
                 vector_space_type x;
- x.m_x = 0.0;
+ x.m_x = 2.0;
                 Stepper stepper;
                 check_stepper_concept( stepper , constant_system3 , x );
- BOOST_CHECK_SMALL( fabs( x.m_x - 0.1 ) , eps );
+ BOOST_CHECK_SMALL( fabs( x.m_x - 2.1 ) , eps );
         }
 };
 
@@ -149,10 +149,10 @@
         void operator()( void )
         {
                 array_type x;
- x[0] = 0.0;
+ x[0] = 2.0;
                 Stepper stepper;
                 check_stepper_concept( stepper , constant_system4 , x );
- BOOST_CHECK_SMALL( fabs( x[0] - 0.1 ) , eps );
+ BOOST_CHECK_SMALL( fabs( x[0] - 2.1 ) , eps );
         }
 };
 
@@ -205,10 +205,10 @@
 {
         void operator()( void )
         {
- vector_type x( 1 , 0.0 ) , xerr( 1 );
+ vector_type x( 1 , 2.0 ) , xerr( 1 );
                 Stepper stepper;
                 check_error_stepper_concept( stepper , constant_system1 , x , xerr );
- BOOST_CHECK_SMALL( fabs( x[0] - 0.1 ) , eps );
+ BOOST_CHECK_SMALL( fabs( x[0] - 2.1 ) , eps );
         }
 };
 
@@ -218,10 +218,10 @@
         void operator()( void ) const
         {
                 gsl_vector_type *x = gsl_vector_alloc( 1 ) , *xerr = gsl_vector_alloc( 1 );
- gsl_vector_set( x , 0 , 0.0 );
+ gsl_vector_set( x , 0 , 2.0 );
                 Stepper stepper;
                 check_error_stepper_concept( stepper , constant_system2 , *x , *xerr );
- BOOST_CHECK_SMALL( fabs( gsl_vector_get( x , 0 ) - 0.1 ) , eps );
+ BOOST_CHECK_SMALL( fabs( gsl_vector_get( x , 0 ) - 2.1 ) , eps );
                 gsl_vector_free( x ); gsl_vector_free( xerr );
         }
 };
@@ -232,10 +232,10 @@
         void operator()( void ) const
         {
                 vector_space_type x , xerr;
- x.m_x = 0.0;
+ x.m_x = 2.0;
                 Stepper stepper;
                 check_error_stepper_concept( stepper , constant_system3 , x , xerr );
- BOOST_CHECK_SMALL( fabs( x.m_x - 0.1 ) , eps );
+ BOOST_CHECK_SMALL( fabs( x.m_x - 2.1 ) , eps );
         }
 };
 
@@ -245,10 +245,10 @@
         void operator()( void )
         {
                 array_type x , xerr;
- x[0] = 0.0;
+ x[0] = 2.0;
                 Stepper stepper;
                 check_error_stepper_concept( stepper , constant_system4 , x , xerr );
- BOOST_CHECK_SMALL( fabs( x[0] - 0.1 ) , eps );
+ BOOST_CHECK_SMALL( fabs( x[0] - 2.1 ) , eps );
         }
 };
 
@@ -295,12 +295,12 @@
 {
         void operator()( void )
         {
- vector_type x( 1 , 0.0 );
+ vector_type x( 1 , 2.0 );
                 typename ControlledStepper::error_stepper_type error_stepper;
                 error_checker_standard< typename ControlledStepper::state_type , typename ControlledStepper::time_type > error_checker;
                 ControlledStepper controlled_stepper( error_stepper , error_checker );
                 check_controlled_stepper_concept( controlled_stepper , constant_system1 , x );
- //BOOST_CHECK_SMALL( fabs( x[0] - 0.1 ) , eps );
+ BOOST_CHECK_SMALL( fabs( x[0] - 2.1 ) , eps );
         }
 };
 
@@ -310,12 +310,12 @@
         void operator()( void ) const
         {
                 gsl_vector_type *x = gsl_vector_alloc( 1 );
- gsl_vector_set( x , 0 , 0.0 );
+ gsl_vector_set( x , 0 , 2.0 );
                 typename ControlledStepper::error_stepper_type error_stepper;
                 error_checker_standard< typename ControlledStepper::state_type , typename ControlledStepper::time_type > error_checker;
                 ControlledStepper controlled_stepper( error_stepper , error_checker );
                 check_controlled_stepper_concept( controlled_stepper , constant_system2 , *x );
- //BOOST_CHECK_SMALL( fabs( gsl_vector_get( x , 0 ) - 0.1 ) , eps );
+ BOOST_CHECK_SMALL( fabs( gsl_vector_get( x , 0 ) - 2.1 ) , eps );
                 gsl_vector_free( x );
         }
 };
@@ -326,12 +326,12 @@
         void operator()( void ) const
         {
                 vector_space_type x;
- x.m_x = 0.0;
+ x.m_x = 2.0;
                 typename ControlledStepper::error_stepper_type error_stepper;
                 error_checker_standard< typename ControlledStepper::state_type , typename ControlledStepper::time_type , vector_space_algebra > error_checker;
                 ControlledStepper controlled_stepper( error_stepper , error_checker );
                 check_controlled_stepper_concept( controlled_stepper , constant_system3 , x );
- //BOOST_CHECK_SMALL( fabs( x.m_x - 0.1 ) , eps );
+ BOOST_CHECK_SMALL( fabs( x.m_x - 2.1 ) , eps );
         }
 };
 
@@ -341,12 +341,12 @@
         void operator()( void )
         {
                 array_type x;
- x[0] = 0.0;
+ x[0] = 2.0;
                 typename ControlledStepper::error_stepper_type error_stepper;
                 error_checker_standard< typename ControlledStepper::state_type , typename ControlledStepper::time_type > error_checker;
                 ControlledStepper controlled_stepper( error_stepper , error_checker );
                 check_controlled_stepper_concept( controlled_stepper , constant_system4 , x );
- //BOOST_CHECK_SMALL( fabs( x[0] - 0.1 ) , eps );
+ BOOST_CHECK_SMALL( fabs( x[0] - 2.1 ) , eps );
         }
 };
 


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk