/
usr
/
include
/
boost
/
histogram
/
accumulators
/
/usr/include/boost/histogram/accumulators
mkdir
upload
Name
Size
Mode
Actions
count.hpp
3809
0644
edit
dl
rm
mean.hpp
4107
0644
edit
dl
rm
ostream.hpp
3624
0644
edit
dl
rm
sum.hpp
4865
0644
edit
dl
rm
thread_safe.hpp
2231
0644
edit
dl
rm
weighted_mean.hpp
4878
0644
edit
dl
rm
weighted_sum.hpp
3596
0644
edit
dl
rm
Edit:
/usr/include/boost/histogram/accumulators/ostream.hpp
(3624B)
// Copyright 2015-2017 Hans Dembinski // // 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_ACCUMULATORS_OSTREAM_HPP #define BOOST_HISTOGRAM_ACCUMULATORS_OSTREAM_HPP #include <boost/histogram/detail/counting_streambuf.hpp> #include <boost/histogram/fwd.hpp> #include <ios> /** \file boost/histogram/accumulators/ostream.hpp Simple streaming operators for the builtin accumulator types. The text representation is not guaranteed to be stable between versions of Boost.Histogram. This header is only included by [boost/histogram/ostream.hpp](histogram/reference.html#header.boost.histogram.ostream_hpp). To use your own, include your own implementation instead of this header and do not include [boost/histogram/ostream.hpp](histogram/reference.html#header.boost.histogram.ostream_hpp). */ #ifndef BOOST_HISTOGRAM_DOXYGEN_INVOKED namespace boost { namespace histogram { namespace detail { template <class CharT, class Traits, class T> std::basic_ostream<CharT, Traits>& handle_nonzero_width( std::basic_ostream<CharT, Traits>& os, const T& x) { const auto w = os.width(); os.width(0); std::streamsize count = 0; { auto g = make_count_guard(os, count); os << x; } if (os.flags() & std::ios::left) { os << x; for (auto i = count; i < w; ++i) os << os.fill(); } else { for (auto i = count; i < w; ++i) os << os.fill(); os << x; } return os; } } // namespace detail namespace accumulators { template <class CharT, class Traits, class U> std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& os, const count<U>& x) { return os << x.value(); } template <class CharT, class Traits, class U> std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& os, const sum<U>& x) { if (os.width() == 0) return os << "sum(" << x.large() << " + " << x.small() << ")"; return detail::handle_nonzero_width(os, x); } template <class CharT, class Traits, class U> std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& os, const weighted_sum<U>& x) { if (os.width() == 0) return os << "weighted_sum(" << x.value() << ", " << x.variance() << ")"; return detail::handle_nonzero_width(os, x); } template <class CharT, class Traits, class U> std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& os, const mean<U>& x) { if (os.width() == 0) return os << "mean(" << x.count() << ", " << x.value() << ", " << x.variance() << ")"; return detail::handle_nonzero_width(os, x); } template <class CharT, class Traits, class U> std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& os, const weighted_mean<U>& x) { if (os.width() == 0) return os << "weighted_mean(" << x.sum_of_weights() << ", " << x.value() << ", " << x.variance() << ")"; return detail::handle_nonzero_width(os, x); } template <class CharT, class Traits, class T> std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& os, const thread_safe<T>& x) { os << x.load(); return os; } } // namespace accumulators } // namespace histogram } // namespace boost #endif // BOOST_HISTOGRAM_DOXYGEN_INVOKED #endif
Save
cmd:
run