Boost logo

Boost :

Subject: [boost] seeking endorsement for histogram library
From: Hans Dembinski (hans.dembinski_at_[hidden])
Date: 2017-11-13 13:23:54


Dear Boost developers,

I believe the histogram library is now ready to be presented here and I am looking for endorsement.

Histogram is a C++11 header-only library that provides a safe, convenient, and fast multi-dimensional histogram for statistical analysis and visualisation. The library has a unique feature set, among it a safety guarantee that the counts in the histogram cannot overflow. It is easily customisable for power users, while providing defaults that just work for the occasional user. Meta-programming is used to provide an especially fast histogram implementation that can be used when the histogram configuration is known at compile-time. A dynamic implementation is also provided for the other case when the configuration is only known at run-time. The two implementations share a common interface, so it is easy to switch between them. Python bindings are included for the dynamic implementation. The Python interface supports Numpy arrays to greatly speed up the exchange of data between the Python and C++ side. I tested the performance of the library in benchmarks against other libraries, which have fewer features, and this library beats them in almost all cases.

I am stealing the style of the rest of the email from Antony Polukhin.

Library: https://github.com/HDembinski/histogram <https://github.com/HDembinski/histogram>
Docs: https://htmlpreview.github.io/?https://raw.githubusercontent.com/HDembinski/histogram/html/doc/html/index.html <https://htmlpreview.github.io/?https://raw.githubusercontent.com/HDembinski/histogram/html/doc/html/index.html>
Boost Library Incubator: http://blincubator.com/bi_library/histogram-2/?gform_post_id=1582 <http://blincubator.com/bi_library/histogram-2/?gform_post_id=1582>

Library changes since last mail:

* Support for efficient adding of multiple histograms and scaling
* Support for reduce transformation
* Re-design of category axis as a general mapping between unique values and bins
* Re-design of the bin description an axis returns upon element access
* Regular axis can accepted bijective (user-provided) transformations
* Interface cleanup, refactoring, and simplification
* Finished documentation

Best regards,
Hans


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