| The Gaudi Framework v32r1 (f65d50dc)

Classes | Namespaces | Typedefs | Enumerations | Functions | Variables
Counters.h File Reference
`#include "boost/algorithm/string/predicate.hpp"`
`#include "boost/format.hpp"`
`#include <atomic>`
`#include <cmath>`
`#include <iostream>`
`#include <limits>`
`#include <sstream>`
`#include <tuple>`
`#include <type_traits>`
`#include <utility>`
`#include "GaudiKernel/CommonMessaging.h"`
`#include "GaudiKernel/MsgStream.h"`
`#include "GaudiKernel/detected.h"`
Include dependency graph for Counters.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Classes
struct | Gaudi::Accumulators::Constant< T, N >
| A functor always returning the value N. More...
struct | Gaudi::Accumulators::Identity
| An Identity functor. More...
struct | Gaudi::Accumulators::Square
| A Square functor. More...
struct | Gaudi::Accumulators::BaseValueHandler< Arithmetic, Atomicity >
| Base type for all functors used as ValuesHandler. More...
struct | Gaudi::Accumulators::BaseValueHandler< Arithmetic, atomicity::none >
| BaseValueHandler specialization in the case of atomicity none. More...
struct | Gaudi::Accumulators::BaseValueHandler< Arithmetic, atomicity::full >
| BaseValueHandler specialization in the case of atomicity full. More...
struct | Gaudi::Accumulators::Adder< Arithmetic, Atomicity >
| An Adder ValueHandler operator(a, b) means a += b. More...
struct | Gaudi::Accumulators::Adder< Arithmetic, atomicity::none >
| Adder specialization in the case of atomicity none. More...
struct | Gaudi::Accumulators::Adder< Arithmetic, atomicity::full >
| Adder specialization in the case of atomicity full. More...
struct | Gaudi::Accumulators::Extremum< Arithmetic, Atomicity, Compare, Initial >
| An Extremum ValueHandler, to be reused for Minimum and Maximum operator(a, b) means if (Compare(b,a)) a = b In case of full atomicity, compare_exchange_weak is used. More...
struct | Gaudi::Accumulators::Extremum< Arithmetic, atomicity::none, Compare, Initial >
| Extremum specialization in the case of atomicity none. More...
struct | Gaudi::Accumulators::Extremum< Arithmetic, atomicity::full, Compare, Initial >
| Extremum specialization in the case of atomicity full. More...
class | Gaudi::Accumulators::GenericAccumulator< InputType, InnerType, Atomicity, InputTransform, OutputTransform, ValueHandler >
| Generic Accumulator, templated by. More...
class | Gaudi::Accumulators::AccumulatorSet< Arithmetic, Atomicity, Bases >
| AccumulatorSet is an Accumulator that holds a set of Accumulators templated by same Arithmetic and Atomicity and increase them altogether. More...
struct | Gaudi::Accumulators::MaxAccumulator< Arithmetic, Atomicity >
| MaxAccumulator. More...
struct | Gaudi::Accumulators::MinAccumulator< Arithmetic, Atomicity >
| MinAccumulator. More...
struct | Gaudi::Accumulators::CountAccumulator< Arithmetic, Atomicity >
| CountAccumulator. More...
struct | Gaudi::Accumulators::SumAccumulator< Arithmetic, Atomicity >
| SumAccumulator. More...
struct | Gaudi::Accumulators::SquareAccumulator< Arithmetic, Atomicity >
| SquareAccumulator. More...
struct | Gaudi::Accumulators::TrueTo1
| helper functor for the TrueAccumulator More...
struct | Gaudi::Accumulators::TrueAccumulator< Arithmetic, Atomicity >
| TrueAccumulator. More...
struct | Gaudi::Accumulators::FalseTo1
| helper functor for the FalseAccumulator More...
struct | Gaudi::Accumulators::FalseAccumulator< Arithmetic, Atomicity >
| FalseAccumulator. More...
struct | Gaudi::Accumulators::BinomialAccumulator< Arithmetic, Atomicity >
| BinomialAccumulator. More...
struct | Gaudi::Accumulators::AveragingAccumulator< Arithmetic, Atomicity >
| AveragingAccumulator. More...
struct | Gaudi::Accumulators::SigmaAccumulator< Arithmetic, Atomicity >
| SigmaAccumulator. More...
class | Gaudi::Accumulators::Buffer< Arithmetic, ContainedAccumulator >
| Buffer is a non atomic Accumulator which, when it goes out-of-scope, updates the underlying thread-safe Accumulator for all previous updates in one go. More...
struct | Gaudi::Accumulators::PrintableCounter
| An empty ancester of all counters that knows how to print themselves. More...
struct | Gaudi::Accumulators::BufferableCounter< Arithmetic, Atomicity, Accumulator >
| An empty ancester of all counters that provides a buffer method that returns a buffer on itself. More...
struct | Gaudi::Accumulators::Counter< Arithmetic, Atomicity >
| A basic counter counting input values. More...
struct | Gaudi::Accumulators::AveragingCounter< Arithmetic, Atomicity >
| A counter aiming at computing sum and average. More...
struct | Gaudi::Accumulators::SigmaCounter< Arithmetic, Atomicity >
| A counter aiming at computing average and sum2 / variance / standard deviation. More...
struct | Gaudi::Accumulators::StatCounter< Arithmetic, Atomicity >
| A counter aiming at computing average and sum2 / variance / standard deviation. More...
struct | Gaudi::Accumulators::BinomialCounter< Arithmetic, Atomicity >
| A counter dealing with binomial data. More...
struct | Gaudi::Accumulators::details::MsgCounter::Logger
struct | Gaudi::Accumulators::details::MsgCounter::Data< Atomicity >
struct | Gaudi::Accumulators::details::MsgCounter::Handler< Atomicity >
struct | Gaudi::Accumulators::details::MsgCounter::OutputTransform
struct | Gaudi::Accumulators::details::MsgCounter< level, Atomicity >
class | Gaudi::StatEntity
| backward compatible StatEntity class. More...

