Boost logo

Boost :

Subject: Re: [boost] [odeint] gsoc 2011: finalization of odeint
From: Karsten Ahnert (karsten.ahnert_at_[hidden])
Date: 2011-03-23 03:02:19


> This isn't a general solution, but works to deduce the function return
and argument types :
>

Ok, I see your point. It is an interesting ansatz and worth to consider.
I think Boost.function_types is the boost library for that.

In your suggestion one has a stepper for one particular function
(signature). This might be suitable for the user, but the original
ansatz is more direct, because your are passing the types (state and
deriv type) which stores intermediate values. It has also the advantage
that you can use templatized functors like

struct lorenz {
    template< class State , class Value >
    void operator()( const State &x , State &dxdt , Value dxdt ) { ... }
};

which allows you to use one system function with different state types
(for example with std::vector, boost::range, ublas::vector). This is a
feature, which I don't want to miss. Especially the possibility to use
boost.range it very nice.

Nevertheless, one could build something like your suggestion on top of
the existing one, maybe with some metafunctions ...

Best regards,

Karsten


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk