The Gaudi Framework  v30r3 (a5ef0a68)
Counters.h File Reference
#include "boost/algorithm/string/predicate.hpp"
#include "boost/format.hpp"
#include <atomic>
#include <cmath>
#include <initializer_list>
#include <iostream>
#include <limits>
#include <sstream>
#include <tuple>
#include <type_traits>
#include <utility>
#include "GaudiKernel/apply.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< N >
 An 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 >
 
class  StatEntity
 backward compatible StatEntity class. More...
 

Namespaces

 Gaudi
 Helper functions to set/get the application return code.
 
 Gaudi::Accumulators
 

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 T >
using Gaudi::Accumulators::has_fetch_add = typename Gaudi::cpp17::is_detected< has_fetch_add_, T >::value_t
 
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

std::ostreamGaudi::Accumulators::operator<< (std::ostream &stream, const PrintableCounter &counter)
 external printout operator to std::ostream More...