## Namespaces
| Gaudi::Accumulators
| Efficient counter implementations for Gaudi.
| Gaudi
| Header file for std:chrono::duration-based Counters.
| Gaudi::Accumulators::details
| Gaudi::Accumulators::details::MsgCounter

## Typedefs
template<typename T , typename = int>
using | Gaudi::Accumulators::has_fetch_add_ = decltype(std::atomic< T >{}.fetch_add(0))
| type_traits for checking the presence of fetch_add in std::atomic<T> More...
template<typename Arithmetic , typename Result = double>
using | Gaudi::Accumulators::fp_result_type = std::conditional_t< std::is_integral_v< Arithmetic >, Result, Arithmetic >
| type_trait for the result type of a floating point operation on the type Arithmetic More...
template<typename Arithmetic , atomicity Atomicity = atomicity::full>
using | Gaudi::Accumulators::Minimum = Extremum< Arithmetic, Atomicity, std::less< Arithmetic >, std::numeric_limits< Arithmetic >::max >
| A Minimun ValueHandler operator(a, b) means a = min(a, b) In case of full atomicity, compare_exchange_weak is used. More...
template<typename Arithmetic , atomicity Atomicity = atomicity::full>
using | Gaudi::Accumulators::Maximum = Extremum< Arithmetic, Atomicity, std::greater< Arithmetic >, std::numeric_limits< Arithmetic >::lowest >
| An Maximum ValueHandler operator(a, b) means a = max(a, b) In case of full atomicity, compare_exchange_weak is used. More...
template<typename Arithmetic , atomicity Atomicity = atomicity::full>
using | Gaudi::Accumulators::StatAccumulator = AccumulatorSet< Arithmetic, Atomicity, SigmaAccumulator, MinAccumulator, MaxAccumulator >
| StatAccumulator. More...
template<typename Arithmetic = double, atomicity Atomicity = atomicity::full>
using | Gaudi::Accumulators::SummingCounter = AveragingCounter< Arithmetic, Atomicity >

## Enumerations
enum | Gaudi::Accumulators::atomicity { Gaudi::Accumulators::atomicity::none, Gaudi::Accumulators::atomicity::full }
| Defines atomicity of the accumulators. More...

## Functions
template<class T >
auto | Gaudi::Accumulators::sqrt (T d)
| forward declaration of sqrt for custom types More...
std::ostream & | Gaudi::Accumulators::operator<< (std::ostream &s, const PrintableCounter &counter)
| external printout operator to a stream type More...
MsgStream & | Gaudi::Accumulators::operator<< (MsgStream &s, const PrintableCounter &counter)
template<typename Counter , typename Container , typename Fun >
void | Gaudi::Accumulators::details::accumulate (Counter &counter, const Container &container, Fun f=Identity{})
| A helper function for accumulating data from a container into a counter This is internally using buffers so that the original counter is only updated once. More...

## Variables
template<typename T >
constexpr bool | Gaudi::Accumulators::has_fetch_add_v = Gaudi::cpp17::is_detected_v<has_fetch_add_, T>