Hi Dan,

just a few comments and questions to your modifications:

On Montag, 4. November 2002 16:50, Dan Mcleran wrote:
> I've modified my code by incorporating some of yours and making some
> changes. There are obviously plenty of details yet to be done. What
> I've got now allows the user to:
>
> * specify argument and return type.

I can understand that there may be the desire to use a different return 
type (say, interval instead of double), which would be used for 
integration (say, with computing rounding error bounds). I have more 
difficulties to come up with an example where one would like to change 
the argument type, but that can be attributed to my limited imagination.

However, your _integrate interface function requires the functor to be a 
template of two parameters (argument and return type), and that seems to 
be a very restrictive requirement. The gain seems to be comparatively 
low, since the difference between 

template <class arg, class ret, 
           template<class arg,class ret> class Functor,...> ...
_integrate(...)

_integrate<double,double,OneOver,...>(...)

and the allegedly less flexible

template <class Functor, ...>
_integrate(...)

_integrate<OneOver<double,double> >(...)

is really small. Am I overlooking something?

> * specify which Functor to integrate over

Ok, this seems to be the same for both our interfaces.

> * specify which method of integration to use

The difference here is that in your version the template parameter is 
given explicitly to _integrate(), whereas in my version this is selected 
via a template method call. While I think the template method is quite 
elegant and fits nicely with the general option setting syntax, you're 
completely right in pointing out that gcc 2.95 chokes on this.

So I think it would be possible to design a gcc 2.95 workaround for the 
integration formula setting. Of course, this workaround could simply be 
declared standard - introducing a slight internal inconsistence in the 
interface, but consistent behavior across different compilers.

Don't know anything about Borland.

> I've included an implementation of Richardsons extrapolation and the
> Romberg rule. I've used this web page as a reference:
> http://www2.egr.uh.edu/~rbarton/Classes/ECE2331/Files.pdf/Notes/Notes_2
>-11-0 2.pdf
>
> The algortihm builds a Romberg table until the relative tolerance is
> met.

A nice step ahead. Once the interface is more or less fixed, the run for 
the best implementation is open...

Yours,
Martin

-- 
Dr. Martin Weiser            Zuse Institute Berlin
[EMAIL PROTECTED]                Scientific Computing
http://www.zib.de/weiser     Numerical Analysis and Modelling

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to