mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			123 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
 [auto_generated]
 | 
						|
 libs/numeric/odeint/test/dummy_steppers.hpp
 | 
						|
 | 
						|
 [begin_description]
 | 
						|
 Dummy steppers for several tests.
 | 
						|
 [end_description]
 | 
						|
 | 
						|
 Copyright 2012 Karsten Ahnert
 | 
						|
 Copyright 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_LIBS_NUMERIC_ODEINT_TEST_DUMMY_STEPPER_HPP_INCLUDED
 | 
						|
#define BOOST_LIBS_NUMERIC_ODEINT_TEST_DUMMY_STEPPER_HPP_INCLUDED
 | 
						|
 | 
						|
#include <boost/array.hpp>
 | 
						|
#include <boost/numeric/odeint/stepper/stepper_categories.hpp>
 | 
						|
#include <boost/numeric/odeint/stepper/controlled_step_result.hpp>
 | 
						|
 | 
						|
namespace boost {
 | 
						|
namespace numeric {
 | 
						|
namespace odeint {
 | 
						|
 | 
						|
struct dummy_stepper
 | 
						|
{
 | 
						|
    typedef double value_type;
 | 
						|
    typedef value_type time_type;
 | 
						|
    typedef boost::array< value_type , 1 > state_type;
 | 
						|
    typedef state_type deriv_type;
 | 
						|
    typedef unsigned short order_type;
 | 
						|
    typedef stepper_tag stepper_category;
 | 
						|
 | 
						|
    order_type order( void ) const { return 1; }
 | 
						|
 | 
						|
    template< class System >
 | 
						|
    void do_step( System sys , state_type &x , time_type t , time_type dt ) const
 | 
						|
    {
 | 
						|
        x[0] += 0.25;
 | 
						|
    }
 | 
						|
};
 | 
						|
 | 
						|
struct dummy_dense_output_stepper
 | 
						|
{
 | 
						|
    typedef double value_type;
 | 
						|
    typedef value_type time_type;
 | 
						|
    typedef boost::array< value_type , 1 > state_type;
 | 
						|
    typedef state_type deriv_type;
 | 
						|
    typedef dense_output_stepper_tag stepper_category;
 | 
						|
 | 
						|
    void initialize( const state_type &x0 , time_type t0 , time_type dt0 )
 | 
						|
    {
 | 
						|
        m_x = x0;
 | 
						|
        m_t = t0;
 | 
						|
        m_dt = dt0;
 | 
						|
    }
 | 
						|
 | 
						|
    template< class System >
 | 
						|
    std::pair< time_type , time_type > do_step( System sys )
 | 
						|
    {
 | 
						|
        m_x[0] += 0.25;
 | 
						|
        m_t += m_dt;
 | 
						|
        return std::make_pair( m_t - m_dt , m_t );
 | 
						|
    }
 | 
						|
 | 
						|
    void calc_state( time_type t_inter , state_type &x ) const
 | 
						|
    {
 | 
						|
        value_type theta = ( m_t - t_inter ) / m_dt;
 | 
						|
        x[0] = m_x[0] - 0.25 * theta;
 | 
						|
        
 | 
						|
    }
 | 
						|
 | 
						|
    const time_type& current_time( void ) const
 | 
						|
    {
 | 
						|
        return m_t;
 | 
						|
    }
 | 
						|
 | 
						|
    const state_type& current_state( void ) const
 | 
						|
    {
 | 
						|
        return m_x;
 | 
						|
    }
 | 
						|
 | 
						|
    const time_type& current_time_step( void ) const
 | 
						|
    {
 | 
						|
        return m_dt;
 | 
						|
    }
 | 
						|
 | 
						|
    state_type m_x;
 | 
						|
    time_type m_t;
 | 
						|
    time_type m_dt;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
struct dummy_controlled_stepper
 | 
						|
{
 | 
						|
    typedef double value_type;
 | 
						|
    typedef value_type time_type;
 | 
						|
    typedef boost::array< value_type , 1 > state_type;
 | 
						|
    typedef state_type deriv_type;
 | 
						|
    typedef controlled_stepper_tag stepper_category;
 | 
						|
 | 
						|
    template< class Sys >
 | 
						|
    controlled_step_result try_step( Sys sys , state_type &x , time_type &t , time_type &dt ) const
 | 
						|
    {
 | 
						|
        x[0] += 0.25;
 | 
						|
        t += dt;
 | 
						|
        return success;
 | 
						|
    }
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
} // odeint
 | 
						|
} // numeric
 | 
						|
} // boost
 | 
						|
 | 
						|
 | 
						|
#endif // BOOST_LIBS_NUMERIC_ODEINT_TEST_DUMMY_STEPPER_HPP_INCLUDED
 |