The Gaudi Framework  v41r0 (bdbe7744)
Loading...
Searching...
No Matches
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, typename Initial>
struct Gaudi::Accumulators::Extremum< Arithmetic, atomicity::full, Compare, Initial >

Extremum specialization in the case of atomicity full.

Definition at line 425 of file Accumulators.h.

Member Function Documentation

◆ DefaultValue()

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

Definition at line 428 of file Accumulators.h.

428{ return Initial::value(); }
An Extremum ValueHandler, to be reused for Minimum and Maximum operator(a, b) means if (Compare(b,...

◆ merge()

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

Definition at line 429 of file Accumulators.h.

429 {
431 while ( Compare{}( b, prev_value ) && !a.compare_exchange_weak( prev_value, b ) )
432 ;
433 }

The documentation for this struct was generated from the following file: