[Accumulators] is there an updated version?

I recently had a need for some simple statistical analysis of performance data and thought rather than sit down and write my own functions for mean, variance etc. I'd take the time to learn and use the Accumulators library that was accepted into boost on February the 19th of this year, <http://lists.boost.org/boost-announce/2007/02/0114.php> The only version I could find was that in the vault, <http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=accumulators.zip&directory=Math%20-%20Numerics&> This appears to have been updated last on 21.09.2007 03:32. The first thing I am wondering is why this library is not in TRUNK now that it is a part of boost? Secondly I thought I'd comment briefly on something that I noticed came up during review but has (as yet) not been addressed in the vault version. I too assumed that using boost::accumulators::tag::variance would return a useful value for variance, unfortunately it returned (in my case) what appeared to be an erroneous negative value. The 'immediate_' form worked ok. My comment would be that after reading the review there was some debate about providing a naive implementation. My thought after spending time reading the reviews and browsing the code to try to figure out what was happening was that, if I wanted a naive implementation, I could provide that easily myself. However I turned to the library to a) save me writing and maintaining the code, and b) to enjoy a well thought out implementation by a domain knowledgeable implementor. I therefore think that the natural choices should be accurate implementations. If I know enough about my data to realise I can get away with a naive implementation that sacrifices accuracy (perhaps for performance reasons) then I can select one purposefully. My first experience with the accumulators library was a mixed bag, but I have not used it enough to really form too many opinions on it. I suppose when I initially looked at it I thought I would have access to statistical algorithms that I could apply to my data, but in fact it works differently than that (and I am sure there was a good reason for that approach). I'll have to revisit the doc to see if I can find understand the motivation better. It works well as it is mind you. Beyond that the library appears useful and I look forward to making more use of it. I'd be very interested in seeing a newer version of the library that addresses the many points highlighted during the review or at least know that the library is currently being tidied up and will make into a boost release soon :) Thanks, Jamie

Sorry for the delay, the holidays were a busy time. Jamie Allsop wrote:
I recently had a need for some simple statistical analysis of performance data and thought rather than sit down and write my own functions for mean, variance etc. I'd take the time to learn and use the Accumulators library that was accepted into boost on February the 19th of this year, <http://lists.boost.org/boost-announce/2007/02/0114.php>
The only version I could find was that in the vault, <http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=accumulators.zip&directory=Math%20-%20Numerics&>
This appears to have been updated last on 21.09.2007 03:32.
The first thing I am wondering is why this library is not in TRUNK now that it is a part of boost?
The library wasn't ready for 1.35, so I never put it in trunk. Now that we've branched for release, I can put accumulators in trunk and continue development there.
Secondly I thought I'd comment briefly on something that I noticed came up during review but has (as yet) not been addressed in the vault version. I too assumed that using boost::accumulators::tag::variance would return a useful value for variance, unfortunately it returned (in my case) what appeared to be an erroneous negative value. The 'immediate_' form worked ok.
My comment would be that after reading the review there was some debate about providing a naive implementation. My thought after spending time reading the reviews and browsing the code to try to figure out what was happening was that, if I wanted a naive implementation, I could provide that easily myself. However I turned to the library to a) save me writing and maintaining the code, and b) to enjoy a well thought out implementation by a domain knowledgeable implementor.
I therefore think that the natural choices should be accurate implementations. If I know enough about my data to realise I can get away with a naive implementation that sacrifices accuracy (perhaps for performance reasons) then I can select one purposefully.
Fair enough. Thanks for taking the time to give your feedback. I haven't yet addressed this issue, but I tend to agree with you and will give this some serious consideration.
My first experience with the accumulators library was a mixed bag, but I have not used it enough to really form too many opinions on it. I suppose when I initially looked at it I thought I would have access to statistical algorithms that I could apply to my data, but in fact it works differently than that (and I am sure there was a good reason for that approach). I'll have to revisit the doc to see if I can find understand the motivation better. It works well as it is mind you.
Beyond that the library appears useful and I look forward to making more use of it.
I'd be very interested in seeing a newer version of the library that addresses the many points highlighted during the review or at least know that the library is currently being tidied up and will make into a boost release soon :)
Much of the feedback from the review has already been incorporated into the version in the file vault. It's getting there, but slowly. I have a day job and libraries shipping in 1.35 that needed maintenance, and those took precedence. Sorry for the delay ... the library *will* make its appearance in trunk soon. -- Eric Niebler Boost Consulting www.boost-consulting.com

Eric Niebler wrote:
Sorry for the delay, the holidays were a busy time.
No worries, I clearly had too much time on my hands ;)
Jamie Allsop wrote:
The first thing I am wondering is why this library is not in TRUNK now that it is a part of boost?
The library wasn't ready for 1.35, so I never put it in trunk. Now that we've branched for release, I can put accumulators in trunk and continue development there.
Fair enough. General Boost comment not specific to this library: This is really a side-effect of how we manage our branches and releases. With the move to SVN I'd imagine this sort of thing will get easier. I'd fully expect that acceptance of a boost library really should mean it goes into TRUNK (from now on). Whether or not that library makes it from TRUNK onto a release branch really is a separate question. That way we can build and view tests for the library which can only help its development towards a releasable state.
I'd be very interested in seeing a newer version of the library that addresses the many points highlighted during the review or at least know that the library is currently being tidied up and will make into a boost release soon :)
Much of the feedback from the review has already been incorporated into the version in the file vault. It's getting there, but slowly. I have a day job and libraries shipping in 1.35 that needed maintenance, and those took precedence. Sorry for the delay ... the library *will* make its appearance in trunk soon.
I look forward to that thanks :) Jamie

Jamie Allsop wrote:
Eric Niebler wrote:
Sorry for the delay ... the library *will* make its appearance in trunk soon.
I look forward to that thanks :) Jamie
I've committed Boost.Accumulators to trunk, and will continue to address its review feedback there. Come hell or high water, Boost.Accumulators will be part of 1.36, whenever that may be. -- Eric Niebler Boost Consulting www.boost-consulting.com
participants (2)
-
Eric Niebler
-
Jamie Allsop