123456789101112131415161718192021222324252627282930313233343536 |
- // Copyright 2019 Henry Schreiner
- //
- // Distributed under the Boost Software License, Version 1.0.
- // (See accompanying file LICENSE_1_0.txt
- // or copy at http://www.boost.org/LICENSE_1_0.txt)
- #ifndef BOOST_HISTOGRAM_ALGORITHM_EMPTY_HPP
- #define BOOST_HISTOGRAM_ALGORITHM_EMPTY_HPP
- #include <boost/histogram/fwd.hpp>
- #include <boost/histogram/indexed.hpp>
- namespace boost {
- namespace histogram {
- namespace algorithm {
- /** Check to see if all histogram cells are empty. Use coverage to include or
- exclude the underflow/overflow bins.
- This algorithm has O(N) complexity, where N is the number of cells.
- Returns true if all cells are empty, and false otherwise.
- */
- template <class A, class S>
- auto empty(const histogram<A, S>& h, coverage cov) {
- using value_type = typename histogram<A, S>::value_type;
- const value_type default_value = value_type();
- for (auto&& ind : indexed(h, cov)) {
- if (*ind != default_value) { return false; }
- }
- return true;
- }
- } // namespace algorithm
- } // namespace histogram
- } // namespace boost
- #endif
|