diff options
Diffstat (limited to 'libs/numeric/odeint/test_external')
11 files changed, 134 insertions, 26 deletions
diff --git a/libs/numeric/odeint/test_external/eigen/Jamfile.v2 b/libs/numeric/odeint/test_external/eigen/Jamfile.v2 index 47b3a8811..489f67ce4 100644 --- a/libs/numeric/odeint/test_external/eigen/Jamfile.v2 +++ b/libs/numeric/odeint/test_external/eigen/Jamfile.v2 @@ -17,10 +17,9 @@ project : requirements <library>/boost/test//boost_unit_test_framework <define>BOOST_ALL_NO_LIB=1 - <include>../../../../.. <include>$(EIGEN_ROOT) + <include>../../test <link>static - <toolset>clang:<cxxflags>-Wno-unused-variable # <cxxflags>-D_SCL_SECURE_NO_WARNINGS ; @@ -31,5 +30,7 @@ test-suite "odeint" [ run resize.cpp ] [ run runge_kutta4.cpp ] [ run runge_kutta_dopri5.cpp ] + [ run integrate.cpp ] + [ compile-fail fail_integrate.cpp ] : <testing.launcher>valgrind ; diff --git a/libs/numeric/odeint/test_external/eigen/fail_integrate.cpp b/libs/numeric/odeint/test_external/eigen/fail_integrate.cpp new file mode 100644 index 000000000..4c71b0186 --- /dev/null +++ b/libs/numeric/odeint/test_external/eigen/fail_integrate.cpp @@ -0,0 +1,47 @@ +/* + [auto_generated] + fail_integrate.cpp + + [begin_description] + tba. + [end_description] + + Copyright 2009-2012 Karsten Ahnert + Copyright 2009-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) + */ + +#include <boost/config.hpp> +#ifdef BOOST_MSVC + #pragma warning(disable:4996) +#endif + +#define BOOST_TEST_MODULE odeint_dummy + +#include <boost/numeric/odeint/integrate/integrate.hpp> +#include <boost/numeric/odeint/external/eigen/eigen.hpp> + +#include <boost/test/unit_test.hpp> + +#include "dummy_odes.hpp" + +using namespace boost::unit_test; +using namespace boost::numeric::odeint; + + +BOOST_AUTO_TEST_SUITE( eigen_fail_integrate ) + +BOOST_AUTO_TEST_CASE( test ) +{ + typedef Eigen::Matrix< double , 1 , 1 > state_type; + state_type x; + x[0] = 10.0; + double t_start = 0.0 , t_end = 1.0 , dt = 0.1; + integrate( constant_system_functor_standard() , x , t_start , t_end , dt ); +} + +BOOST_AUTO_TEST_SUITE_END() + diff --git a/libs/numeric/odeint/test_external/eigen/integrate.cpp b/libs/numeric/odeint/test_external/eigen/integrate.cpp new file mode 100644 index 000000000..c64496a83 --- /dev/null +++ b/libs/numeric/odeint/test_external/eigen/integrate.cpp @@ -0,0 +1,69 @@ +/* + [auto_generated] + integrate.cpp + + [begin_description] + tba. + [end_description] + + Copyright 2009-2012 Karsten Ahnert + Copyright 2009-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) + */ + +#include <boost/config.hpp> +#ifdef BOOST_MSVC + #pragma warning(disable:4996) +#endif + +#define BOOST_TEST_MODULE odeint_eigen_integrate + +#include <boost/numeric/odeint/integrate/integrate.hpp> +#include <boost/numeric/odeint/external/eigen/eigen.hpp> + +#include <boost/test/unit_test.hpp> + +#include "dummy_odes.hpp" + + +using namespace boost::unit_test; +using namespace boost::numeric::odeint; + + +BOOST_AUTO_TEST_SUITE( eigen_integrate ) + +BOOST_AUTO_TEST_CASE( test_const_sys ) +{ + typedef Eigen::Matrix< double , 1 , 1 > state_type; + state_type x; + x[0] = 10.0; + double t_start = 0.0 , t_end = 1.0 , dt = 0.1; + integrate< double >( constant_system_functor_standard() , x , t_start , t_end , dt ); + BOOST_CHECK_CLOSE( x[0] , 11.0 , 1.0e-13 ); +} + +BOOST_AUTO_TEST_CASE( test_lorenz ) +{ + typedef Eigen::Matrix< double , 3 , 1 > state_type; + state_type x; + x[0] = 10.0; + x[1] = 10.0; + x[2] = 10.0; + double t_start = 0.0 , t_end = 1000.0 , dt = 0.1; + integrate< double >( lorenz() , x , t_start , t_end , dt ); + + std::vector< double > x2( 3 ); + x2[0] = 10.0; + x2[1] = 10.0; + x2[2] = 10.0; + integrate( lorenz() , x2 , t_start , t_end , dt ); + + BOOST_CHECK_CLOSE( x[0] , x2[0] , 1.0e-13 ); + BOOST_CHECK_CLOSE( x[1] , x2[1] , 1.0e-13 ); + BOOST_CHECK_CLOSE( x[2] , x2[2] , 1.0e-13 ); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/libs/numeric/odeint/test_external/gmp/Jamfile.v2 b/libs/numeric/odeint/test_external/gmp/Jamfile.v2 index e4e603285..f0e6af02c 100644 --- a/libs/numeric/odeint/test_external/gmp/Jamfile.v2 +++ b/libs/numeric/odeint/test_external/gmp/Jamfile.v2 @@ -11,7 +11,6 @@ use-project boost : $(BOOST_ROOT) ; project gmp : requirements <library>/boost/test//boost_unit_test_framework - <include>../../../../.. ; diff --git a/libs/numeric/odeint/test_external/gsl/Jamfile.v2 b/libs/numeric/odeint/test_external/gsl/Jamfile.v2 index 73595d30b..086edf6ea 100644 --- a/libs/numeric/odeint/test_external/gsl/Jamfile.v2 +++ b/libs/numeric/odeint/test_external/gsl/Jamfile.v2 @@ -11,7 +11,6 @@ use-project boost : $(BOOST_ROOT) ; project : requirements <library>/boost/test//boost_unit_test_framework - <include>../../../../.. ; diff --git a/libs/numeric/odeint/test_external/mkl/Jamfile.v2 b/libs/numeric/odeint/test_external/mkl/Jamfile.v2 index 168d69c4c..f585fa83d 100644 --- a/libs/numeric/odeint/test_external/mkl/Jamfile.v2 +++ b/libs/numeric/odeint/test_external/mkl/Jamfile.v2 @@ -11,7 +11,6 @@ use-project boost : $(BOOST_ROOT) ; project : requirements <library>/boost/test//boost_unit_test_framework - <include>../../../../.. ; diff --git a/libs/numeric/odeint/test_external/mpi/Jamfile.v2 b/libs/numeric/odeint/test_external/mpi/Jamfile.v2 index bb14ff575..0a02bccff 100644 --- a/libs/numeric/odeint/test_external/mpi/Jamfile.v2 +++ b/libs/numeric/odeint/test_external/mpi/Jamfile.v2 @@ -15,7 +15,6 @@ project <library>/boost//mpi <link>static <define>BOOST_ALL_NO_LIB=1 - <include>../../../../.. ; # mpi-test name : source : req : np=1 2 3 4 7 8 13 17 diff --git a/libs/numeric/odeint/test_external/mtl4/Jamfile.v2 b/libs/numeric/odeint/test_external/mtl4/Jamfile.v2 index c85c97fb1..3a8481ab9 100644 --- a/libs/numeric/odeint/test_external/mtl4/Jamfile.v2 +++ b/libs/numeric/odeint/test_external/mtl4/Jamfile.v2 @@ -15,7 +15,6 @@ MTL4_INCLUDE = /home/mario/MTL4 ; project : requirements <library>/boost/test//boost_unit_test_framework - <include>../../../../.. <include>$(MTL4_INCLUDE) <define>BOOST_ALL_NO_LIB=1 <link>static diff --git a/libs/numeric/odeint/test_external/nt2/Jamfile.v2 b/libs/numeric/odeint/test_external/nt2/Jamfile.v2 index 9f9b142f6..26763da6e 100644 --- a/libs/numeric/odeint/test_external/nt2/Jamfile.v2 +++ b/libs/numeric/odeint/test_external/nt2/Jamfile.v2 @@ -26,7 +26,6 @@ project : requirements <library>$(BOOST_ROOT)/boost/test/included/unit_test_framework.hpp <define>BOOST_ALL_NO_LIB=1 - <include>../../../../.. <include>$(NT2_ROOT_PATH)/include/ <link>static <toolset>gcc:<cxxflags>-DBOOST_SIMD_NO_STRICT_ALIASING diff --git a/libs/numeric/odeint/test_external/thrust/Makefile b/libs/numeric/odeint/test_external/thrust/Makefile index 5d7b7d389..49d9cd71a 100644 --- a/libs/numeric/odeint/test_external/thrust/Makefile +++ b/libs/numeric/odeint/test_external/thrust/Makefile @@ -1,36 +1,34 @@ -# Copyright 2010-2013 Mario Mulansky +# Copyright 2010-2014 Mario Mulansky # Copyright 2010-2012 Karsten Ahnert # # 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) +# make sure BOOST_ROOT is pointing to your boost directory +# otherwise, set it here: +# BOOST_ROOT = /path/to/boost +# path to the cuda installation +CUDA_ROOT = /usr/local/cuda +# target architecture +ARCH = sm_13 -CUDA_ROOT = /usr/local/cuda-5.0 - -CC = gcc -CXX = gcc NVCC = $(CUDA_ROOT)/bin/nvcc -INCLUDES += -I$(BOOST_ROOT) -I$(THRUST_ROOT) -I$(CUDA_ROOT)/include -I../../../../.. +INCLUDES += -I../../include/ -I$(BOOST_ROOT) -NVCCFLAGS = -O3 $(INCLUDES) --compiler-bindir=/opt/gcc4.6.2/bin/ +NVCCFLAGS = -O3 $(INCLUDES) -arch $(ARCH) -LDLIBS = -lcudart -lstdc++ -LDFLAGS = -L$(CUDA_ROOT)/lib64 +%.o : %.cu + $(NVCC) $(NVCCFLAGS) -c $< -o $@ -%.co : %.cu - $(NVCC) $(NVCCFLAGS) -o $@ -c $< +% : %.o + $(NVCC) $(NVCCFLAGS) -o $@ $< all : check_thrust -check_thrust : check_thrust.co - $(CC) -o check_thrust $(LDFLAGS) $(LDLIBS) check_thrust.co -check_thrust.co : check_thrust.cu - clean : - -rm *~ *.o *.co check_thrust - + -rm *~ *.o check_thrust diff --git a/libs/numeric/odeint/test_external/vexcl/Jamfile.v2 b/libs/numeric/odeint/test_external/vexcl/Jamfile.v2 index dec9da634..9b76b4305 100644 --- a/libs/numeric/odeint/test_external/vexcl/Jamfile.v2 +++ b/libs/numeric/odeint/test_external/vexcl/Jamfile.v2 @@ -17,7 +17,6 @@ project : requirements <library>/boost/test//boost_unit_test_framework <define>BOOST_ALL_NO_LIB=1 - <include>../../../../.. <include>$(VEXCL_INCLUDE) <include>$(OPENCL_INCLUDE) <cxxflags>-std=c++0x |