| The Gaudi Framework v28r2-patches (bc4ad17a)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Private Member Functions | List of all members
Gaudi::Functional::ScalarTransformer< ScalarOp, Out(const In &...), Traits_ > Class Template Reference

`#include <GaudiAlg/ScalarTransformer.h>`

Inheritance diagram for Gaudi::Functional::ScalarTransformer< ScalarOp, Out(const In &...), Traits_ >:
[legend]
Collaboration diagram for Gaudi::Functional::ScalarTransformer< ScalarOp, Out(const In &...), Traits_ >:
[legend]

## Public Member Functions
Out | operator() (const In &...in) const override final
| The main operator. More...
Public Member Functions inherited from Gaudi::Functional::Transformer< Out(const In &...), Traits_ >
StatusCode | execute () override final
virtual Out | operator() (const In &...) const =0

## Private Member Functions
const ScalarOp & | scalarOp () const
| Access the scalar operator. More...
template<typename Tuple , typename Scalar , std::size_t... I>
decltype(auto) | getScalar (const Tuple &t, const Scalar &s, std::index_sequence< I... >) const
| Call the scalar operator with the objects obtained from the given tuple. More...

## Detailed Description

### template<typename ScalarOp, typename Out, typename... In, typename Traits_>
class Gaudi::Functional::ScalarTransformer< ScalarOp, Out(const In &...), Traits_ >

Definition at line 14 of file ScalarTransformer.h.

## Member Function Documentation

template<typename ScalarOp , typename Out , typename... In, typename Traits_ >
template<typename Tuple , typename Scalar , std::size_t... I>

decltype(auto) Gaudi::Functional::ScalarTransformer< ScalarOp, Out(const In &...), Traits_ >::getScalar | ( | const Tuple & | t,
|  | const Scalar & | s,
|  | std::index_sequence< I... > |
| ) |  | const
| inline private

Call the scalar operator with the objects obtained from the given tuple.

Definition at line 24 of file ScalarTransformer.h.

27 {
28 return s( details::deref(std::get<I>(t))... );
29 }
Gaudi::Functional::details::deref
constexpr struct Gaudi::Functional::details::deref_t deref
gaudirun.s
string s
Definition: gaudirun.py:245
template<typename ScalarOp , typename Out , typename... In, typename Traits_ >

Out Gaudi::Functional::ScalarTransformer< ScalarOp, Out(const In &...), Traits_ >::operator() | ( | const In &... | in | ) | const
| inline final override

The main operator.

Definition at line 36 of file ScalarTransformer.h.

37 {
38 const auto inrange = details::zip::const_range(in...);
39 Out out;
40 out.reserve(inrange.size());
41 auto & scalar = scalarOp();
42 for ( const auto && i : inrange )
43 { details::insert( out, getScalar( i, scalar, std::index_sequence_for<In...>{} ) ); }
44 //details::apply( scalar, out ); // awaiting a post-processor call
45 return out;
46 }
Gaudi::Functional::details::insert
constexpr struct Gaudi::Functional::details::insert_t insert
Gaudi::Functional::ScalarTransformer< ScalarOp, Out(const In &...), Traits_ >::scalarOp
const ScalarOp & scalarOp() const
Access the scalar operator.
Definition: ScalarTransformer.h:18
Gaudi::Functional::ScalarTransformer< ScalarOp, Out(const In &...), Traits_ >::getScalar
decltype(auto) getScalar(const Tuple &t, const Scalar &s, std::index_sequence< I... >) const
Call the scalar operator with the objects obtained from the given tuple.
Definition: ScalarTransformer.h:24
Gaudi::Functional::details::zip::const_range
decltype(auto) const_range(Args &&...args)
Zips multiple containers together to form a single const range.
Definition: FunctionalDetails.h:66
template<typename ScalarOp , typename Out , typename... In, typename Traits_ >

const ScalarOp& Gaudi::Functional::ScalarTransformer< ScalarOp, Out(const In &...), Traits_ >::scalarOp | ( |  | ) | const
| inline private

Access the scalar operator.

Definition at line 18 of file ScalarTransformer.h.

18 { return static_cast<const ScalarOp&>(*this); }

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

- GaudiAlg/GaudiAlg/ScalarTransformer.h