mirror of
https://github.com/boostorg/histogram.git
synced 2025-05-09 23:04:07 +00:00
Add logo and improve README
This commit is contained in:
parent
469a866ee6
commit
b4be538388
22
README.md
22
README.md
@ -5,32 +5,34 @@
|
|||||||
https://www.boost.org/LICENSE_1_0.txt)
|
https://www.boost.org/LICENSE_1_0.txt)
|
||||||
-->
|
-->
|
||||||
|
|
||||||
# Histogram
|

|
||||||
|
|
||||||
**Fast multi-dimensional histogram with convenient interface for C++14**
|
**Fast multi-dimensional histogram with convenient interface for C++14**
|
||||||
|
|
||||||
Coded with ❤. Powered by the [Boost community](https://www.boost.org) and the [Scikit-HEP Project](http://scikit-hep.org).
|
Coded with ❤. Powered by the [Boost community](https://www.boost.org) and the [Scikit-HEP Project](http://scikit-hep.org). The library is licensed under the [Boost Software License](http://www.boost.org/LICENSE_1_0.txt). **Supported compiler versions** gcc >= 5.5, clang >= 3.8, msvc >= 14.1
|
||||||
|
|
||||||
💡 Boost.Histogram is a mature library, but there are still many ways to improve. Tell us what you want to do with Boost.Histogram that can't be done right now, or how to improve the documentation by [submitting an issue](https://github.com/boostorg/histogram/issues). Or chat with us on the [Boost channel on Slack](https://cpplang.slack.com) or on [Gitter](https://gitter.im/boostorg/histogram).
|
|
||||||
|
|
||||||
Branch | Linux and OSX | Windows | Coverage
|
Branch | Linux and OSX | Windows | Coverage
|
||||||
------- | ------------- |-------- | --------
|
------- | ------------- |-------- | --------
|
||||||
develop | [](https://travis-ci.org/boostorg/histogram/branches) | [](https://ci.appveyor.com/project/HDembinski/histogram-d5g5k/branch/develop) | [](https://coveralls.io/github/boostorg/histogram?branch=develop)
|
develop | [](https://travis-ci.org/boostorg/histogram/branches) | [](https://ci.appveyor.com/project/HDembinski/histogram-d5g5k/branch/develop) | [](https://coveralls.io/github/boostorg/histogram?branch=develop)
|
||||||
master | [](https://travis-ci.org/boostorg/histogram/branches) | [](https://ci.appveyor.com/project/HDembinski/histogram-d5g5k/branch/master) | [](https://coveralls.io/github/boostorg/histogram?branch=master)
|
master | [](https://travis-ci.org/boostorg/histogram/branches) | [](https://ci.appveyor.com/project/HDembinski/histogram-d5g5k/branch/master) | [](https://coveralls.io/github/boostorg/histogram?branch=master)
|
||||||
|
|
||||||
**Supported compiler versions** gcc >= 5.5, clang >= 3.8, msvc >= 14.1
|
💡 Boost.Histogram is a mature library, but if you find some issue or find the documentation lacking, tell us about it by [submitting an issue](https://github.com/boostorg/histogram/issues). Chat with us on the [Boost channel on Slack](https://cpplang.slack.com) and [Gitter](https://gitter.im/boostorg/histogram).
|
||||||
|
|
||||||
This **header-only** open-source library provides an easy-to-use state-of-the-art multi-dimensional [histogram](https://en.wikipedia.org/wiki/Histogram) class for the professional statistician and everyone who needs to count things. The histogram is easy to use for the casual user and yet so customizable that it does not restrict the power-user. The library offers a unique safety guarantee: cell counts *cannot overflow* or *be capped* in the standard configuration [[1]](#note1). And it can do more than counting. The histogram can be equipped with arbitrary accumulators to compute means, medians, and whatever you fancy in each cell. The library is very fast single-threaded (see benchmarks) and several parallelization options are provided for multi-threaded programming.
|
Boost.Histogram is a very fast state-of-the-art multi-dimensional [histogram](https://en.wikipedia.org/wiki/Histogram) class for the beginner and expert alike.
|
||||||
|
|
||||||
The library passed Boost review in September 2018 and was first released with [Boost-1.70](http://www.boost.org) on April 12th, 2019. The library is licensed under the [Boost Software License](http://www.boost.org/LICENSE_1_0.txt).
|
* Header-only
|
||||||
|
* Easy to use, easy to customize
|
||||||
|
* Just count or use arbitrary accumulators to compute means, minimum, maximum, ...
|
||||||
|
* Supports multi-threading and restricted environments (no heap allocation, exceptions or RTTI)
|
||||||
|
* Has [Python bindings](https://github.com/scikit-hep/boost-histogram)
|
||||||
|
|
||||||
Check out the [full documentation](https://www.boost.org/doc/libs/develop/libs/histogram/doc/html/index.html). [Python bindings](https://github.com/hdembinski/histogram-python) to this library are available elsewhere.
|
Check out the [full documentation](https://www.boost.org/doc/libs/develop/libs/histogram/doc/html/index.html).
|
||||||
|
|
||||||
## Code example
|
## Code examples
|
||||||
|
|
||||||
The following stripped-down example was taken from the [Getting started](https://www.boost.org/doc/libs/develop/libs/histogram/doc/html/histogram/getting_started.html) section in the documentation. Have a look into the docs to see the full version with comments and more examples.
|
The following stripped-down example was taken from the [Getting started](https://www.boost.org/doc/libs/develop/libs/histogram/doc/html/histogram/getting_started.html) section in the documentation. Have a look into the docs to see the full version with comments and more examples.
|
||||||
|
|
||||||
Example: Make and fill a 1d-histogram ([try it live on Wandbox](https://wandbox.org/permlink/FfVtlXg6fC5b52rn))
|
Example: Make and fill a 1d-histogram ([try it live on Wandbox](https://wandbox.org/permlink/NSM2ZiDyntUi6RDC)). The core of this example [compiles into 53 lines of vectorized assembly code](https://godbolt.org/z/632yzE).
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
#include <boost/histogram.hpp>
|
#include <boost/histogram.hpp>
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[$../logo/color.svg]
|
||||||
|
|
||||||
Boost.Histogram provides an easy-to-use, fast, and extensible multi-dimensional histograms and profiles.
|
Boost.Histogram provides an easy-to-use, fast, and extensible multi-dimensional histograms and profiles.
|
||||||
|
|
||||||
[variablelist
|
[variablelist
|
||||||
|
172
doc/logo/color.svg
Normal file
172
doc/logo/color.svg
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="110mm"
|
||||||
|
height="45mm"
|
||||||
|
viewBox="0 0 110 45"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||||
|
sodipodi:docname="colored.svg">
|
||||||
|
<defs
|
||||||
|
id="defs4">
|
||||||
|
<inkscape:perspective
|
||||||
|
sodipodi:type="inkscape:persp3d"
|
||||||
|
inkscape:vp_x="2.7763456 : 114.66824 : 1"
|
||||||
|
inkscape:vp_y="0 : 565.45631 : 0"
|
||||||
|
inkscape:vp_z="137.0221 : 114.66824 : 1"
|
||||||
|
inkscape:persp3d-origin="69.899229 : 86.678149 : 1"
|
||||||
|
id="perspective4141" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="1.979899"
|
||||||
|
inkscape:cx="279.13076"
|
||||||
|
inkscape:cy="148.86161"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0"
|
||||||
|
inkscape:window-width="1869"
|
||||||
|
inkscape:window-height="1016"
|
||||||
|
inkscape:window-x="51"
|
||||||
|
inkscape:window-y="27"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
showguides="false"
|
||||||
|
inkscape:guide-bbox="true"
|
||||||
|
inkscape:snap-text-baseline="true"
|
||||||
|
inkscape:snap-to-guides="true">
|
||||||
|
<sodipodi:guide
|
||||||
|
position="-45.357145,43.467263"
|
||||||
|
orientation="0,1"
|
||||||
|
id="guide4711"
|
||||||
|
inkscape:locked="false" />
|
||||||
|
<sodipodi:guide
|
||||||
|
position="-4.9136906,19.276786"
|
||||||
|
orientation="0,1"
|
||||||
|
id="guide4713"
|
||||||
|
inkscape:locked="false" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-11.748731,-159.71457)">
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.90530014px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:sans-serif;font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.10801547;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
x="36.242462"
|
||||||
|
y="192.91522"
|
||||||
|
id="text4285"
|
||||||
|
transform="scale(1.063264,0.9405002)"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4287"
|
||||||
|
x="36.242462"
|
||||||
|
y="194.70898"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.57539749px;line-height:1;font-family:Denmark;-inkscape-font-specification:Denmark;fill:#d16351;fill-opacity:1;stroke-width:0.10801547" /><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="36.242462"
|
||||||
|
y="207.06163"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.57539749px;line-height:1;font-family:Denmark;-inkscape-font-specification:Denmark;fill:#01336f;fill-opacity:1;stroke-width:0.10801547"
|
||||||
|
id="tspan4614">istogram</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6px;line-height:0%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, ';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#8787df;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.15610416;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
x="52.720943"
|
||||||
|
y="183.75093"
|
||||||
|
id="text4295"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4297"
|
||||||
|
x="52.720943"
|
||||||
|
y="183.75093"
|
||||||
|
style="font-size:25.39999962px;line-height:1;stroke-width:0.15610416"> </tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.69999981px;line-height:1;font-family:Denmark;-inkscape-font-specification:Denmark;letter-spacing:0px;word-spacing:0px;fill:#d03721;fill-opacity:1;stroke:none;stroke-width:0.13229166"
|
||||||
|
x="38.725582"
|
||||||
|
y="180.3484"
|
||||||
|
id="text4620"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4618"
|
||||||
|
x="38.725582"
|
||||||
|
y="180.3484"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.875px;line-height:0px;font-family:Denmark;-inkscape-font-specification:Denmark;letter-spacing:0.00132291px;word-spacing:0.00132291px;baseline-shift:baseline;fill:#d03721;fill-opacity:1;stroke-width:0.13229166"
|
||||||
|
dx="0"
|
||||||
|
dy="0">Boost</tspan></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer2"
|
||||||
|
inkscape:label="Layer 2"
|
||||||
|
style="display:inline"
|
||||||
|
transform="translate(0,-45)">
|
||||||
|
<g
|
||||||
|
id="g4359"
|
||||||
|
style="fill:#47a7e9;fill-opacity:1"
|
||||||
|
transform="matrix(0.5,0,0,0.5,-3.6509588,-12.856943)">
|
||||||
|
<path
|
||||||
|
d="m 19.861964,142.37605 v 53.14371 l 7.009502,-0.78901 v -49.96422 z"
|
||||||
|
style="fill:#47a7e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.60122931px;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="path4349"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
d="m 31.821898,162.26264 v 23.91825 l 10.269638,-0.37576 v -21.58335 z"
|
||||||
|
style="fill:#47a7e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.60122931px;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="path4329"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
d="m 44.636112,117.0719 v 87.64267 l 12.460899,-3.01896 v -75.82154 z"
|
||||||
|
style="fill:#47a7e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.60122931px;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="path4309"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g4612"
|
||||||
|
style="fill:#01336f;fill-opacity:1;fill-rule:nonzero"
|
||||||
|
transform="matrix(0.5,0,0,0.5,1.8454312,44.878317)">
|
||||||
|
<path
|
||||||
|
d="M 3.401786,39.69135 8.869184,26.90553 V 80.04924 L 3.401786,75.82908 Z"
|
||||||
|
style="fill:#01336f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.60122931px;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="path4351"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
d="m 15.878687,50.21263 4.950431,-3.42051 v 23.91825 l -4.950431,-0.65604 z"
|
||||||
|
style="fill:#01336f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.60122931px;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="path4331"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
d="M 27.663365,10.92422 33.643332,1.60138 V 89.24405 L 27.663365,86.04651 Z"
|
||||||
|
style="fill:#01336f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.60122931px;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="path4311"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 8.2 KiB |
@ -8,7 +8,7 @@
|
|||||||
#define BOOST_HISTOGRAM_ACCUMULATORS_HPP
|
#define BOOST_HISTOGRAM_ACCUMULATORS_HPP
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\file boost/accumulators.hpp
|
\file boost/histogram/accumulators.hpp
|
||||||
Includes all accumulator headers of the Boost.Histogram library.
|
Includes all accumulator headers of the Boost.Histogram library.
|
||||||
|
|
||||||
Extra header not automatically included:
|
Extra header not automatically included:
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#define BOOST_HISTOGRAM_ALGORITHM_HPP
|
#define BOOST_HISTOGRAM_ALGORITHM_HPP
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\file boost/algorithm.hpp
|
\file boost/histogram/algorithm.hpp
|
||||||
Includes all algorithm headers of the Boost.Histogram library.
|
Includes all algorithm headers of the Boost.Histogram library.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#define BOOST_HISTOGRAM_AXIS_HPP
|
#define BOOST_HISTOGRAM_AXIS_HPP
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\file boost/axis.hpp
|
\file boost/histogram/axis.hpp
|
||||||
Includes all axis headers of the Boost.Histogram library.
|
Includes all axis headers of the Boost.Histogram library.
|
||||||
|
|
||||||
Extra header not automatically included:
|
Extra header not automatically included:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user