mirror of
https://github.com/boostorg/histogram.git
synced 2025-05-11 21:24:14 +00:00
* add missing copyright notices * workaround for xml_iarchive bug to handle XML with comments * fixing min/max according to boost guidelines
113 lines
5.3 KiB
Plaintext
113 lines
5.3 KiB
Plaintext
[/
|
|
Copyright Hans Dembinski 2018 - 2019.
|
|
Distributed under the Boost Software License, Version 1.0.
|
|
(See accompanying file LICENSE_1_0.txt or copy at
|
|
https://www.boost.org/LICENSE_1_0.txt)
|
|
]
|
|
|
|
[section:history Revision history]
|
|
|
|
[heading Boost 1.71]
|
|
|
|
* New features
|
|
* Thread-safe accumulators boost::histogram::accumulators::thread_safe based on std::atomics
|
|
* Support for thread-safe storages
|
|
* Support for compiling without exceptions/RTTI (increases performance by 10-20 %) [with contributions from Glen Fernandez]
|
|
* Performance improvements for 1D and 2D histograms
|
|
* boost::histogram::indexed now returns forward iterator range instead of input iterator range
|
|
* boost::histogram::indexed_range::accessor is now non-copyable and acts like reference to cell value, making most algorithms from the stdlib work
|
|
* boost::histogram::algorithm::reduce
|
|
* New slice option
|
|
* Fuse shrink, slice, and rebin options passed for the same axis
|
|
* Support histograms with some axis types with reduction support
|
|
* boost::histogram::algorithm::project accepts runtime indices for static histograms
|
|
|
|
* Fixes
|
|
* boost::histogram::algorithm::reduce also works on histograms that have some axis types without reduction support
|
|
* boost::histogram::axis::traits::update now works correctly for boost::histogram::axis::variant
|
|
|
|
* Other
|
|
* 100 % test coverage
|
|
* Drastically reduced internal Boost dependencies
|
|
* Improved documentation and examples
|
|
* Internally replaced boost::variant with boost::variant2
|
|
* boost::histogram::axis::traits::is_reducible detects reducible axis types
|
|
* Cleanup and refactoring of internals
|
|
* Guarantee no-throw moves for all builtin axis types
|
|
* Improved internal benchmarks
|
|
* Compile cleanly at higher warning levels
|
|
|
|
[heading Boost 1.70]
|
|
|
|
First Boost release, version 4.0 in former internal counting.
|
|
|
|
* Removed Python bindings, will be developed in separate repository
|
|
* All axes can be made optionally circular, except category axis
|
|
* All axes now support generic attached metadata
|
|
* All axes have now independently configurable underflow/overflow extra bins
|
|
* Removed circular axis (which is just a circular regular axis)
|
|
* Added indexed adaptor generator for convenient and fast iteration over histograms
|
|
* Support for axes that can grow in range
|
|
* Support for axes which accept multiple values (example: hexagonal binning)
|
|
* Support for profiles and more generally, arbitrary accumulators in each cell
|
|
* Support for serializing to xml archives
|
|
* Added compatibility with Boost.Range, Boost.Units, and Boost.Accumulators
|
|
* Added deduction guides for axis types and histogram
|
|
* Performance improvements
|
|
* Renamed `adaptive_storage` to `unlimited_storage`
|
|
* Replaced `boost::multiprecision::cpp_int` with custom type to decouple libraries
|
|
* Internal simplification of `axis::variant`
|
|
* Make all storages behave more like containers, simplifying the design
|
|
* Histograms supports add, sub, mul, div
|
|
* replaced `operator[]` in axis with explicit method `bin`
|
|
* replaced `operator()` in axis with explicit method `index`
|
|
* replaced internal use of `boost::containers` with stdlib containers
|
|
* Much improved docs, reference documentation, user guide, more examples
|
|
|
|
[heading 3.2 (not in Boost)]
|
|
|
|
* Allocator support everywhere
|
|
* Internal refactoring
|
|
|
|
[heading 3.1 (not in Boost)]
|
|
|
|
* Renamed `bincount` method to `size`
|
|
* Support for axes with only overflow and no underflow bin
|
|
* category axis now by default has bin for "other" input that does not fall
|
|
into the predefined categories, making it consistent with other axes
|
|
* NaN is now consistently put into overflow bin for all axes
|
|
* Eliminated warnings about safe internal conversions on MSVC
|
|
* Established a cpp house style with corresponding .clang-format file
|
|
* Better detection of Python library on all systems
|
|
* Improved code coverage by testing more input errors
|
|
* Raise ValueError instead of generic RuntimeError in Python on input errors
|
|
|
|
[heading 3.0 (not in Boost)]
|
|
|
|
* Support for efficient adding of multiple histograms and scaling
|
|
* 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
|
|
* Interface cleanup and simplification, more consistency between Python and C++ interface
|
|
* Iterators for histogram and axes for STL compatibility
|
|
* Regular axis in C++: Allowing transforms with state
|
|
* Regular axis in Python: Support for all C++ transforms
|
|
* Polymorphic axis::any type
|
|
* Internal refactoring from boost::mpl and boost::fusion to std::tuple and boost::mp11
|
|
* Windows support
|
|
|
|
[heading 2.0 (not in Boost)]
|
|
|
|
* Added static_histogram (v1.0 only had dynamic_histogram).
|
|
* Merged wfill(...) and fill(...) interface.
|
|
* Support custom allocators in storage classes.
|
|
* Replaced static_storage with array_storage.
|
|
* Replaced dynamic_storage with unlimited_storage, which adds the capability to grow the bin counter into a cpp_int, thus avoiding integer overflow completely.
|
|
* Serialization uses binary_archive instead of text_archive. The latter is portable, but the performance is terrible.
|
|
* Python interface changed: histograms are now iterable, returning axis classes
|
|
* Support reduction (removing a subset of axes and returning the equivalent histogram; in other words, those axes are integrated over)
|
|
|
|
[heading 1.0 (not in Boost)]
|
|
|
|
* First stable version.
|
|
|
|
[endsect] |