Here is the C++ code taken from odeint documentation:
https://raw.githubusercontent.com/headmyshoulder/odeint-v2/master/examples/gmpxx/lorenz_gmpxx.cpp
After compile and link through the following command:
g++ -Wall -o lorenz_gmpxx lorenz_gmpxx.cpp
I am receiving this error message:
> > In file included from /usr/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp:25:0,
from /usr/include/boost/numeric/odeint/integrate/integrate.hpp:24,
from /usr/include/boost/numeric/odeint.hpp:64,
from lorenz_gmpxx.cpp:21:
/usr/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp: In instantiation of ‘size_t boost::numeric::odeint::detail::integrate_adaptive(Stepper, System, State&, Time, Time, Time, Observer, boost::numeric::odeint::stepper_tag) [with Stepper = boost::numeric::odeint::runge_kutta4<boost::array<__gmp_expr<__mpf_struct [1], __mpf_struct [1]>, 3u>, __gmp_expr<__mpf_struct [1], __mpf_struct [1]> >; System = lorenz; State = boost::array<__gmp_expr<__mpf_struct [1], __mpf_struct [1]>, 3u>; Time = __gmp_expr<__mpf_struct [1], __mpf_struct [1]>; Observer = streaming_observer; size_t = unsigned int]’:
/usr/include/boost/numeric/odeint/integrate/integrate_const.hpp:53:65: required from ‘size_t boost::numeric::odeint::integrate_const(Stepper, System, State&, Time, Time, Time, Observer) [with Stepper = boost::numeric::odeint::runge_kutta4<boost::array<__gmp_expr<__mpf_struct [1], __mpf_struct [1]>, 3u>, __gmp_expr<__mpf_struct [1], __mpf_struct [1]> >; System = lorenz; State = boost::array<__gmp_expr<__mpf_struct [1], __mpf_struct [1]>, 3u>; Time = __gmp_expr<__mpf_struct [1], __mpf_struct [1]>; Observer = streaming_observer; size_t = unsigned int]’
lorenz_gmpxx.cpp:79:40: required from here
/usr/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp:57:68: error: invalid static_cast from type ‘__gmp_expr<__mpf_struct [1], __gmp_binary_expr<__gmp_expr<__mpf_struct [1], __gmp_binary_expr<__gmp_expr<__mpf_struct [1], __mpf_struct [1]>, __gmp_expr<__mpf_struct [1], __mpf_struct [1]>, __gmp_binary_minus> >, __gmp_expr<__mpf_struct [1], __mpf_struct [1]>, __gmp_binary_divides> >’ to type ‘size_t {aka unsigned int}’
size_t steps = static_cast< size_t >( (end_time-start_time)/dt );
I would appreciate any help.