• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4<title>Revision history</title>
5<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7<link rel="home" href="../index.html" title="Chapter 1. Boost.Histogram">
8<link rel="up" href="../index.html" title="Chapter 1. Boost.Histogram">
9<link rel="prev" href="rationale.html" title="Rationale">
10</head>
11<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
12<table cellpadding="2" width="100%"><tr>
13<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
14<td align="center"><a href="../../../../../index.html">Home</a></td>
15<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
16<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
17<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
18<td align="center"><a href="../../../../../more/index.htm">More</a></td>
19</tr></table>
20<hr>
21<div class="spirit-nav">
22<a accesskey="p" href="rationale.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
23</div>
24<div class="section">
25<div class="titlepage"><div><div><h2 class="title" style="clear: both">
26<a name="histogram.history"></a><a class="link" href="history.html" title="Revision history">Revision history</a>
27</h2></div></div></div>
28<h4>
29<a name="histogram.history.h0"></a>
30      <span class="phrase"><a name="histogram.history.boost_1_74"></a></span><a class="link" href="history.html#histogram.history.boost_1_74">Boost
31      1.74</a>
32    </h4>
33<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
34<li class="listitem">
35          New features
36          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
37<li class="listitem">
38                New axis <code class="computeroutput"><span class="identifier">boolean</span></code>,
39                a special kind of integer axis with only two values and no state
40                (except metadata)
41              </li>
42<li class="listitem">
43                Histograms with growing category axes are now addable even if the
44                categories differ; the category axis of the output histogram is the
45                union of the category axes of the input histograms
46              </li>
47<li class="listitem">
48                Added axis::traits::continuous to match axis::traits::is_continuous
49              </li>
50</ul></div>
51        </li>
52<li class="listitem">
53          Fixes
54          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
55                <code class="computeroutput"><span class="identifier">metadata</span><span class="special">()</span></code>
56                method of builtin axis types now return a mutable reference even
57                if the axis is const, as described in the documentation
58              </li></ul></div>
59        </li>
60<li class="listitem">
61          Documentation
62          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
63<li class="listitem">
64                Sorted headers in reference and sorted items in namespaces
65              </li>
66<li class="listitem">
67                Removed some internal typenames from templates
68              </li>
69<li class="listitem">
70                Added reference for <code class="computeroutput"><span class="identifier">sample_type</span></code>
71              </li>
72</ul></div>
73        </li>
74<li class="listitem">
75          Other
76          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
77<li class="listitem">
78                Simplified internal metaprogramming
79              </li>
80<li class="listitem">
81                Replaced Boost Assert with plain cassert
82              </li>
83</ul></div>
84        </li>
85</ul></div>
86<h4>
87<a name="histogram.history.h1"></a>
88      <span class="phrase"><a name="histogram.history.boost_1_73"></a></span><a class="link" href="history.html#histogram.history.boost_1_73">Boost
89      1.73</a>
90    </h4>
91<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
92<li class="listitem">
93          New features
94          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
95<li class="listitem">
96                accumulators
97                <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; ">
98<li class="listitem">
99                      New <code class="computeroutput"><span class="identifier">count</span></code> accumulator,
100                      a thin wrapper around a primitive arithmetic type; serves as
101                      a base class for users who want to add arbitrary metadata to
102                      each bin
103                    </li>
104<li class="listitem">
105                      <code class="computeroutput"><span class="identifier">sum</span></code> gained
106                      a <code class="computeroutput"><span class="identifier">value</span><span class="special">()</span></code>
107                      method for consistency with other accumulators
108                    </li>
109</ul></div>
110              </li>
111<li class="listitem">
112                algorithm
113                <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; ">
114<li class="listitem">
115                      <code class="computeroutput"><span class="identifier">reduce</span></code>
116                      <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
117<li class="listitem">
118                            Now supports positional commands
119                          </li>
120<li class="listitem">
121                            <code class="computeroutput"><span class="identifier">category</span></code>
122                            axis now supports <code class="computeroutput"><span class="identifier">slice</span></code>
123                            command
124                          </li>
125<li class="listitem">
126                            Added <code class="computeroutput"><span class="identifier">crop</span></code>
127                            command, like <code class="computeroutput"><span class="identifier">shrink</span></code>,
128                            but discards content of removed bins
129                          </li>
130<li class="listitem">
131                            Renamed <code class="computeroutput"><span class="identifier">reduce_option</span></code>
132                            to <code class="computeroutput"><span class="identifier">reduce_command</span></code>
133                            (old name available but deprecated)
134                          </li>
135</ul></div>
136                    </li>
137<li class="listitem">
138                      <code class="computeroutput"><span class="identifier">sum</span></code> gained
139                      a new argument, allowing users to select whether to sum over
140                      all bins or only the inner bins (excluding underflow and overflow)
141                    </li>
142</ul></div>
143              </li>
144<li class="listitem">
145                axis::traits
146                <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; ">
147<li class="listitem">
148                      Added traits <code class="computeroutput"><span class="identifier">is_ordered</span></code>
149                      and <code class="computeroutput"><span class="identifier">ordered</span></code>
150                      to distinguish between different kinds of DiscreteAxis types;
151                      used internally to handle <code class="computeroutput"><span class="identifier">category</span></code>
152                      axis and <code class="computeroutput"><span class="identifier">integer</span></code>
153                      axis differently
154                    </li>
155<li class="listitem">
156                      Renamed <code class="computeroutput"><span class="identifier">static_options</span></code>
157                      to <code class="computeroutput"><span class="identifier">get_options</span></code>
158                      and <code class="computeroutput"><span class="identifier">static_is_inclusive</span></code>
159                      to <code class="computeroutput"><span class="identifier">is_inclusive</span></code>
160                      (old names available but deprecated)
161                    </li>
162</ul></div>
163              </li>
164</ul></div>
165        </li>
166<li class="listitem">
167          Fixes
168          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
169<li class="listitem">
170                Fixed failing ODR test in bundled Boost due to wrong paths
171              </li>
172<li class="listitem">
173                Fixed a bug in histogram::operator*= that could occur in user-defined
174                accumulators
175              </li>
176<li class="listitem">
177                Fixed a bug in <code class="computeroutput"><span class="identifier">indexed</span></code>
178                which could cause arithmetic past the end position
179              </li>
180<li class="listitem">
181                Fixed a bug where the variance in <code class="computeroutput"><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">weighted_sum</span></code>
182                was not correctly computed if a normal histogram was added to the
183                histogram that used <code class="computeroutput"><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">weighted_sum</span></code>
184              </li>
185<li class="listitem">
186                Fixed a bug where compiling with <code class="computeroutput"><span class="special">-</span><span class="identifier">ffast</span><span class="special">-</span><span class="identifier">math</span></code> would break <code class="computeroutput"><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">sum</span></code>
187              </li>
188<li class="listitem">
189                Fixed <code class="computeroutput"><span class="identifier">algorithm</span><span class="special">::</span><span class="identifier">reduce</span></code> to work with axes without
190                *flow bins, which did not compile before
191              </li>
192</ul></div>
193        </li>
194<li class="listitem">
195          Other
196          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
197<li class="listitem">
198                Added an example and documentation on how to use Boost.Histogram
199                as a backend
200              </li>
201<li class="listitem">
202                Improved the docs on how to use custom accumulators and Boost.Accumulators
203              </li>
204<li class="listitem">
205                Many small documentation improvements
206              </li>
207<li class="listitem">
208                Improved docs for <code class="computeroutput"><span class="identifier">algorithm</span><span class="special">::</span><span class="identifier">reduce</span></code>
209              </li>
210<li class="listitem">
211                Improved experimental cmake build support
212              </li>
213<li class="listitem">
214                Use <code class="computeroutput"><span class="identifier">index_type</span></code> consistently
215                everywhere instead of raw <code class="computeroutput"><span class="keyword">int</span></code>
216              </li>
217<li class="listitem">
218                Benchmark update in the docs
219              </li>
220</ul></div>
221        </li>
222</ul></div>
223<h4>
224<a name="histogram.history.h2"></a>
225      <span class="phrase"><a name="histogram.history.boost_1_72"></a></span><a class="link" href="history.html#histogram.history.boost_1_72">Boost
226      1.72</a>
227    </h4>
228<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
229<li class="listitem">
230          New features
231          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
232<li class="listitem">
233                Better deduction guides for axis types and histogram type on C++17
234                compilers
235              </li>
236<li class="listitem">
237                performance improvements in the indexing code
238              </li>
239<li class="listitem">
240                new histogram::fill method for accelerated filling from chunks of
241                values
242              </li>
243<li class="listitem">
244                ASCII bar charts for 1D histograms when boost/histogram/ostream.hpp
245                is included (contributed by Przemyslaw Bartosik)
246              </li>
247<li class="listitem">
248                Passing invalid axis options causes user-friendly compile-time errors
249              </li>
250<li class="listitem">
251                Wrong usage of weight() and sample() causes user-friendly compile-time
252                errors
253              </li>
254<li class="listitem">
255                algorithm::empty returns true if all histogram values are equal to
256                the default value (contributed by Henry Schreiner)
257              </li>
258<li class="listitem">
259                algorithm::reduce with shrink is now well defined when values are
260                not bin edges
261              </li>
262<li class="listitem">
263                axis::traits::rank returns the number of values that this axis accepts
264              </li>
265<li class="listitem">
266                axis::traits::is_continuous returns whether an axis is continuous
267                or discrete
268              </li>
269<li class="listitem">
270                axis::traits::is_inclusive returns whether an axis has a bin for
271                any possible input
272              </li>
273<li class="listitem">
274                limited weight support for mean accumulator
275              </li>
276<li class="listitem">
277                accumulators::weighted_mean::sum_of_weights_squared method added
278              </li>
279</ul></div>
280        </li>
281<li class="listitem">
282          Fixes
283          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
284<li class="listitem">
285                Support of -std=c++2a and -stdlib=libc++ on clang, compatibility
286                with gcc-9
287              </li>
288<li class="listitem">
289                Fixed: weight could be passed instead of a sample during filling
290                without triggering an error
291              </li>
292<li class="listitem">
293                Fixed: segfault when too many indices were passed to algorithm::project
294              </li>
295<li class="listitem">
296                Fixed: indexed range generator did not work with storage based on
297                std::array
298              </li>
299<li class="listitem">
300                Fixed: weighted_mean() + weighted_mean() != weighted_mean() (discovered
301                and reported by Henry Schreiner)
302              </li>
303<li class="listitem">
304                Fixed: axis::option::test(...) returned true if any bits in the test
305                mask were set (now returns true if all bits in the test mask are
306                set)
307              </li>
308<li class="listitem">
309                Protecting calls to min, max with against macro expansion
310              </li>
311<li class="listitem">
312                Replaced all crlf with lf in concepts.qbk
313              </li>
314<li class="listitem">
315                Missing throw of std::invalid_argument when user passes too many
316                axes to histogram
317              </li>
318<li class="listitem">
319                Corrected documentation of serialization support in concepts section
320              </li>
321<li class="listitem">
322                Resolved warnings for various compiler versions
323              </li>
324</ul></div>
325        </li>
326<li class="listitem">
327          Other
328          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
329<li class="listitem">
330                Added Boost.Histogram logo
331              </li>
332<li class="listitem">
333                Added missing copyright notices
334              </li>
335<li class="listitem">
336                axis::category::value returns copy for scalar types and const reference
337                otherwise
338              </li>
339<li class="listitem">
340                std::ostringstream not used anymore to generate exception messages
341                to reduces code bloat
342              </li>
343<li class="listitem">
344                Documentation improvements
345                <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; ">
346<li class="listitem">
347                      Restructured overview section in documentation
348                    </li>
349<li class="listitem">
350                      Updated user guide to demonstrate new features
351                    </li>
352<li class="listitem">
353                      Updated accumulator examples
354                    </li>
355<li class="listitem">
356                      Concepts explain how accumulators can optionally accept weights
357                    </li>
358</ul></div>
359              </li>
360<li class="listitem">
361                Updated benchmark code
362              </li>
363<li class="listitem">
364                New test checks consistency of b2 and cmake build systems
365              </li>
366<li class="listitem">
367                New test checks One-Definition-Rule (fails if non-templated function
368                is not declared inline)
369              </li>
370<li class="listitem">
371                Serialization code decoupled from Boost.Serialization
372              </li>
373<li class="listitem">
374                Removed dependency on Boost.CallableTraits
375              </li>
376</ul></div>
377        </li>
378</ul></div>
379<h4>
380<a name="histogram.history.h3"></a>
381      <span class="phrase"><a name="histogram.history.boost_1_71"></a></span><a class="link" href="history.html#histogram.history.boost_1_71">Boost
382      1.71</a>
383    </h4>
384<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
385<li class="listitem">
386          New features
387          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
388<li class="listitem">
389                Thread-safe accumulators boost::histogram::accumulators::thread_safe
390                based on std::atomics
391              </li>
392<li class="listitem">
393                Support for thread-safe storages
394              </li>
395<li class="listitem">
396                Support for compiling without exceptions/RTTI (increases performance
397                by 10-20 %) [with contributions from Glen Fernandez]
398              </li>
399<li class="listitem">
400                Performance improvements for 1D and 2D histograms
401              </li>
402<li class="listitem">
403                boost::histogram::indexed now returns forward iterator range instead
404                of input iterator range
405              </li>
406<li class="listitem">
407                boost::histogram::indexed_range::accessor is now non-copyable and
408                acts like reference to cell value, making most algorithms from the
409                stdlib work
410              </li>
411<li class="listitem">
412                boost::histogram::algorithm::reduce
413                <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; ">
414<li class="listitem">
415                      New slice option
416                    </li>
417<li class="listitem">
418                      Fuse shrink, slice, and rebin options passed for the same axis
419                    </li>
420<li class="listitem">
421                      Support histograms with some axis types with reduction support
422                    </li>
423</ul></div>
424              </li>
425<li class="listitem">
426                boost::histogram::algorithm::project accepts runtime indices for
427                static histograms
428              </li>
429</ul></div>
430        </li>
431<li class="listitem">
432          Fixes
433          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
434<li class="listitem">
435                boost::histogram::algorithm::reduce also works on histograms that
436                have some axis types without reduction support
437              </li>
438<li class="listitem">
439                boost::histogram::axis::traits::update now works correctly for boost::histogram::axis::variant
440              </li>
441</ul></div>
442        </li>
443<li class="listitem">
444          Other
445          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
446<li class="listitem">
447                100 % test coverage
448              </li>
449<li class="listitem">
450                Drastically reduced internal Boost dependencies
451              </li>
452<li class="listitem">
453                Improved documentation and examples
454              </li>
455<li class="listitem">
456                Internally replaced boost::variant with boost::variant2
457              </li>
458<li class="listitem">
459                boost::histogram::axis::traits::is_reducible detects reducible axis
460                types
461              </li>
462<li class="listitem">
463                Cleanup and refactoring of internals
464              </li>
465<li class="listitem">
466                Guarantee no-throw moves for all builtin axis types
467              </li>
468<li class="listitem">
469                Improved internal benchmarks
470              </li>
471<li class="listitem">
472                Compile cleanly at higher warning levels
473              </li>
474</ul></div>
475        </li>
476</ul></div>
477<h4>
478<a name="histogram.history.h4"></a>
479      <span class="phrase"><a name="histogram.history.boost_1_70"></a></span><a class="link" href="history.html#histogram.history.boost_1_70">Boost
480      1.70</a>
481    </h4>
482<p>
483      First Boost release, version 4.0 in former internal counting.
484    </p>
485<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
486<li class="listitem">
487          Removed Python bindings, will be developed in separate repository
488        </li>
489<li class="listitem">
490          All axes can be made optionally circular, except category axis
491        </li>
492<li class="listitem">
493          All axes now support generic attached metadata
494        </li>
495<li class="listitem">
496          All axes have now independently configurable underflow/overflow extra bins
497        </li>
498<li class="listitem">
499          Removed circular axis (which is just a circular regular axis)
500        </li>
501<li class="listitem">
502          Added indexed adaptor generator for convenient and fast iteration over
503          histograms
504        </li>
505<li class="listitem">
506          Support for axes that can grow in range
507        </li>
508<li class="listitem">
509          Support for axes which accept multiple values (example: hexagonal binning)
510        </li>
511<li class="listitem">
512          Support for profiles and more generally, arbitrary accumulators in each
513          cell
514        </li>
515<li class="listitem">
516          Support for serializing to xml archives
517        </li>
518<li class="listitem">
519          Added compatibility with Boost.Range, Boost.Units, and Boost.Accumulators
520        </li>
521<li class="listitem">
522          Added deduction guides for axis types and histogram
523        </li>
524<li class="listitem">
525          Performance improvements
526        </li>
527<li class="listitem">
528          Renamed <code class="computeroutput"><span class="identifier">adaptive_storage</span></code>
529          to <code class="computeroutput"><span class="identifier">unlimited_storage</span></code>
530        </li>
531<li class="listitem">
532          Replaced <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">cpp_int</span></code> with custom type to decouple
533          libraries
534        </li>
535<li class="listitem">
536          Internal simplification of <code class="computeroutput"><span class="identifier">axis</span><span class="special">::</span><span class="identifier">variant</span></code>
537        </li>
538<li class="listitem">
539          Make all storages behave more like containers, simplifying the design
540        </li>
541<li class="listitem">
542          Histograms supports add, sub, mul, div
543        </li>
544<li class="listitem">
545          replaced <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]</span></code>
546          in axis with explicit method <code class="computeroutput"><span class="identifier">bin</span></code>
547        </li>
548<li class="listitem">
549          replaced <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code>
550          in axis with explicit method <code class="computeroutput"><span class="identifier">index</span></code>
551        </li>
552<li class="listitem">
553          replaced internal use of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">containers</span></code>
554          with stdlib containers
555        </li>
556<li class="listitem">
557          Much improved docs, reference documentation, user guide, more examples
558        </li>
559</ul></div>
560<h4>
561<a name="histogram.history.h5"></a>
562      <span class="phrase"><a name="histogram.history.3_2_not_in_boost"></a></span><a class="link" href="history.html#histogram.history.3_2_not_in_boost">3.2
563      (not in Boost)</a>
564    </h4>
565<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
566<li class="listitem">
567          Allocator support everywhere
568        </li>
569<li class="listitem">
570          Internal refactoring
571        </li>
572</ul></div>
573<h4>
574<a name="histogram.history.h6"></a>
575      <span class="phrase"><a name="histogram.history.3_1_not_in_boost"></a></span><a class="link" href="history.html#histogram.history.3_1_not_in_boost">3.1
576      (not in Boost)</a>
577    </h4>
578<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
579<li class="listitem">
580          Renamed <code class="computeroutput"><span class="identifier">bincount</span></code> method
581          to <code class="computeroutput"><span class="identifier">size</span></code>
582        </li>
583<li class="listitem">
584          Support for axes with only overflow and no underflow bin
585        </li>
586<li class="listitem">
587          category axis now by default has bin for "other" input that does
588          not fall into the predefined categories, making it consistent with other
589          axes
590        </li>
591<li class="listitem">
592          NaN is now consistently put into overflow bin for all axes
593        </li>
594<li class="listitem">
595          Eliminated warnings about safe internal conversions on MSVC
596        </li>
597<li class="listitem">
598          Established a cpp house style with corresponding .clang-format file
599        </li>
600<li class="listitem">
601          Better detection of Python library on all systems
602        </li>
603<li class="listitem">
604          Improved code coverage by testing more input errors
605        </li>
606<li class="listitem">
607          Raise ValueError instead of generic RuntimeError in Python on input errors
608        </li>
609</ul></div>
610<h4>
611<a name="histogram.history.h7"></a>
612      <span class="phrase"><a name="histogram.history.3_0_not_in_boost"></a></span><a class="link" href="history.html#histogram.history.3_0_not_in_boost">3.0
613      (not in Boost)</a>
614    </h4>
615<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
616<li class="listitem">
617          Support for efficient adding of multiple histograms and scaling
618        </li>
619<li class="listitem">
620          Re-design of category axis as a general mapping between unique values and
621          bins
622        </li>
623<li class="listitem">
624          Re-design of the bin description an axis returns upon element access
625        </li>
626<li class="listitem">
627          Interface cleanup and simplification, more consistency between Python and
628          C++ interface
629        </li>
630<li class="listitem">
631          Iterators for histogram and axes for STL compatibility
632        </li>
633<li class="listitem">
634          Regular axis in C++: Allowing transforms with state
635        </li>
636<li class="listitem">
637          Regular axis in Python: Support for all C++ transforms
638        </li>
639<li class="listitem">
640          Polymorphic axis::any type
641        </li>
642<li class="listitem">
643          Internal refactoring from boost::mpl and boost::fusion to std::tuple and
644          boost::mp11
645        </li>
646<li class="listitem">
647          Windows support
648        </li>
649</ul></div>
650<h4>
651<a name="histogram.history.h8"></a>
652      <span class="phrase"><a name="histogram.history.2_0_not_in_boost"></a></span><a class="link" href="history.html#histogram.history.2_0_not_in_boost">2.0
653      (not in Boost)</a>
654    </h4>
655<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
656<li class="listitem">
657          Added static_histogram (v1.0 only had dynamic_histogram).
658        </li>
659<li class="listitem">
660          Merged wfill(...) and fill(...) interface.
661        </li>
662<li class="listitem">
663          Support custom allocators in storage classes.
664        </li>
665<li class="listitem">
666          Replaced static_storage with array_storage.
667        </li>
668<li class="listitem">
669          Replaced dynamic_storage with unlimited_storage, which adds the capability
670          to grow the bin counter into a cpp_int, thus avoiding integer overflow
671          completely.
672        </li>
673<li class="listitem">
674          Serialization uses binary_archive instead of text_archive. The latter is
675          portable, but the performance is terrible.
676        </li>
677<li class="listitem">
678          Python interface changed: histograms are now iterable, returning axis classes
679        </li>
680<li class="listitem">
681          Support reduction (removing a subset of axes and returning the equivalent
682          histogram; in other words, those axes are integrated over)
683        </li>
684</ul></div>
685<h4>
686<a name="histogram.history.h9"></a>
687      <span class="phrase"><a name="histogram.history.1_0_not_in_boost"></a></span><a class="link" href="history.html#histogram.history.1_0_not_in_boost">1.0
688      (not in Boost)</a>
689    </h4>
690<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
691          First stable version.
692        </li></ul></div>
693</div>
694<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
695<td align="left"></td>
696<td align="right"><div class="copyright-footer">Copyright © 2016-2019 Hans
697      Dembinski<p>
698        Distributed under the Boost Software License, Version 1.0. (See accompanying
699        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
700      </p>
701</div></td>
702</tr></table>
703<hr>
704<div class="spirit-nav">
705<a accesskey="p" href="rationale.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
706</div>
707</body>
708</html>
709