HepMC3 event record library
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes
vectorize_helper< Func, Return, Args > Struct Template Reference

Public Member Functions

template<typename T >
 vectorize_helper (T &&f)
 
object operator() (typename vectorize_arg< Args >::type...args)
 

Private Types

using arg_call_types = std::tuple< typename vectorize_arg< Args >::call_type...>
 
template<size_t Index>
using param_n_t = typename std::tuple_element< Index, arg_call_types >::type
 
using returned_array = vectorize_returned_array< Func, Return, Args...>
 

Private Member Functions

template<size_t... Index, size_t... VIndex, size_t... BIndex>
object run (typename vectorize_arg< Args >::type &...args, index_sequence< Index...> i_seq, index_sequence< VIndex...> vi_seq, index_sequence< BIndex...> bi_seq)
 
template<size_t... Index, size_t... VIndex, size_t... BIndex>
void apply_trivial (std::array< buffer_info, NVectorized > &buffers, std::array< void *, N > &params, Return *out, size_t size, index_sequence< Index...>, index_sequence< VIndex...>, index_sequence< BIndex...>)
 
template<size_t... Index, size_t... VIndex, size_t... BIndex>
void apply_broadcast (std::array< buffer_info, NVectorized > &buffers, std::array< void *, N > &params, Return *out, size_t size, const std::vector< ssize_t > &output_shape, index_sequence< Index...>, index_sequence< VIndex...>, index_sequence< BIndex...>)
 

Private Attributes

remove_reference_t< Func > f
 

Static Private Attributes

static constexpr size_t N = sizeof...(Args)
 
static constexpr size_t NVectorized = constexpr_sum(vectorize_arg<Args>::vectorize...)
 

Detailed Description

template<typename Func, typename Return, typename... Args>
struct vectorize_helper< Func, Return, Args >

Definition at line 1524 of file numpy.h.


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