Merge branch 'develop' of github.com:boostorg/odeint into develop

This commit is contained in:
Mario Mulansky 2019-04-20 11:56:36 -07:00
commit 2bbc186b43
7 changed files with 22 additions and 12 deletions

3
.gitmodules vendored
View File

@ -1,3 +0,0 @@
[submodule "doc"]
path = doc
url = git@github.com:headmyshoulder/odeint-v2.git

View File

@ -141,8 +141,10 @@ public:
struct transform_functor : public std::unary_function< size_t , size_t >
struct transform_functor
{
typedef size_t argument_type;
typedef size_t result_type;
hash_vector const* m_index;
transform_functor( hash_vector const& index ) : m_index( &index ) { }
size_t operator()( size_t i ) const { return (*m_index)[i]; }

View File

@ -30,7 +30,7 @@ namespace odeint {
/*
* This class template has to be overload in order to call vector_space_algebra::norm_inf
*/
template< class State > struct vector_space_norm_inf;
template< class State, class Enabler = void > struct vector_space_norm_inf;
/*
* Example: instantiation for sole doubles and complex

View File

@ -69,7 +69,7 @@ public:
if( m_steps++ >= m_max_steps )
{
char error_msg[200];
sprintf(error_msg, "Max number of iterations exceeded (%d).", m_max_steps);
std::sprintf(error_msg, "Max number of iterations exceeded (%d).", m_max_steps);
BOOST_THROW_EXCEPTION( no_progress_error(error_msg) );
}
}
@ -101,7 +101,7 @@ public:
if( m_steps++ >= m_max_steps )
{
char error_msg[200];
sprintf(error_msg, "Max number of iterations exceeded (%d). A new step size was not found.", m_max_steps);
std::sprintf(error_msg, "Max number of iterations exceeded (%d). A new step size was not found.", m_max_steps);
BOOST_THROW_EXCEPTION( step_adjustment_error(error_msg) );
}
}
@ -111,4 +111,4 @@ public:
} // namespace numeric
} // namespace boost
#endif
#endif

View File

@ -30,6 +30,8 @@
#include <boost/numeric/ublas/vector.hpp>
#include <boost/format.hpp>
using namespace boost::unit_test;
using namespace boost::numeric::odeint;
namespace mpl = boost::mpl;

View File

@ -24,7 +24,7 @@ project
test-suite "odeint"
:
[ run regression_147.cpp ]
[ compile regression_149.cpp : <cxxflags>-std=c++0x ]
[ compile regression_149.cpp ]
[ run regression_168.cpp ]
[ run regression_189.cpp ]
: <testing.launcher>valgrind

View File

@ -52,11 +52,20 @@ struct perform_test
bulirsch_stoer< state_type > stepper( 1e-9, 0.0, 0.0, 0.0 );
state_type x( 3, 10.0 );
auto iter = boost::find_if(
print( boost::find_if(
make_adaptive_time_range( stepper, rhs, x, 0.0, 1.0, 0.01 ),
[]( const std::pair< const state_type &, double > &x )
{ return ( x.first[0] < 0.0 ); } );
pred ) );
}
static bool pred( const std::pair< const state_type &, double > &x )
{
return ( x.first[0] < 0.0 );
}
template<class Iterator>
void print( Iterator iter )
{
std::cout << iter->second << "\t" << iter->first[0] << "\t"
<< iter->first[1] << "\t" << iter->first[2] << "\n";
}