mirror of
https://github.com/boostorg/histogram.git
synced 2025-05-11 13:14:06 +00:00
cooler example
This commit is contained in:
parent
09f58022c0
commit
36a5dba626
@ -12,18 +12,30 @@
|
||||
namespace bh = boost::histogram;
|
||||
|
||||
// stateless axis which returns 1 if the input is even and 0 otherwise
|
||||
struct minimal_axis {
|
||||
struct even_odd_axis {
|
||||
int operator()(int x) const { return x % 2; }
|
||||
unsigned size() const { return 2; }
|
||||
};
|
||||
|
||||
// threshold axis which returns 1 if the input is above threshold
|
||||
struct threshold_axis {
|
||||
threshold_axis(double x) : thr(x) {}
|
||||
int operator()(double x) const { return x >= thr; }
|
||||
unsigned size() const { return 2; }
|
||||
double thr;
|
||||
};
|
||||
|
||||
int main() {
|
||||
auto h = bh::make_histogram(minimal_axis());
|
||||
auto h = bh::make_histogram(even_odd_axis(), threshold_axis(3));
|
||||
|
||||
h(0); h(1); h(2);
|
||||
h(0, 2);
|
||||
h(1, 4);
|
||||
h(2, 4);
|
||||
|
||||
assert(h.at(0) == 2); // two even numbers
|
||||
assert(h.at(1) == 1); // one uneven number
|
||||
assert(h.at(0, 0) == 1); // even, below threshold
|
||||
assert(h.at(0, 1) == 1); // even, above threshold
|
||||
assert(h.at(1, 0) == 0); // odd, below threshold
|
||||
assert(h.at(1, 1) == 1); // odd, above threshold
|
||||
}
|
||||
|
||||
//]
|
||||
|
Loading…
x
Reference in New Issue
Block a user