Boost logo

Boost :

From: Eric Niebler (eric_at_[hidden])
Date: 2007-02-06 14:21:32


Paul A Bristow wrote:
>> From: boost-bounces_at_[hidden]
>> [mailto:boost-bounces_at_[hidden]] On Behalf Of John Phillips
>>
>> The formal review of the Boost.Accumulators library, submitted by Eric
>> Neibler begins today and ends on Wednesday, February 7. The library is
>> available from
>>
>> http://boost-consulting.com/vault/index.php?directory=Math%20-%>20Numerics
>>
>> Here are some questions you might want to answer in your review:
>> . What is your evaluation of the design?
>
> It looks to be a rather useful framework for handling incrementally arriving data.
>
> It may also prove convenient where the data could just as well be handling in a plain array, vector or similar format.
> (But what about compared to using Boost circular buffer?)

I'm not sure I understand the question. Could you rephrase?

>> . What is your evaluation of the implementation?
>
> I can see why it is done this way and believe it is sound, but at a price of looking pretty intimidating, though probably easy
> enough in practice.
>
> I worry slightly about compile time and perhaps run time costs, but worth it.

Compile times are long, true. The runtime costs should be zero or close
to it, and it's been reported here that on msvc, the runtime cost is
indeed zero, at least for small-ish accumulator sets.

>
> Basic testing looks fine.
>
> It would be a mistake now to focus too much on the detailed implementation/accuracy of actual functions - it is the framework that
> matters now.
>
> However there is a danger, as with all statistical calculations, of confusing data with information.
>
> For example, hardly any useful *information* on skewness or kurtosis is likely to emerge from a handful of values, even if
> mathematically accurate.

True, but that's hardly a failing of Boost.Accumulators. :-)

> But the framework is templated so that one can envisage a floating-point type that adds uncertainty estimates as well as central
> values.
> So we would know that the skew is -0.5 (but + or - a very lot).
>
>> . What is your evaluation of the documentation?
>
> Looks good, and has a good structure - but I haven't used it 'in anger' - when things are always missing/unclear.
>
>> . What is your evaluation of the potential usefulness of the library?
>
> I am uncertain if it will meet a niche market - real-time systems seem the obvious applications, and yet I fear that those working
> on these small machines - the 'toaster market ;-) may take fright at the apparent complexity, especially if the chip lacks built-in
> floating point (but has a UDFPT).

I would think in those markets, Boost.Accumulators would be especially
appealing because of the pay-only-for-what-you-use nature of templates.

>
>> . Did you try to use the library?
>
> Not much - some examples worked OK MSVC 8.0.
>
>> . How much effort did you put into your evaluation?
>
> Quickish read of docs, and some code and ran a few examples.
>
>> . Are you knowledgeable about the problem domain?
>
> Not especially.
>
>> And finally, every review should answer this question:
>> . Do you think the library should be accepted as a Boost library?
>
> Yes - definitely.

Thanks, Paul.

-- 
Eric Niebler
Boost Consulting
www.boost-consulting.com

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