mirror of
https://github.com/boostorg/histogram.git
synced 2025-05-12 05:31:51 +00:00
cooler example
This commit is contained in:
parent
09f58022c0
commit
36a5dba626
@ -12,18 +12,30 @@
|
|||||||
namespace bh = boost::histogram;
|
namespace bh = boost::histogram;
|
||||||
|
|
||||||
// stateless axis which returns 1 if the input is even and 0 otherwise
|
// 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; }
|
int operator()(int x) const { return x % 2; }
|
||||||
unsigned size() const { return 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() {
|
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(0, 0) == 1); // even, below threshold
|
||||||
assert(h.at(1) == 1); // one uneven number
|
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