The Gaudi Framework  v37r0 (b608885e)
Gaudi::Accumulators::Extremum< Arithmetic, atomicity::full, Compare, Initial > Struct Template Reference

Extremum specialization in the case of atomicity full. More...

#include </builds/gaudi/Gaudi/GaudiKernel/include/Gaudi/Accumulators.h>

Inheritance diagram for Gaudi::Accumulators::Extremum< Arithmetic, atomicity::full, Compare, Initial >:
Collaboration diagram for Gaudi::Accumulators::Extremum< Arithmetic, atomicity::full, Compare, Initial >:

Static Public Member Functions

static constexpr OutputType DefaultValue ()
 
static void merge (InternalType &a, Arithmetic b) noexcept
 
- Static Public Member Functions inherited from Gaudi::Accumulators::BaseValueHandler< Arithmetic, atomicity::full >
static constexpr OutputType getValue (const InternalType &v) noexcept
 
static Arithmetic exchange (InternalType &v, Arithmetic newv) noexcept
 

Additional Inherited Members

- Public Types inherited from Gaudi::Accumulators::BaseValueHandler< Arithmetic, atomicity::full >
using OutputType = Arithmetic
 
using InternalType = std::atomic< Arithmetic >
 

Detailed Description

template<typename Arithmetic, typename Compare, Arithmetic(*)() Initial>
struct Gaudi::Accumulators::Extremum< Arithmetic, atomicity::full, Compare, Initial >

Extremum specialization in the case of atomicity full.

Definition at line 379 of file Accumulators.h.

Member Function Documentation

◆ DefaultValue()

template<typename Arithmetic , typename Compare , Arithmetic(*)() Initial>
static constexpr OutputType Gaudi::Accumulators::Extremum< Arithmetic, atomicity::full, Compare, Initial >::DefaultValue ( )
inlinestaticconstexpr

Definition at line 382 of file Accumulators.h.

382 { return Initial(); }

◆ merge()

template<typename Arithmetic , typename Compare , Arithmetic(*)() Initial>
static void Gaudi::Accumulators::Extremum< Arithmetic, atomicity::full, Compare, Initial >::merge ( InternalType a,
Arithmetic  b 
)
inlinestaticnoexcept

Definition at line 383 of file Accumulators.h.

383  {
384  Arithmetic prev_value = BaseValueHandler<Arithmetic, atomicity::full>::getValue( a );
385  while ( Compare{}( b, prev_value ) && !a.compare_exchange_weak( prev_value, b ) )
386  ;
387  };

The documentation for this struct was generated from the following file:
Gaudi::Accumulators::BaseValueHandler< Arithmetic, atomicity::full >::getValue
static constexpr OutputType getValue(const InternalType &v) noexcept
Definition: Accumulators.h:311