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