diff options
Diffstat (limited to 'boost/numeric/odeint/stepper/runge_kutta4_classic.hpp')
-rw-r--r-- | boost/numeric/odeint/stepper/runge_kutta4_classic.hpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/boost/numeric/odeint/stepper/runge_kutta4_classic.hpp b/boost/numeric/odeint/stepper/runge_kutta4_classic.hpp index 2b8e70b166..32bda0bd7f 100644 --- a/boost/numeric/odeint/stepper/runge_kutta4_classic.hpp +++ b/boost/numeric/odeint/stepper/runge_kutta4_classic.hpp @@ -121,11 +121,20 @@ public : // dt * m_dxh = k4 sys( m_x_tmp.m_v , m_dxh.m_v , t + dt ); + //x += dt/6 * ( m_dxdt + m_dxt + val2*m_dxm ) time_type dt6 = dt / static_cast< value_type >( 6 ); time_type dt3 = dt / static_cast< value_type >( 3 ); stepper_base_type::m_algebra.for_each6( out , in , dxdt , m_dxt.m_v , m_dxm.m_v , m_dxh.m_v , - typename operations_type::template scale_sum5< value_type , time_type , time_type , time_type , time_type >( 1.0 , dt6 , dt3 , dt3 , dt6 ) ); + typename operations_type::template scale_sum5< value_type , time_type , time_type , time_type , time_type >( 1.0 , dt6 , dt3 , dt3 , dt6 ) ); + + // x += dt/6 * m_dxdt + dt/3 * m_dxt ) + // stepper_base_type::m_algebra.for_each4( out , in , dxdt , m_dxt.m_v , + // typename operations_type::template scale_sum3< value_type , time_type , time_type >( 1.0 , dt6 , dt3 ) ); + // // x += dt/3 * m_dxm + dt/6 * m_dxh ) + // stepper_base_type::m_algebra.for_each4( out , out , m_dxm.m_v , m_dxh.m_v , + // typename operations_type::template scale_sum3< value_type , time_type , time_type >( 1.0 , dt3 , dt6 ) ); + } template< class StateType > |